Bonjour,
Dans ma base j'ai un formulaire intervention dans lequel j'ai un sous-formulaire détail. Lorsque je sélectionne les lignes du S/F Détail, je clique sur "transférer en facture" et la facture est créée. Le code que j'utilise est le suivant :
A présent, je souhaite pouvoir transformer une facture en avoir en sélectionnant toutes les lignes du sous-formulaire détail fac ou quelques unes. Donc j'ai créé une case oui/non "Selec" et une case oui/non "Avoir" dans le détail fac. Lorsque je transfère les lignes, je souhaite que la quantité soit négative (ou positive si elle était négative dans la facture).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 Private Sub Commande211_Click() On Error GoTo Err_Commande211_Click Dim NumFAC As String Dim stDocName As String stDocName = "FORM-FACTURE FI" DoCmd.OpenForm stDocName, acNormal, "", "", acAdd, acNormal Forms![FORM-FACTURE FI]![ID_Devis] = IDDevis Forms![FORM-FACTURE FI]![id_FI] = IDFiche Forms![FORM-FACTURE FI]![ID_Client] = IDClient Forms![FORM-FACTURE FI]![ID_Site] = IDSites Forms![FORM-FACTURE FI]![ID_Analaytique] = IDAnalytique Forms![FORM-FACTURE FI]![ID_Categorie] = IDCategorie Forms![FORM-FACTURE FI]![Objet] = Observations Forms![FORM-FACTURE FI]![ID_TVA Double] = [TVA FI] Forms![FORM-FACTURE FI]![Texte] = Observ2 Forms![FORM-FACTURE FI]![Type facture] = Typefacture Forms![FORM-FACTURE FI]![AcompteFI] = C - Acompte Forms![FORM-FACTURE FI].Refresh 'Récupérer le numéro de fiche intervention en cours NumFAC = Forms![FORM-FACTURE FI]!IDFACTUREFI monsql = "INSERT INTO [RQ-DETAIL FAC] ([ID_Facture FI], ID_FI, [ID_ARTICLE], TVA, SOUSARTICLE, [PVHT Fac], [QteDetailFac])" _ & " SELECT [Formulaires]![FORM-FACTURE FI]![IDFACTUREFI] AS NumFAC,[RQ-DETAIL FI].id_FI," _ & " [RQ-DETAIL FI].id_article, [RQ-DETAIL FI].TVA, [RQ-DETAIL FI].SousArticle, [RQ-DETAIL FI].[PVHT FI], [RQ-DETAIL FI].[Qte DetailFI]" _ & " From [RQ-DETAIL FI]" _ & " WHERE [RQ-DETAIL FI].id_FI ='" & Me.IDFiche _ & "' AND [RQ-DETAIL FI].[Select]=-1 AND [RQ-DETAIL FI].Facture=0;" DoCmd.RunSQL monsql monsql = "UPDATE [RQ-DETAIL FI] SET [RQ-DETAIL FI].Facture = -1" _ & " WHERE [RQ-DETAIL FI].id_FI ='" & Me.IDFiche _ & "' AND [RQ-DETAIL FI].[Select]=-1 AND [RQ-DETAIL FI].Facture=0;" DoCmd.RunSQL monsql Forms![FORM-FACTURE FI].[S/FORM-DETAIL FAC].Form.Requery Exit_Commande211_Click: Exit Sub Err_Commande211_Click: MsgBox Err.Description Resume Exit_Commande211_Click End Sub
Donc j'ai utilisé le code ci-dessus et je l'ai adapter ainsi :
Alors d'une part ça ne crée pas un nouveau document, le 1er "DoCmd.RunSQL monsql" est jaune et de plus je ne sais pas comment ni où mettre la notion "quantité négative" de l'avoir.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 Private Sub Commande87_Click() Dim NumFAC As String Dim stDocName As String stDocName = "FORM-FACTURE FI" DoCmd.OpenForm stDocName, acNormal, "", "", acAdd, acNormal Forms![FORM-FACTURE FI]![ID_Devis] = ID_Devis Forms![FORM-FACTURE FI]![id_FI] = id_FI Forms![FORM-FACTURE FI]![ID_Client] = ID_Client Forms![FORM-FACTURE FI]![ID_Site] = ID_Site Forms![FORM-FACTURE FI]![ID_Analaytique] = id_analytique Forms![FORM-FACTURE FI]![ID_Categorie] = IDCategorie Forms![FORM-FACTURE FI]![Objet] = Objet Forms![FORM-FACTURE FI]![ID_TVA Double] = [ID_TVA Double] Forms![FORM-FACTURE FI]![Texte] = Texte Forms![FORM-FACTURE FI]![AcompteFI] = AcompteFI Forms![FORM-FACTURE FI].Refresh 'Récupérer le numéro de fiche intervention en cours NumFAC = Forms![FORM-FACTURE FI]!IDFACTUREFI monsql = "INSERT INTO [RQ-DETAIL FAC] ([ID_Facture FI], ID_FI, [ID_ARTICLE], TVA, SOUSARTICLE, [PVHT Fac], [QteDetailFac])" _ & " SELECT [Formulaires]![FORM-FACTURE FI]![IDFACTUREFI] AS NumFAC,[RQ-DETAIL FAC].ID_Facture FI," _ & " [RQ-DETAIL FAC].ID_ARTICLE, [RQ-DETAIL FAC].TVA, [RQ-DETAIL FAC].SOUSARTICLE, [RQ-DETAIL FAC].[PVHT Fac], [RQ-DETAIL FAC].[Qte DetailFac]" _ & " From [RQ-DETAIL FAC]" _ & " WHERE [RQ-DETAIL FAC].ID_Facture FI ='" & Me.IDFACTUREFI _ & "' AND [RQ-DETAIL FAC].[Selec]=-1 AND [RQ-DETAIL FAC].Avoir=0;" DoCmd.RunSQL monsql monsql = "UPDATE [RQ-DETAIL FAC] SET [RQ-DETAIL FAC].Avoir = -1" _ & " WHERE [RQ-DETAIL FAC].ID_Facture FI ='" & Me.IDFACTUREFI _ & "' AND [RQ-DETAIL FAC].[Selec]=-1 AND [RQ-DETAIL FAC].Avoir=0;" DoCmd.RunSQL monsql Forms![FORM-FACTURE FI].[S/FORM-DETAIL FAC].Form.Requery Exit_Commande87_Click: Exit Sub Err_Commande87_Click: MsgBox Err.Description Resume Exit_Commande87_Click End Sub
Merci pour vos conseils.
Cordialement,
Kanin
Partager