Bonjour,
J'effectue une requête UPDATE sur base d'un formulaire, mais celle-ci me fait n'importe quoi, j'en déduis donc que le code écrit est n'importe quoi
J'ai une table T_CdeMagDetail comportant notamment les champs NCde (numéro de commande), QuCde (Quantité commandée), QuIn1 (Quantité reçue), QuSouffrance (champ calculé QuCde-QuIn), Livraison (Quantité livrée), Suivi (Etat de la commande : Commandé, Partiel, Complet).
j'indique via un formulaire les quantités de réception d'articles dans les différentes lignes correspondantes, et, après un clic de validation, j'aimerais que ma table se mette à jour dans le sens ou:
la QuIn se voit ajouter la Quliv
la valeur de Quliv est remise à zéro
le Suivi passe en partiel si QUSouffrance est supérieur à 0 ou en Complet si QUSouffrance est égal à 0.
la variable num me permet de récupérer le numéro de commande...
Pourriez-vous aider le petit débutant que je suis....
Un grand merci à vous
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 Private Sub ConfirmerSuivi_Click() Dim requete As String: Dim base As Database: Dim ligne As Recordset: Dim critere As String: Dim num As String num = numcom.Value 'Considère la base T_CdeMagdetail mais seulement pour les enregistrements en rapport au N° de commande du formulaire Set base = Application.CurrentDb Set ligne = base.OpenRecordset("SELECT* FROM T_CdeMagDetail WHERE (T_CdeMagDetail.NCde = '" & num & "')", dbOpenDynaset) ligne.MoveFirst Do 'Modifie les valeurs de réception en les additionnant aux valeurs de livraison requete = "UPDATE T_CdeMagDetail SET T_CdeMagDetail.QuIN1 = [QuIN1]+ (" & Int(Livraison) & ") WHERE (T_CdeMagDetail.Livraison > 0);" base.Execute requete requete = "UPDATE T_CdeMagDetail SET T_CdeMagDetail.Livraison = 0 WHERE (T_CdeMagDetail.Livraison > 0);" base.Execute requete ligne.MoveNext Loop Until ligne.EOF ligne.Close base.Close Set ligne = Nothing Set base = Nothing 'Considère la base T_CdeMagdetail mais seulement pour les enregistrements en rapport au N° de commande du formulaire Set base = Application.CurrentDb Set ligne = base.OpenRecordset("SELECT* FROM T_CdeMagDetail WHERE (T_CdeMagDetail.NCde = '" & num & "')", dbOpenDynaset) ligne.MoveFirst Do If QuSouffrance.Value < 0 Then critere = "Partiel" Else critere = "Complet" End If 'modifie le suivi suivant la valeur de la souffrance existante requete = "UPDATE T_CdeMagDetail SET T_CdeMagDetail.Suivi =('" & critere & "') WHERE (T_CdeMagDetail.Livraison > 0);" base.Execute requete ligne.MoveNext Loop Until ligne.EOF ligne.Close base.Close Set ligne = Nothing Set base = Nothing DoCmd.Requery End Sub
Partager