- MATNAC1981
- Nombre de messages : 5
Date d'inscription : 13/06/2012
Où est CustomerTermNumber dans TransactionHeader???
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
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
- Jeremie
- Nombre de messages : 123
Date d'inscription : 11/08/2010
Fiche d'Entreprise
Nom de l'entreprise:
Re: Où est CustomerTermNumber dans TransactionHeader???
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.
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.
- Lartis
- Nombre de messages : 640
Ville : Laval
Date d'inscription : 03/04/2007
Fiche d'Entreprise
Nom de l'entreprise: Groupe Conseil Lartis Inc.
Re: Où est CustomerTermNumber dans TransactionHeader???
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.
Et la réponse:
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
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum