Acomba (Forum)
Pourquoi ne pas devenir membre du forum ?

Identifiez-vous ou Inscrivez-vous afin d'accéder à l'inrégralité du forum:
Accès à toutes les catégories du forum,
Entraide entre les 6 500 membres, et ce nombre s'accroît quotidiennement!

Notez que ce forum est indépendant de la société Acceo Solutions, éditrice du logiciel Acomba.
Connexion

Récupérer mon mot de passe


Où est CustomerTermNumber dans TransactionHeader???

Voir le sujet précédent Voir le sujet suivant Aller en bas

Où est CustomerTermNumber dans TransactionHeader???

Message  MATNAC1981 le Mer 29 Aoû 2012 - 12:01

Bonjour,

Je travaille sur un outil de création de commandes via ODBC. L'information provient d'un module ACCESS et le code est en VBA.Je suis débutant avec ODBC,SQL et ACCESS alors ...bonjour le défi.

Mon problème à ce stade est au niveau de la population de la cellule du Numéro de Termes du client dans la commande. Je ne trouve pas le champ qui y réfère dans la table TransactionHeader et bien que j'ai rapporté toutes les infos pertinentes de la table CustomerTerm...j'ai peur que le fait que ce termNumber manque ne génère des bugs et de rapport de comptabilité erronée dans le future.

Est-ce que quelqu'un peu m'aider.

Mon Code:...je suis aussi ouvert à tous commentaires pouvant m'aider à améliorer mon code en général.

Private Sub Commande777_Click()

Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim NbL As Integer
Dim ProductCheck As Integer
Dim Product As String
Dim CustomerCount As Integer
Dim cnn As New ADODB.Connection
Dim rstTransactionHeader As New ADODB.Recordset
Dim rstTransactionDetail As New ADODB.Recordset
Dim rstCustomerTerm As New ADODB.Recordset
Dim rstCustomer As New ADODB.Recordset
Dim rstCustomerData As New ADODB.Recordset
Dim rstProductData As New ADODB.Recordset
Dim rstProduct As New ADODB.Recordset
Dim CustomerNumber As String
Dim ProductCP As Integer

cnn.ConnectionString = "DSN=TESTOBDC_ACOMBA;"
cnn.CursorLocation = adUseClient
cnn.Open
rstCustomer.Open "SELECT * FROM Customer WHERE CuNumber='" & Forms!FBonProduction!FormCustomer_Requête!NoClientAcomba & "'", cnn, adOpenKeyset, adLockOptimistic
CustomerCount = rstCustomer.RecordCount
rstCustomer.Close

rstTransactionHeader.Open "SELECT * FROM TransactionHeader WHERE InInvoiceNumber='" & Forms!FBonProduction.Production & "'", cnn, adOpenKeyset, adLockOptimistic
NbL = rstTransactionHeader.RecordCount
rstTransactionHeader.Close



'*****************************************************
'* CHECK * - PRE-EXISTENCE DU #CLIENT
'*****************************************************


If CustomerCount = 0 Then 'SI LE CLIENT N'EXISTE PAS DANS LA BASE DE DONNÉE DE RÉFÉRENCEMENT ACCOMBA/ACCESS
MsgBox "Ce client n'existe pas dans la base de donnée Acomba. Mettre-à-jour Acomba ou sélectionner un client valide."
Else

'*****************************************************
'* CHECK * - PRE-EXISTENCE DU #PRODUCTION(COMMANDE)
'*****************************************************


If NbL <> 0 Then 'SI LE NUMÉRO DE COMMANDE EXISTE DÉJÀ DANS ACOMBA
MsgBox "Cette commande a déjà été créée dans Acomba, avant toute modifications, la commande doite être supprimée de la base de données d'Acomba."
Else

'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'* ACTION * - Étape 1 : Initialiser les propriétés de l'entête de la facturation
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
cnn.Execute ("BEGIN_TRANSACTION_IN")
rstTransactionHeader.Open "SELECT * FROM TransactionHeader WHERE InInvoiceType=2", cnn, adOpenKeyset, adLockOptimistic
rstTransactionHeader.AddNew
rstTransactionHeader!InInvoiceNumber = Forms!FBonProduction.Production
rstTransactionHeader!InInvoiceType = 2 'FACTURE = 1 ; COMMANDE = 2
rstTransactionHeader!InReference = Forms!FBonProduction!Job & Forms!FBonProduction!Réquisition
rstTransactionHeader!InDescription = Forms!FBonProduction!Résumé

rstTransactionHeader!InCurrentDay = 1
rstTransactionHeader!InTransactionActive = 1

CustomerNumber = Forms!FBonProduction!FormCustomer_Requête!NoClientAcomba
rstCustomerData.Open "SELECT * FROM Customer where cuNumber = '" & CustomerNumber & "'", cnn, adOpenKeyset, adLockOptimistic
rstTransactionHeader!InTaxGroupCP = rstCustomerData!CuTaxGroupCP
rstTransactionHeader!InCustomerSupplierCP = rstCustomerData!RecCardPos
rstTransactionHeader!InInvoicedToCP = rstCustomerData!CuInvoicedToCP
rstTransactionHeader!InReceivableOffset = rstCustomerData!CuReceivable
rstTransactionHeader!InCustomerLanguage = rstCustomerData!CuLanguage
rstTransactionHeader!InName = rstCustomerData!CuName
rstTransactionHeader!InCareOf = rstCustomerData!CuCareOf
rstTransactionHeader!InAddress = rstCustomerData!CuAddress
rstTransactionHeader!InCity = rstCustomerData!CuCity
rstTransactionHeader!InPostalCode = rstCustomerData!CuPostalCode
rstTransactionHeader!InISOCountryCode = rstCustomerData!CuISOCountryCode
rstTransactionHeader!InPhoneDescription1 = rstCustomerData!CuPhoneDescription1
rstTransactionHeader!InPhoneDescription2 = rstCustomerData!CuPhoneDescription2
rstTransactionHeader!InPhoneNumber1 = rstCustomerData!CuPhoneNumber1
rstTransactionHeader!InPhoneNumber2 = rstCustomerData!CuPhoneNumber2
rstTransactionHeader!InPhoneExtention1 = rstCustomerData!CuPhoneExtention1
rstTransactionHeader!InPhoneExtention2 = rstCustomerData!CuPhoneExtention2
rstTransactionHeader!InSalesRepCP = rstCustomerData!CuSalesRepCP
rstTransactionHeader!InSalesRepNumber = rstCustomerData!CuSalesRepNumber
rstTransactionHeader!InTerritoryNumber = rstCustomerData!CuTerritoryNumber
rstTransactionHeader!InTerritoryCP = rstCustomerData!CuTerritoryCP
rstTransactionHeader!InShippingCP = rstCustomerData!CuShippingCP
rstTransactionHeader!InShippingNumber = rstCustomerData!CuShippingNumber

rstCustomerTerm.Open "SELECT * FROM CustomerTerm WHERE RecCardPos = " & rstCustomerData!CuTermCP, cnn, adOpenKeyset, adLockOptimistic
rstTransactionHeader!InTermDescription = rstCustomerTerm!CTDescription
rstTransactionHeader!InTermType = rstCustomerTerm!CTType

rstTransactionHeader!InTermPercent = rstCustomerTerm!CTPercent
rstTransactionHeader!InNumberOfDays = rstCustomerTerm!CTNumberOfDays
rstTransactionHeader!InDueDays = rstCustomerTerm!CTDueDays
rstTransactionHeader!InPeriodicity = rstCustomerTerm!CTPeriodicity
rstTransactionHeader!InNumberOfPayments = rstCustomerTerm!CTNumberOfPayments
rstTransactionHeader!InDaysBetweenPayments = rstCustomerTerm!CTDaysBetweenPayments
rstTransactionHeader!InFirstPayment = rstCustomerTerm!CTFirstPayment





'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'* ACTION * - Étape 2 : Assigner le nombre total de lignes incluses dans la facturation à la propriété TANumLines
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
rstTransactionHeader!TANumLines = DCount("Code", "TLigneProduction", "Production = Forms!FBonProduction.Production")
rstTransactionHeader.Update

'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'* ACTION * - Étape 3 : Initialiser les propriétés des lignes de la facturation
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
NbL = 1
Set rst = CurrentDb.OpenRecordset("SELECT * FROM TLigneProduction WHERE Production = '" & Forms!FBonProduction.Production & "'")
With rst
.MoveFirst
Do While Not .EOF
rstTransactionDetail.Open "SELECT * FROM TransactionDetail where TaNum = " & NbL, cnn, adOpenKeyset, adLockOptimistic
rstTransactionDetail!ILType = 2 'FACTURE = 1 ; COMMANDE = 2
rstTransactionDetail!ILLineNumber = NbL

rstProductData.Open "SELECT * FROM Product WHERE PrNumber='" & !CEDO & "'", cnn, adOpenKeyset, adLockOptimistic

ProductCheck = rstProductData.RecordCount
rstProductData.Close
rstTransactionDetail!ILProductNumber = !CEDO
If ProductCheck <> 0 Then
'Si le produit existe dans l'inventaire, consultation de sa fiche pour obtenir les valeurs à assigner aux propriétés le concernant dans la facturation
rstProductData.Open "SELECT * FROM Product where PrNumber ='" & !CEDO & "'", cnn, adOpenKeyset, adLockOptimistic
rstTransactionDetail!ILProductCP = rstProductData!RecCardPos
rstTransactionDetail!ILProductGroupCP = rstProductData!PrProductGroupCP
rstProductData.Close
Else:
rstTransactionDetail!ILProductGroupCP = 1
rstTransactionDetail!ILProductCP = 0
End If

rstTransactionDetail!ILDescription = !Description
rstTransactionDetail!ILSellingPrice = !Prix

rstTransactionDetail!ILOrderedQty = !Qte
rstTransactionDetail.Update
rstTransactionDetail.Close
NbL = NbL + 1
.MoveNext
Loop
.Close
End With

'*****************************************************
'* WRAP * - FERMETURE DES RECORDSET; LOOP; ETC
'*****************************************************
cnn.Execute ("END_TRANSACTION_IN")
rstCustomerData.Close
MsgBox "Transaction terminé"
End If
End If

End Sub

MATNAC1981

Nombre de messages : 5
Date d'inscription : 13/06/2012

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Où est CustomerTermNumber dans TransactionHeader???

Message  Jeremie le Jeu 30 Aoû 2012 - 10:07

Bonjour,

Si tu cherches les terme de paiement, se sont les champs InTermType et InTermDescription.

Si je ne me trompe pas.

Pour se qui est du code, après une lecture rapide, il semble tous à fait correcte.

Si tu regardes dans l'aide qui se trouve : C:\FORTUNE\SnapIn\ODBC\0C_ODBC.hlp
Tu devrais retrouver la définition détaillé des tables avec une description complète pour chaque champs de la table.

C'est avec sa que j'ai réussi à faire mes liens.
avatar
Jeremie

Nombre de messages : 110
Date d'inscription : 11/08/2010

Fiche d'Entreprise
Nom de l'entreprise:

Voir le profil de l'utilisateur http://bourgeois-sc.com

Revenir en haut Aller en bas

Re: Où est CustomerTermNumber dans TransactionHeader???

Message  Lartis le Jeu 30 Aoû 2012 - 23:46

J'ai déjà posé cette question au support ODBC, et voici leur réponse. Le numéro du terme n'est pas mémorisé. Cette réponse date de 2008, mais je suis pas mal certain que ça n'a pas changé depuis.


Envoyé : 23 juin 2008 18:44
À : 'ODBC'
Objet : Facture: champ NoTerm

Bonjour,

Je cherche le champ correspondant au numéro du terme dans une facture, et je ne le trouve pas.

Dans TransactionHeader, j’ai toutes les informations du terme de paiement, mais pas le numéro du terme.

Ou se trouve cette information? Il faut qu’elle soit sauvegardée, puisque le numéro est affiché dans la facture, et ce même si on change les détails du terme en cliquant sur […].

Merci!

Et la réponse:


Le numéro (et le CardPos) de la fiche de terme de paiement associée à une facturation n'est pas conservée dans la facturation. Cependant, comme vous l'avez constaté, l'ensemble de la configuration des termes de paiement de la facturation est conservé dans la facturation. Lorsqu'on consulte une facturation avec la fenêtre de saisie de facturation d'Acomba, le numéro de la fiche de terme de paiement qui est visible dans la fenêtre de saisie de facturation d'Acomba correspond au numéro de la fiche de terme de paiement qui est associée au client de la facturation. Le numéro de la fiche de terme de paiement du client de la facturation est défini dans le champ CuTermNumber de l'enregistrement de la table Customer qui contient le client de la facturation.

Si vous avez d'autres questions, n'hésitez pas à communiquer avec nous à nouveau.

Salutations,
Fortsum Solutions d'affaires

_________________
Sylvain Laurence, partenaire, revendeur et développeur Acomba
Groupe Conseil Lartis Inc. www.lartis.com
avatar
Lartis

Nombre de messages : 640
Ville : Laval
Date d'inscription : 03/04/2007

Fiche d'Entreprise
Nom de l'entreprise: Groupe Conseil Lartis Inc.

Voir le profil de l'utilisateur http://www.lartis.com

Revenir en haut Aller en bas

Re: Où est CustomerTermNumber dans TransactionHeader???

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum