Bonjour
J'ai déjà créé une discussion sur ce problème qui me bloque depuis une semaine mais j'ai pas trouvé la réponse!!
En effet j'ai une table nommée "dim_aux" qui contient des longueurs (numériques) constituant le champ "Dimcoupe"
et une table nommée "Dimensions" qui contient un champ "Longueur", un champ "matière_première", un champ "Quantité utilisée" et d'autres champs qu'on n'aura pas besoin
Moi je veux modifier le contenu de la table "dimensions" et essentiellement le champ "quantité utilisée"
NB: Pour chaque enregistrement de la table "dim_aux" et pour une valeur donnée de "matière première" saisie dans mon formulaire je vais modifier l'enregistrement correspond de la table "dimensions"
Problème: Je n'ai aucun message d'erreur mais aussi la "quantité utilisée" ne sera pas modifiée dans ma table "dimensions" pourtant que j'ai mis le "Update"!!!
Pour ce faire j'ai créé un code qui semble correcte:
De même j'ai eu de l'aide pour résoudre ce problème (par marot_r ) et j'ai écrit ce code:
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 Dim rs03 As DAO.Recordset Dim rs04 As DAO.Recordset Set rs03 = CurrentDb.OpenRecordset("dim_aux") Set rs04 = CurrentDb.OpenRecordset("Dimensions") rs03.MoveFirst While rs03.EOF() 'parcourir la table "dim_aux" rs04.MoveFirst 'premier enregistrement de la table "dimensions" While rs04.EOF() 'parcourir la table "Dimensions" If (rs04![Longueur] = rs03![Dimcoupe] And rs04![Matière première] = Me.CodeMP) Then rs04.Edit 'modifier la table "dimensions" rs04![Quantité utilisée] = rs04![Quantité utilisée] + Me.Quantity 'calcul du cumul par MP rs04.Update ' mise à jour de la table "dimensions" End If rs04.MoveNext 'enregistrement suivant de la table "dimensions" Wend rs03.MoveNext 'longueur suivante de la table "dim_aux" Wend rs03.Close rs04.Close Set rs03 = Nothing Set rs04 = Nothing
Mais ça ne marche pas aussi
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 Dim rsDim_aux As DAO.Recordset Dim rsDimensions As DAO.Recordset Dim critere04 As String ' On va mettre dans lequel la "référence_dim" de la table "Dimensions" Set rsDim_aux = CurrentDb.OpenRecordset("dim_aux") Set rsDimensions = CurrentDb.OpenRecordset("Dimensions") rsDim_aux.MoveFirst While rsDim_aux.EOF() 'parcourir la table "dim_aux" critere04 = "[Longueur] = """ & rsDim_aux![Dimcoupe] & """" critere04 = critere04 & " and [Matière première] = """ & Me.CodeMP & """" Call rsDimensions.FindFirst(critere04) If Not rsDimensions.NoMatch Then rsDimensions.Edit 'modifier la table "dimensions" rsDimensions![Quantité utilisée] = rsDimensions![Quantité utilisée] + Me.Quantity 'calcul du cumul par MP rsDimensions.Update ' mise à jour de la table "dimensions" End If rsDim_aux.MoveNext 'longueur suivante de la table "dim_aux" Wend rsDim_aux.Close rsDimensions.Close Set rsDim_aux = Nothing Set rsDimensions = Nothing
Mes tables ne sont pas vides!!!!! et la conditionest correcte pour une seule valeur de la table "dimensions"
Code : Sélectionner tout - Visualiser dans une fenêtre à part If (rs04![Longueur] = rs03![Dimcoupe] And rs04![Matière première] = Me.CodeMP) Then
Si il y'a quelqu'un qui peut m'aider à résoudre ce problème je serais vraiment reconnaissante
Partager