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 : 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
 
 
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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