Explication code faq fusionner 2 tables
Bonjour,
J'utilise le code donné par la FAQ "comment fusionner 2 tables en ne gardant pas les enregistrements de la table 2 identiques à ceux de la table 1"
Code:
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
|
Sub Insertion(oRst1 As DAO.Recordset, orst2 As DAO.Recordset)
On Error GoTo err
Dim Fld As DAO.Field
orst2.AddNew
For Each Fld In oRst1.Fields
If (Fld.Attributes And dbAutoIncrField) = 0 Then
orst2.Fields(Fld.Name).Value = Fld.Value
End If
Next Fld
orst2.Update
err:
End Sub
Sub copier()
Dim NomTable1 As String, NomTable2 As String
Dim oRst1 As DAO.Recordset, orst2 As DAO.Recordset
Dim odb As DAO.Database
Dim Message As String
Set odb = currentdb
NomTable1 = "TblClient"
NomTable2 = "TblClientSansDoublons"
Set oRst1 = odb.OpenRecordset(NomTable1)
Set orst2 = odb.OpenRecordset(NomTable2)
While Not oRst1.EOF
Insertion oRst1, orst2
oRst1.MoveNext
Wend
If Not orst2.EOF Then orst2.MoveLast
Message = "Opération terminée" & vbCrLf & vbCrLf & _
"La table source comportait : " & oRst1.RecordCount & " enregistrement(s)," & vbCrLf & _
"la table de destination en comporte " & orst2.RecordCount
MsgBox Message, vbInformation, "MAJ terminée"
End Sub |
cela fonctionne très bien pour 2 de mes tables mais pas pour 2 autres. Je pense que cela vient de la comparaison des clés primaires ??
Est-ce que qq'un pourrait m'expliquer ce que ce code fait notamment cette partie
Code:
1 2
| " If (Fld.Attributes And dbAutoIncrField) = 0 Then
orst2.Fields(Fld.Name).Value = Fld.Value" |
Dans le cas ou cela ne fct pas il n'inclut pas dans la nouvelle table les enregistrements différents
Merci