OVH Cloud OVH Cloud

Incompréhension sur comparaison de tables

1 réponse
Avatar
Briane lefebvre
Bonjour =E0 tous !

Depuis hier, j'ai un souci sur Access pour une=20
comparaison de 2 tables identiques. Je souhaite compar=E9=20
sur les 2 tables un champ unique disons "BL" : lorsque=20
que la valeur du champs "BL" de la table 1 =3D =E0 la valeur=20
du champs "BL" de la table 2, alors on modifie la valeur=20
du champs "BL" de table 1 en mettant "OK".... et on passe=20
=E0 la comparaison suivante....

Voici le code que j'utilise :
Private Sub Commande0_Click()
Dim db As DAO.database
Dim rst1 As DAO.Recordset
Dim rst2 As DAO.Recordset

'Ouverture des tables table1 et table2
Set db =3D Application.CurrentDb
Set rst1 =3D db.openrecordset("Table1")
Set rst2 =3D db.openrecordset("Table2")


rst1.MoveFirst
rst2.MoveFirst
While rst2.EOF =3D False
If rst2("BL") =3D rst1("BL") Then
rst2.Edit
rst2("Nom") =3D "OK"
rst2.Update
End If
rst2.MoveNext
rst1.MoveNext
Wend

rst1.Close
rst2.Close
Set rst2 =3D Nothing
Set db =3D Nothing

MsgBox "Fichier trait=E9"
=20
End Sub

j'attends avec impatience votre aide....

Cordialement=20

Brian Lefebvre

1 réponse

Avatar
Yann
Salut Briane,
Pourquoi ne fais-tu pas une requête de mise à jour ...
Lstr_Sql = "UPDATE Table1 INNER JOIN Table2 ON
Table1.ChampCle = Table2.Champ2 SET Table1.Champ1 = 'OK';"
DoCmd.RunSQL Lstr_Sql

Bye
Yann

-----Message d'origine-----
Bonjour à tous !

Depuis hier, j'ai un souci sur Access pour une
comparaison de 2 tables identiques. Je souhaite comparé
sur les 2 tables un champ unique disons "BL" : lorsque
que la valeur du champs "BL" de la table 1 = à la valeur
du champs "BL" de la table 2, alors on modifie la valeur
du champs "BL" de table 1 en mettant "OK".... et on
passe

à la comparaison suivante....

Voici le code que j'utilise :
Private Sub Commande0_Click()
Dim db As DAO.database
Dim rst1 As DAO.Recordset
Dim rst2 As DAO.Recordset

'Ouverture des tables table1 et table2
Set db = Application.CurrentDb
Set rst1 = db.openrecordset("Table1")
Set rst2 = db.openrecordset("Table2")


rst1.MoveFirst
rst2.MoveFirst
While rst2.EOF = False
If rst2("BL") = rst1("BL") Then
rst2.Edit
rst2("Nom") = "OK"
rst2.Update
End If
rst2.MoveNext
rst1.MoveNext
Wend

rst1.Close
rst2.Close
Set rst2 = Nothing
Set db = Nothing

MsgBox "Fichier traité"

End Sub

j'attends avec impatience votre aide....

Cordialement

Brian Lefebvre
.