Mise a jour table access via autre table d une autre base

Signaler
Messages postés
66
Date d'inscription
mercredi 6 février 2008
Statut
Membre
Dernière intervention
27 novembre 2015
-
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
-
bonjour
j ai 2 bases de données access, compta et compta1 je voudrais faire la mise a jour du champ C2 de la table cpc de la base compta par les données du champ C1 de la table cpc1 de la base compta1

voila mon code :

Set dbasesté = DBEngine.Workspaces(0).OpenDatabase(chemin du premier base)
Set Rec1 = dbasesté.OpenRecordset("parst")
Set DBasestéEP = DBEngine.Workspaces(0).OpenDatabase(Rec1!exprecedent)
Set rec3 = dbasesté.OpenRecordset("select * from cpc order by code ")
Set Rec2 DBasestéEP.OpenRecordset("select code,c1,c2,zc1 from cpc1 where '" & rec3!code & "' cpc1.code and '" & rec3!ZC1 & "' = cpc1.zc1")

If rec3.RecordCount > 0 Then rec3.MoveFirst
While Not rec3.EOF
rec3.Edit
rec3!C2 = Rec2!C1

rec3.Update
rec3.MoveNext
Wend

le probleme c est qu'il fait coupier le chiffre de la 1er ligne du champ c1 de la table cpc1 sur tous les lignes de du champ c2 de la table cpc

merci de m'aider

3 réponses

Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Bonjour,

si tu veux mettre à jour cpc de la table compta par cpc1 de la table compta1, tu dois:
- parcourir la table source (cpc)
- rechercher (selon critère) dans la table destination (cpc1) la valeur du champ en commun (zc1) de cpc.
-si trouvé, alors tu pourras mettre à jour C2 de cpc1 par C1 de cpc.




[] Ce qui va sans dire. va mieux en le disant.
Messages postés
66
Date d'inscription
mercredi 6 février 2008
Statut
Membre
Dernière intervention
27 novembre 2015

que dois je changer dans mon code alors?
merci
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
décidement..!

Set dbaseste = DBEngine.Workspaces(0).OpenDatabase(chemin de  la premiere base)

Set DBasesteEP = DBEngine.Workspaces(0).OpenDatabase(chemin de  la deuxieme base)

Set rec3 = dbasesté.OpenRecordset("select * from cpc order by code;") 
Set rec2 = dbasesté.OpenRecordset("select * from cpc1 order by code;")

If rec3.BOF And rec3.EOF Then
  MsgBox "Table cpc vide"
  Exit Sub
End If

If rec2.BOF And rec2.EOF Then
  MsgBox "Table cpc1 vide"
  Exit Sub
End If

With rec3
  .MoveFirst 
   Do While Not .Eof
   rec2.MoveFirst  
   Do While Not rec2.Eof
   If (!code=rec2!code) And (!zc1=rec2!zc1) Then
      .Edit 
      !C2 = Rec2!C1 
      .Update
       Exit Do
   End If
    rec2.MoveNext
   Loop
   .MoveNext
   Loop
End With






[] Ce qui va sans dire. va mieux en le disant.