Wissen, wie man den aktuellen Datensatz mit einem vorherigen Datensatz in Microsoft Office Access vergleichen kann Ihnen dabei helfen, sich wiederholende Daten . Access ist ein relationales Datenbank- Management-System häufig verwendet, um lokale Datenbanken zu entwerfen. Eine Abfrage wird verwendet, um Daten aus Datenbanktabellen abzurufen. Visual Basic für Applikationen ( VBA) ist eine Programmiersprache verwendet, um Routineaufgaben in Access automatisieren. In wenigen Schritten können Sie VBA eine Schleife schreiben durch die Ergebnisse einer Abfrage . Anleitung
1
Öffnen Sie die Nordwind Microsoft Office Access-Datenbank. Die Nordwind-Datenbank wird der Microsoft Office-Suite enthalten. Wählen Sie das Menü "Einfügen" und klicken
2
Geben Sie den folgenden Variablen zu deklarieren , um Ihre "Module . ":
Dim rst als Recordset Dim dbs
As Database
Dim queryStr As String Dim
qryPrev As String Dim
qryCurrent As String Dim
rstCnt As Integer
Set dbs = CurrentDb
3
Geben Sie den folgenden , um die "Lieferanten" Tabelle abzufragen :
queryStr = "SELECT Suppliers.Company "
queryStr = queryStr & " Lieferanten [ Nachname ] , "
queryStr = queryStr & " Lieferanten [ Vorname ] "
queryStr = queryStr & " FROM Lieferanten ; . . "
4
Geben Sie den folgenden ein neues Recordset öffnen:
Set rst = dbs.OpenRecordset ( queryStr )
rst.MoveLast
rst.MoveFirst
5
Geben Sie den folgenden in einer Schleife durch die Datensätze in den Recordset und vergleichen Sie den aktuellen Datensatz mit dem bisherigen Rekord :
rstCnt = 0 To rst.RecordCount - 1 of
qryPrev = rst . Fields ( " Gesellschaft"). Wert
qryPrev = qryPrev & rst.Fields ( " [ Nachname ]"). Wert
qryPrev = qryPrev & rst.Fields ( " [ Vorname ] "). Wert
Wenn rstCnt <> rst.RecordCount - 1. Dann
rst.MoveNext
qryCurrent = rst.Fields ( " . Company " ) Wert
qryCurrent = qryCurrent & rst.Fields ( " [ Nachname ]"). Wert
qryCurrent = qryCurrent & rst.Fields ( " [ Vorname ]"). Wert
< p > Wenn qryPrev = qryCurrent Dann
Debug.Print " Vorheriger Datensatz ist identisch mit aktuellen Datensatz. "
Debug.Print qryPrev
Debug.Print qryCurrent
< p > End If Else
Debug.Print " Finished Vergleich alle Rekorde. "
End If Next
rstCnt
6 < p> Geben Sie den folgenden Variablen aus dem Speicher löschen: .
rst.Close
dbs.Close
Presse "F5 ", um die Unterroutine ausführen