fisgi
Messages postés2Date d'inscriptionvendredi 11 décembre 2009StatutMembreDernière intervention27 mai 2010
-
27 mai 2010 à 16:29
fisgi
Messages postés2Date d'inscriptionvendredi 11 décembre 2009StatutMembreDernière intervention27 mai 2010
-
27 mai 2010 à 17:14
Voici mon code:
Private Sub CmdNotecrédit_Click()
Dim RstProtocole As DAO.Recordset, RstProtocole2 As DAO.Recordset
Dim Db As DAO.Database, fld As DAO.Field
Dim Sql As String
Dim id As Long
Set Db = CurrentDb
'Ouvre le recordset ou sera prélevé le protocole
Set RstProtocole Db.OpenRecordset("Select Facturedate, FactureClient, FactureType, FactureCompagnie, FactureCommis, FactureDescription, FactureTaxes, FactureNotes, FactureNomContact, FactureStatut From TbFacture where FactureNuméro 17948")
'Vérifie que le protocole 1 existe
If RstProtocole.EOF Then Exit Sub
'Ouvre le recordset ou sera ajouté le protocole
Set RstProtocole2 = Db.OpenRecordset("Tbfacture")
'Duplique le protocole
With RstProtocole2
.AddNew
'Duplique les champs
For Each fld In RstProtocole.Fields
.Fields(fld.Name) = fld.Value
Next
id = .Fields("factureNuméro")
.Update
'Se positionne sur l'enregistrement ajouté
End With
'Duplique les lignes
Sql = "insert into TbFactureProduit (FactureProduitNoFacture,FactureProduitDescription,FactureProduitQuantité,FactureProduitMontant,FactureProduitTypeTaxe,FactureProduitPosteGL) Select " & _
id & ", FactureProduitDescription,FactureProduitQuantité,FactureProduitMontant,FactureProduitTypeTaxe,FactureProduitPosteGL From TbFactureProduit where FactureProduitNoFacture=17948"
Db.Execute Sql
End Sub
En ce moment le code fonctionne mais il est statique, pour qu'il duplique un enregistrement je dois entrer dans le code et changer le No de facture.
Je voudrais pouvoir changer FactureNuméro = 17948 par une valeur que l'utilisateur choisirais lui-même, sois par inputbox ou autre, lorsque je place une variable dans la condition where j'ai toujours un message d'erreur ( trop peu de paramètre attendu ).
Alors voilà mon problème, merci à ceui qui pourrais m'aider.
A voir également:
Dupliquer enregistrement du formulaire et sous-formulaire
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 27 mai 2010 à 16:36
Salut,
Si une simple InputBox te conviens, essaies ceci.
Private Sub CmdNotecrédit_Click()
Dim RstProtocole As DAO.Recordset, RstProtocole2 As DAO.Recordset
Dim Db As DAO.Database, fld As DAO.Field
Dim Sql As String
Dim id As Long
Dim NumFacture As String
Set Db = CurrentDb
NumFacture = InputBox("Veuillez saisir le nupméro de la facture", "Facture...")
'Ouvre le recordset ou sera prélevé le protocole
Set RstProtocole Db.OpenRecordset("Select Facturedate, FactureClient, FactureType, FactureCompagnie, FactureCommis, FactureDescription, FactureTaxes, FactureNotes, FactureNomContact, FactureStatut From TbFacture where FactureNuméro " & NumFacture)
'Vérifie que le protocole 1 existe
If RstProtocole.EOF Then Exit Sub
'Ouvre le recordset ou sera ajouté le protocole
Set RstProtocole2 = Db.OpenRecordset("Tbfacture")
'Duplique le protocole
With RstProtocole2
Call .AddNew
'Duplique les champs
For Each fld In RstProtocole.Fields
.Fields(fld.Name) = fld.Value
Next
id = .Fields("factureNuméro")
Call .Update
'Se positionne sur l'enregistrement ajouté
End With
'Duplique les lignes
Sql = "insert into TbFactureProduit (FactureProduitNoFacture,FactureProduitDescription,FactureProduitQuantité,FactureProduitMontant,FactureProduitTypeTaxe,FactureProduitPosteGL) Select " & _
id & ", FactureProduitDescription,FactureProduitQuantité,FactureProduitMontant,FactureProduitTypeTaxe,FactureProduitPosteGL From TbFactureProduit where FactureProduitNoFacture=" & NumFacture
Call Db.Execute(Sql)
End Sub