Bonjour à tous,
Je poste un message ici parce que j'ai un problème de liaison entre deux de mes formulaires.
je m'explique: j'ai un premier formulaire basé sur la table T_Orders qui contient les détails des commandes passées, et un sous-formulaire basé sur une table T_OrdersContent, qui contient la liste des articles commandés. Entre ces deux tables, il y a une relations de un à plusieurs entre OrderID (T_Orders) et OrderReference (T_OrdersContent).
Quand je vérifie les champs père et fils, ils sont correctement renseignés. Cependant, lorsque je crée une nouvelle commande, le champ OrderReference ne remplit pas automatiquement (voir image), et si j'enregistre l'item de la commande, je retrouve l'item dans la table T_OrdersContent, mais sans la référence de commande (OrderID), ce qui est bien entendu très problématique...
J'ai du ajouter du code VBA lors de certains événements (notamment le chargement du sous formulaire). Je ne pense pas que ça puisse impacter, mais je vous poste le code, au cas ou...
Code VBA Formulaire principal:
Code VBA Sous-formulaire
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 Private Sub Commande30_Click() Me.TotalAmount = DLookup("[SommeDeSubTotal]", "R_OrderTotalHT") End Sub Private Sub Btn_CalculateTotal_Click() End Sub Private Sub Provider_GotFocus() Me.Provider.Requery End Sub Private Sub VAT_AfterUpdate() Me.TotalWithTax.Requery End Sub
Quelqu'un aurait-il une idée?
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 Option Compare Database Private Sub Btn_SaveForm_Click() DoCmd.SetWarnings False DoCmd.OpenQuery "R_BudgetImputation" DoCmd.SetWarnings True Me.SF_BudgetImputation.Form.PriceAdjustedPerBudget.Requery DoCmd.Save End Sub Private Sub Form_Current() If IsNull(Me.Item) Then Me.ItemPackaging.Visible = False Me.Packaging_Etiquette.Visible = False Me.PricePerUnit.Visible = False Me.PricePerUnit_Etiquette.Visible = False Me.Quantities.Visible = False Me.Quantities_Etiquette.Visible = False Me.SubTotal.Visible = False Me.SubTotal_Etiquette.Visible = False ElseIf IsNull(Me.ItemPackaging) Then Me.PricePerUnit.Visible = False Me.PricePerUnit_Etiquette.Visible = False Me.Quantities.Visible = False Me.Quantities_Etiquette.Visible = False Me.SubTotal.Visible = False Me.SubTotal_Etiquette.Visible = False ElseIf IsNull(Me.Quantities) Then Me.SubTotal.Visible = False Me.SubTotal_Etiquette.Visible = False Else Me.ItemPackaging.Visible = True Me.Packaging_Etiquette.Visible = True Me.PricePerUnit.Visible = True Me.PricePerUnit_Etiquette.Visible = True Me.Quantities.Visible = True Me.Quantities_Etiquette.Visible = True Me.SubTotal.Visible = True Me.SubTotal_Etiquette.Visible = True End If End Sub Private Sub Item_AfterUpdate() Me.ItemPackaging.Visible = True Me.Packaging_Etiquette.Visible = True Me.ItemPackaging.Requery End Sub Private Sub Item_GotFocus() Me.Item.Requery End Sub Private Sub ItemPackaging_AfterUpdate() Me.PricePerUnit.Visible = True Me.PricePerUnit_Etiquette.Visible = True Me.Quantities.Visible = True Me.Quantities_Etiquette.Visible = True Me.PricePerUnit = DLookup("Price", "R_ItemPrice") End Sub Private Sub ItemPackaging_GotFocus() Me.ItemPackaging.Requery End Sub Private Sub PricePerUnit_AfterUpdate() Me.SubTotal.Requery End Sub Private Sub Quantities_AfterUpdate() Me.SubTotal.Visible = True Me.SubTotal_Etiquette.Visible = True Me.SubTotal = Me.Quantities * Me.PricePerUnit End Sub
Merci d'avance
Partager