Créer une commande dans Acomba par Access
2 participants
- lboisvert
- Nombre de messages : 8
Date d'inscription : 19/07/2010
Créer une commande dans Acomba par Access
Lun 19 Juil 2010 - 13:53
Bonjour,
J'essaie de créer une commande dans Acomba en utilisant Access et ODBC.
J'ai utilisé une bonne partie du code Créer une facture pour ma commande et je l'ai adapté pour les besoins.
Voici mon code :
**********************************************************
Sub ExportationAcomba()
'Déclaration des variables
Dim strsql As String
Dim tbl As DAO.Recordset
Dim cnn As New ADODB.Connection
Dim rstTransactionHeader As New ADODB.Recordset
Dim rstTransactionDetail As New ADODB.Recordset
Dim rstCustomerData As New ADODB.Recordset
Dim rstProductData As New ADODB.Recordset
Dim rstCurrentTaxes As New ADODB.Recordset
Dim rstLastTransHeader As New ADODB.Recordset
Dim rstLastTransDetail As New ADODB.Recordset
Dim verreur As Integer
Dim vTaNum As Integer
Dim vLigne As Integer
Dim vInUnique As Variant
verreur = 0
cnn.ConnectionString = "DSN=DEMO"
cnn.CursorLocation = adUseClient
cnn.Open
On Error GoTo ExportationAcomba_Err
strsql = "tmpCommande"
Set tbl = CurrentDb.OpenRecordset(strsql)
'**********************************************************
'Étape 1 : Initialiser les propriétés de l'entête de la
' facturation
'**********************************************************
'Boucle tant qu'il y a des commandes dans la table tmpCommande
Do Until tbl.EOF
cnn.Execute ("BEGIN_TRANSACTION_IN")
rstTransactionHeader.Open "SELECT * FROM TransactionHeader", cnn, adOpenKeyset, adLockOptimistic
'
'Vérifie si la commande existe dans la table TransactionHeader d'Acomba
Do Until rstTransactionHeader.EOF
If Trim(rstTransactionHeader![InAssociatedOrder]) = tbl![NoCommande] Then
GoTo detail
End If
If Trim(rstTransactionHeader![InInvoiceNumber]) = tbl![NoCommande] Then
GoTo detail
End If
rstTransactionHeader.MoveNext
Loop
continue:
rstTransactionHeader.AddNew
'Pour une commande
rstTransactionHeader!InInvoiceType = 2
rstTransactionHeader!InReference = ""
rstTransactionHeader!InDescription = ""
rstTransactionHeader!InCurrentDay = 1
rstTransactionHeader!InTransactionActive = 1
rstTransactionHeader![InInvoiceNumber] = tbl![NoCommande]
'Trouve le numéro de client selon le nom du client
'Numéro du client associé à la facture
If tbl![NomClient] = "TREMCAR IBERVILLE" Then
CustomerName = "TREMCAR INC."
Else
CustomerName = tbl![NomClient]
End If
'On veut aller chercher les informations du client
rstCustomerData.Open "SELECT * FROM Customer where cuName = '" & CustomerName & "'", cnn, adOpenKeyset, adLockOptimistic
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Pour le calcul des taxes avec le cnn.Execute("CALCULATE_TAXES")
'il faut initialiser un CardPos du groupe de taxe
'On peut donc aller chercher le groupe de taxe auquel le client fait parti
'pour utiliser les bonnes taxes pour le calcul
rstTransactionHeader!InTaxGroupCP = rstCustomerData!CuTaxGroupCP
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If Not rstCustomerData.EOF Then
rstTransactionHeader!InCustomerSupplierCP = rstCustomerData!RecCardPos
Else
rstTransactionHeader!InCustomerSupplierCP = 0
End If
'Si le client existe
If rstTransactionHeader!InCustomerSupplierCP > 0 Then
'Initialisation des propriétés concernant le client
'associé à la facture
rstTransactionHeader!InInvoicedToCP = rstCustomerData!CuInvoicedToCP
'Numéro du compte recevable du client auquel la facturation
'est associée
rstTransactionHeader!InReceivableOffset = rstCustomerData!CuReceivable
End If
'**********************************************************
'Étape 2 : Assigner le nombre total de lignes incluses
' dans la facturation à la propriété TANumLines
'**********************************************************
rstTransactionHeader!TANumLines = tbl![NbrLigne]
rstTransactionHeader.Update
detail:
'**********************************************************
'Étape 3 : Initialiser les propriétés de la première
' ligne de la facturation
'**********************************************************
rstTransactionDetail.Open "SELECT * FROM TransactionDetail where TaNum = " & tbl![NoLigne], cnn, adOpenKeyset, adLockOptimistic
'Pour une commande
rstTransactionDetail!ILType = 2
rstTransactionDetail!ILLineNumber = tbl![NoLigne]
rstTransactionDetail!ILProductNumber = tbl![NoProduit]
rstProductData.Open "SELECT * FROM Product where PrNumber = '" & tbl![NoProduit] & "'", cnn, adOpenKeyset, adLockOptimistic
If Not rstProductData.EOF 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
rstTransactionDetail!ILProductCP = rstProductData!RecCardPos
rstTransactionDetail!ILDescription = rstProductData!PrDescription1
rstTransactionDetail!ILSellingPrice = tbl![Prix]
rstTransactionDetail!ILProductGroupCP = rstProductData!PrProductGroupCP
'Pour une commande
rstTransactionDetail!ILOrderedQty = tbl![Qte]
Else
'Si le produit n'existe pas dans l'inventaire, les valeurs
'à assigner aux propriétés le concernant dans la facturation
'doivent provenir d'une autre source que l'inventaire
'd'Acomba
'Ajoute le produit dans la table Acomba s'il n'existe pas
rstProductData.AddNew
rstProductData![PrNumber] = tbl![NoProduit]
rstProductData![PrTimeModified] = Now
rstProductData![PrDescription1] = tbl![Description]
rstProductData![PrSortKey1] = Left(tbl![Description], 15)
rstProductData![PrSellingPrice0_1] = tbl![Prix]
rstProductData![PrQtyOrdered] = tbl![Qte]
rstProductData![RecCardPos] = DMax("RecCardPos", "rstProductData") + 1
rstProductData.Update
rstTransactionDetail!ILDescription = tbl![Description]
rstTransactionDetail!ILSellingPrice = tbl![Prix]
'Détermine le groupe du produit selon le début du numéro de produit
If Left(tbl![NoProduit], 6) = "312261" Then
rstTransactionDetail!ILProductGroupCP = 1
ElseIf Left(tbl![NoProduit], 6) = "312291" Then
rstTransactionDetail!ILProductGroupCP = 2
End If
'Pour une commande
rstTransactionDetail!ILOrderedQty = tbl![Qte]
End If
rstTransactionDetail.Update
rstTransactionDetail.Close
rstProductData.Close
rstTransactionHeader.Close
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Calcul de taxe
'On peut effectuer le calcul des taxes et y avoir accès avant la finalisation de la facture
'Voici un exemple avec lequel on calcul les taxes et on ajoute par la suite une ligne de transport
'il est possible aussi de calculer les taxes, ajouter des produits, et recalculer les taxes
'On recalcule les taxes en incluant la ligne de transport
cnn.Execute ("CALCULATE_TAXES")
'On veut avoir accès aux montants des taxes fraiches calculées Avant l'exécution du END_TRANSACTION_IN
rstCurrentTaxes.Open "select * from LastTransactionDetail where ILType = 8", cnn, adOpenKeyset, adLockOptimistic
Amount = rstCurrentTaxes!ILTotalAmount
Amount = rstCurrentTaxes!ILType
rstCurrentTaxes.MoveNext
Amount = rstCurrentTaxes!ILTotalAmount
Amount = rstCurrentTaxes!ILType
' rstCurrentTaxes.Close
'Si on veut canceller la transaction et par le fait même libérer les cartes pré-réservées, mais il ne faut pas exécuter le END_TRANSACTION_IN après.
'cnn.Execute ("CANCEL_TRANSACTION_IN")
'Terminer la création de la transaction
cnn.Execute ("END_TRANSACTION_IN")
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Si on veut obtenir des informations sur le dernier header créé,
' les informations se trouvent dans le LastTransactionHeader
' On veut particulièrement obtenir le CardPos de la transaction une fois créée
' afin de faire des opérations sur celle-ci
' Toutes autres informations sont aussi disponibles
rstLastTransHeader.Open "select * from LastTransactionHeader", cnn, adOpenKeyset, adLockOptimistic
CardPos = rstLastTransHeader!RecCardPos ' <---------
InvoiceTotal = rstLastTransHeader!InInvoiceTotal
SupplierCP = rstLastTransHeader!InCustomerSupplierCP
rstLastTransHeader.Close
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Si on veut obtenir des informations sur les lignes de taxes,
' les informations se trouvent dans le LastTransactionDetail (Ainsi que d'autres informations de lignes)
rstLastTransDetail.Open "select * from LastTransactionDetail where ILType = 8", cnn, adOpenKeyset, adLockOptimistic
'premiere ligne de taxe
Amount = rstLastTransDetail!ILTotalAmount
'deuxieme ligne de taxe
rstLastTransDetail.MoveNext
Amount = rstLastTransDetail!ILTotalAmount
rstLastTransDetail.Close
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Fermeture des RecordSet
rstCustomerData.Close
MsgBox "Transaction terminé"
fin:
tbl.MoveNext
Loop
ExportationAcomba_Exit:
cnn.Close
Exit Sub
ExportationAcomba_Err:
MsgBox Err.Description
cnn.Execute ("CANCEL_TRANSACTION_IN")
Resume ExportationAcomba_Exit
End Sub
**********************************************************
Fin de mon code
Le problème s'est qu'il met un message d'erreur sur la ligne :
cnn.Execute ("END_TRANSACTION_IN")
Le message est le suivant :
Erreur de toolkit
Fonction = ModifyCard
Champ = ILType[2]
Erreur = Valeur invalide <1997>
Quelqu'un peut-il m'aider svp ?
Merci
lboisvert
J'essaie de créer une commande dans Acomba en utilisant Access et ODBC.
J'ai utilisé une bonne partie du code Créer une facture pour ma commande et je l'ai adapté pour les besoins.
Voici mon code :
**********************************************************
Sub ExportationAcomba()
'Déclaration des variables
Dim strsql As String
Dim tbl As DAO.Recordset
Dim cnn As New ADODB.Connection
Dim rstTransactionHeader As New ADODB.Recordset
Dim rstTransactionDetail As New ADODB.Recordset
Dim rstCustomerData As New ADODB.Recordset
Dim rstProductData As New ADODB.Recordset
Dim rstCurrentTaxes As New ADODB.Recordset
Dim rstLastTransHeader As New ADODB.Recordset
Dim rstLastTransDetail As New ADODB.Recordset
Dim verreur As Integer
Dim vTaNum As Integer
Dim vLigne As Integer
Dim vInUnique As Variant
verreur = 0
cnn.ConnectionString = "DSN=DEMO"
cnn.CursorLocation = adUseClient
cnn.Open
On Error GoTo ExportationAcomba_Err
strsql = "tmpCommande"
Set tbl = CurrentDb.OpenRecordset(strsql)
'**********************************************************
'Étape 1 : Initialiser les propriétés de l'entête de la
' facturation
'**********************************************************
'Boucle tant qu'il y a des commandes dans la table tmpCommande
Do Until tbl.EOF
cnn.Execute ("BEGIN_TRANSACTION_IN")
rstTransactionHeader.Open "SELECT * FROM TransactionHeader", cnn, adOpenKeyset, adLockOptimistic
'
'Vérifie si la commande existe dans la table TransactionHeader d'Acomba
Do Until rstTransactionHeader.EOF
If Trim(rstTransactionHeader![InAssociatedOrder]) = tbl![NoCommande] Then
GoTo detail
End If
If Trim(rstTransactionHeader![InInvoiceNumber]) = tbl![NoCommande] Then
GoTo detail
End If
rstTransactionHeader.MoveNext
Loop
continue:
rstTransactionHeader.AddNew
'Pour une commande
rstTransactionHeader!InInvoiceType = 2
rstTransactionHeader!InReference = ""
rstTransactionHeader!InDescription = ""
rstTransactionHeader!InCurrentDay = 1
rstTransactionHeader!InTransactionActive = 1
rstTransactionHeader![InInvoiceNumber] = tbl![NoCommande]
'Trouve le numéro de client selon le nom du client
'Numéro du client associé à la facture
If tbl![NomClient] = "TREMCAR IBERVILLE" Then
CustomerName = "TREMCAR INC."
Else
CustomerName = tbl![NomClient]
End If
'On veut aller chercher les informations du client
rstCustomerData.Open "SELECT * FROM Customer where cuName = '" & CustomerName & "'", cnn, adOpenKeyset, adLockOptimistic
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Pour le calcul des taxes avec le cnn.Execute("CALCULATE_TAXES")
'il faut initialiser un CardPos du groupe de taxe
'On peut donc aller chercher le groupe de taxe auquel le client fait parti
'pour utiliser les bonnes taxes pour le calcul
rstTransactionHeader!InTaxGroupCP = rstCustomerData!CuTaxGroupCP
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If Not rstCustomerData.EOF Then
rstTransactionHeader!InCustomerSupplierCP = rstCustomerData!RecCardPos
Else
rstTransactionHeader!InCustomerSupplierCP = 0
End If
'Si le client existe
If rstTransactionHeader!InCustomerSupplierCP > 0 Then
'Initialisation des propriétés concernant le client
'associé à la facture
rstTransactionHeader!InInvoicedToCP = rstCustomerData!CuInvoicedToCP
'Numéro du compte recevable du client auquel la facturation
'est associée
rstTransactionHeader!InReceivableOffset = rstCustomerData!CuReceivable
End If
'**********************************************************
'Étape 2 : Assigner le nombre total de lignes incluses
' dans la facturation à la propriété TANumLines
'**********************************************************
rstTransactionHeader!TANumLines = tbl![NbrLigne]
rstTransactionHeader.Update
detail:
'**********************************************************
'Étape 3 : Initialiser les propriétés de la première
' ligne de la facturation
'**********************************************************
rstTransactionDetail.Open "SELECT * FROM TransactionDetail where TaNum = " & tbl![NoLigne], cnn, adOpenKeyset, adLockOptimistic
'Pour une commande
rstTransactionDetail!ILType = 2
rstTransactionDetail!ILLineNumber = tbl![NoLigne]
rstTransactionDetail!ILProductNumber = tbl![NoProduit]
rstProductData.Open "SELECT * FROM Product where PrNumber = '" & tbl![NoProduit] & "'", cnn, adOpenKeyset, adLockOptimistic
If Not rstProductData.EOF 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
rstTransactionDetail!ILProductCP = rstProductData!RecCardPos
rstTransactionDetail!ILDescription = rstProductData!PrDescription1
rstTransactionDetail!ILSellingPrice = tbl![Prix]
rstTransactionDetail!ILProductGroupCP = rstProductData!PrProductGroupCP
'Pour une commande
rstTransactionDetail!ILOrderedQty = tbl![Qte]
Else
'Si le produit n'existe pas dans l'inventaire, les valeurs
'à assigner aux propriétés le concernant dans la facturation
'doivent provenir d'une autre source que l'inventaire
'd'Acomba
'Ajoute le produit dans la table Acomba s'il n'existe pas
rstProductData.AddNew
rstProductData![PrNumber] = tbl![NoProduit]
rstProductData![PrTimeModified] = Now
rstProductData![PrDescription1] = tbl![Description]
rstProductData![PrSortKey1] = Left(tbl![Description], 15)
rstProductData![PrSellingPrice0_1] = tbl![Prix]
rstProductData![PrQtyOrdered] = tbl![Qte]
rstProductData![RecCardPos] = DMax("RecCardPos", "rstProductData") + 1
rstProductData.Update
rstTransactionDetail!ILDescription = tbl![Description]
rstTransactionDetail!ILSellingPrice = tbl![Prix]
'Détermine le groupe du produit selon le début du numéro de produit
If Left(tbl![NoProduit], 6) = "312261" Then
rstTransactionDetail!ILProductGroupCP = 1
ElseIf Left(tbl![NoProduit], 6) = "312291" Then
rstTransactionDetail!ILProductGroupCP = 2
End If
'Pour une commande
rstTransactionDetail!ILOrderedQty = tbl![Qte]
End If
rstTransactionDetail.Update
rstTransactionDetail.Close
rstProductData.Close
rstTransactionHeader.Close
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Calcul de taxe
'On peut effectuer le calcul des taxes et y avoir accès avant la finalisation de la facture
'Voici un exemple avec lequel on calcul les taxes et on ajoute par la suite une ligne de transport
'il est possible aussi de calculer les taxes, ajouter des produits, et recalculer les taxes
'On recalcule les taxes en incluant la ligne de transport
cnn.Execute ("CALCULATE_TAXES")
'On veut avoir accès aux montants des taxes fraiches calculées Avant l'exécution du END_TRANSACTION_IN
rstCurrentTaxes.Open "select * from LastTransactionDetail where ILType = 8", cnn, adOpenKeyset, adLockOptimistic
Amount = rstCurrentTaxes!ILTotalAmount
Amount = rstCurrentTaxes!ILType
rstCurrentTaxes.MoveNext
Amount = rstCurrentTaxes!ILTotalAmount
Amount = rstCurrentTaxes!ILType
' rstCurrentTaxes.Close
'Si on veut canceller la transaction et par le fait même libérer les cartes pré-réservées, mais il ne faut pas exécuter le END_TRANSACTION_IN après.
'cnn.Execute ("CANCEL_TRANSACTION_IN")
'Terminer la création de la transaction
cnn.Execute ("END_TRANSACTION_IN")
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Si on veut obtenir des informations sur le dernier header créé,
' les informations se trouvent dans le LastTransactionHeader
' On veut particulièrement obtenir le CardPos de la transaction une fois créée
' afin de faire des opérations sur celle-ci
' Toutes autres informations sont aussi disponibles
rstLastTransHeader.Open "select * from LastTransactionHeader", cnn, adOpenKeyset, adLockOptimistic
CardPos = rstLastTransHeader!RecCardPos ' <---------
InvoiceTotal = rstLastTransHeader!InInvoiceTotal
SupplierCP = rstLastTransHeader!InCustomerSupplierCP
rstLastTransHeader.Close
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Si on veut obtenir des informations sur les lignes de taxes,
' les informations se trouvent dans le LastTransactionDetail (Ainsi que d'autres informations de lignes)
rstLastTransDetail.Open "select * from LastTransactionDetail where ILType = 8", cnn, adOpenKeyset, adLockOptimistic
'premiere ligne de taxe
Amount = rstLastTransDetail!ILTotalAmount
'deuxieme ligne de taxe
rstLastTransDetail.MoveNext
Amount = rstLastTransDetail!ILTotalAmount
rstLastTransDetail.Close
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Fermeture des RecordSet
rstCustomerData.Close
MsgBox "Transaction terminé"
fin:
tbl.MoveNext
Loop
ExportationAcomba_Exit:
cnn.Close
Exit Sub
ExportationAcomba_Err:
MsgBox Err.Description
cnn.Execute ("CANCEL_TRANSACTION_IN")
Resume ExportationAcomba_Exit
End Sub
**********************************************************
Fin de mon code
Le problème s'est qu'il met un message d'erreur sur la ligne :
cnn.Execute ("END_TRANSACTION_IN")
Le message est le suivant :
Erreur de toolkit
Fonction = ModifyCard
Champ = ILType[2]
Erreur = Valeur invalide <1997>
Quelqu'un peut-il m'aider svp ?
Merci
lboisvert
- PlanteG
- Nombre de messages : 1024
Ville : Québec
Date d'inscription : 11/07/2007
Fiche d'Entreprise
Nom de l'entreprise: Informatique Gilles Plante
Créer une commande dans Acomba par Access
Mar 20 Juil 2010 - 10:02
Extraits du fichier d'aide d'ODBC:
ILType
Type InvoicingLineType de la ligne de facturation (Facture, Commande, Commande ouverte, Sousmission, Achat, Format, Transport, Taxe, Écriture comptable).
InvoicingLineType
Constantes des types de lignes de facturation.
Valeur Description
1 Facture
2 Commande
3 Commande ouverte
4 Soumission
5 Achat
6 Format
7 Transport
8 Taxe
9 Affectation comptable
Donc ILType doit prendre une valeur de 1 à 9. Cette valeur est 1997 et est donc invalide.
ILType
Type InvoicingLineType de la ligne de facturation (Facture, Commande, Commande ouverte, Sousmission, Achat, Format, Transport, Taxe, Écriture comptable).
InvoicingLineType
Constantes des types de lignes de facturation.
Valeur Description
1 Facture
2 Commande
3 Commande ouverte
4 Soumission
5 Achat
6 Format
7 Transport
8 Taxe
9 Affectation comptable
Donc ILType doit prendre une valeur de 1 à 9. Cette valeur est 1997 et est donc invalide.
- lboisvert
- Nombre de messages : 8
Date d'inscription : 19/07/2010
MERCI
Mar 20 Juil 2010 - 15:42
MERCI pour ta réponse
Mais je ne sais pas d'où vient le 1997, j'ai beau regarder mon programme et cela ne fonctionne toujours pas.
J'ai découvert que dans ma table lié TransactionDetail il y avait un enregistrement dont plusieurs champs sont à 0 dont le champ ILType, est-ce que le problème peut venir de là? J'ai essayé de supprimer cet enregistrement et je suis toujours en lecture seule donc je n'y arrive pas. Avez-vous un exemple de programme pour supprimer tout le contenu de cette table ?
J'ai réussie une seule fois à enregistrer une commande mais je crois que depuis que j'ai cet enregistrement à 0 je ne suis plus capable de faire quoi que ce soit dans cette table.
Avez-vous une idée???
Merci
Lboisvert
Mais je ne sais pas d'où vient le 1997, j'ai beau regarder mon programme et cela ne fonctionne toujours pas.
J'ai découvert que dans ma table lié TransactionDetail il y avait un enregistrement dont plusieurs champs sont à 0 dont le champ ILType, est-ce que le problème peut venir de là? J'ai essayé de supprimer cet enregistrement et je suis toujours en lecture seule donc je n'y arrive pas. Avez-vous un exemple de programme pour supprimer tout le contenu de cette table ?
J'ai réussie une seule fois à enregistrer une commande mais je crois que depuis que j'ai cet enregistrement à 0 je ne suis plus capable de faire quoi que ce soit dans cette table.
Avez-vous une idée???
Merci
Lboisvert
- PlanteG
- Nombre de messages : 1024
Ville : Québec
Date d'inscription : 11/07/2007
Fiche d'Entreprise
Nom de l'entreprise: Informatique Gilles Plante
Créer une commande dans Acomba par Access
Mar 20 Juil 2010 - 16:38
Hum, effectivement, ILType est mis à 0 dans le code. Peut-être que c'est le syndrome du mauvais message d'erreur qui se produit.
Il y a tout de même un truc qui me semble accrocher: il y a une boucle qui traite toutes les commandes (Do until), mais je ne semble pas voir la boucle qui traite toutes les lignes d'une commande. En fait le squelette devrait être semblable à ceci:
Do xxx ' Traite tous les commandes
' Traite le header de la commande
Do xxx 'Traite toutes les lignes de la commande
loop ' Toutes les lignes de la commande
loop ' Traite toutes les commandes
Si la ligne rstTransactionHeader!TANumLines = tbl![NbrLigne] indique qu'il y a 3 lignes, mais qu'une seule est créée dans la tables des détails, il va y avoir à coup sûr un problème.
Il y a tout de même un truc qui me semble accrocher: il y a une boucle qui traite toutes les commandes (Do until), mais je ne semble pas voir la boucle qui traite toutes les lignes d'une commande. En fait le squelette devrait être semblable à ceci:
Do xxx ' Traite tous les commandes
' Traite le header de la commande
Do xxx 'Traite toutes les lignes de la commande
loop ' Toutes les lignes de la commande
loop ' Traite toutes les commandes
Si la ligne rstTransactionHeader!TANumLines = tbl![NbrLigne] indique qu'il y a 3 lignes, mais qu'une seule est créée dans la tables des détails, il va y avoir à coup sûr un problème.
- lboisvert
- Nombre de messages : 8
Date d'inscription : 19/07/2010
MERCI
Mer 21 Juil 2010 - 10:04
Bonjour PlanteG
Merci pour votre réponse cela m'a beaucoup éclairé, j'ai réussie à entrer une commande dans Acomba par Access.
UN GROS MERCI!!!
Une autre petite question, si dans ma commande le produit n'existe pas j'aimerais pouvoir le créer dans la table Product. Comment doit-je faire ? Dois-je utiliser BEGIN... et END.... ?
Merci
lboisvert
Merci pour votre réponse cela m'a beaucoup éclairé, j'ai réussie à entrer une commande dans Acomba par Access.
UN GROS MERCI!!!
Une autre petite question, si dans ma commande le produit n'existe pas j'aimerais pouvoir le créer dans la table Product. Comment doit-je faire ? Dois-je utiliser BEGIN... et END.... ?
Merci
lboisvert
- PlanteG
- Nombre de messages : 1024
Ville : Québec
Date d'inscription : 11/07/2007
Fiche d'Entreprise
Nom de l'entreprise: Informatique Gilles Plante
Créer une commande dans Acomba par Access
Mer 21 Juil 2010 - 10:15
Pour ce qui de créer des produits, voir ce sujet Ajout de nouveaux Produits via ODBC
qui est sur ce forum.
qui est sur ce forum.
- lboisvert
- Nombre de messages : 8
Date d'inscription : 19/07/2010
Produit dans ODBC
Mer 21 Juil 2010 - 10:22
Oui merci je l'ai vue après avoir posé la question.
lboisvert
lboisvert
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum