Hallo Calex,
anbei die Lösung.
Vorgehensweise wie folgt.
1. Im Formular Dateidialog zu Auswahl der DB aufrufen.
2. Button \"Tabellen vergleichen\" klicken
3. Fertig
Hinweis:
Im Beispiel heißt die Tabelle \"Tabelle1\"
Genauso muss die Tabelle auch in der anderen DB benannt sein.
Ansonten musst Du den Code anpassen.
Private Sub cmd_ReadTable_Click()
Dim wsp As DAO.Workspace
Dim dbIn As DAO.Database, dbOut As DAO.Database
Dim rstIn As DAO.Recordset, rstOut As DAO.Recordset
Dim sSQL As String
Dim sMD5In As String
sSQL = \"SELECT Tabelle1.datum, Tabelle1.zeit1, Tabelle1.zeit2, \" & _
\"Tabelle1.bemerkung, FnsCalculateMD5([datum] & [zeit1] & [zeit2] & [bemerkung]) \" & _
\"AS MD5 FROM Tabelle1;\"
Set wsp = DBEngine.Workspaces(0)
Set dbOut = CurrentDb
Set rstOut = dbOut.OpenRecordset(sSQL)
Set dbIn = wsp.OpenDatabase(sDBPath)
Set rstIn = dbIn.OpenRecordset(sSQL)
Do While Not rstIn.EOF
sMD5In = rstIn!MD5
rstOut.FindFirst \"MD5 = '\" & sMD5In & \"'\"
If rstOut.NoMatch Then
rstOut.AddNew
rstOut!Datum = rstIn!Datum
rstOut!zeit1 = rstIn!zeit1
rstOut!zeit2 = rstIn!zeit2
rstOut!bemerkung = rstIn!bemerkung
rstOut.Update
End If
rstIn.MoveNext
Loop
rstIn.Close: Set rstIn = Nothing
rstOut.Close: Set rstOut = Nothing
dbIn.Close: Set dbIn = Nothing
dbOut.Close: Set dbOut = Nothing
wsp.Close: Set wsp = Nothing
End Sub
Wenn Du den Dateidialog nicht verwenden willst kannst Du auch den Pfad der
anderen DB fest übergeben.
z.B.:
Set dbIn = wsp.OpenDatabase(\"C:\DeinOrdner\DeineDb.mdb\"«»)