MS Access: Daten vergleichen und Zellen löschen

Eine Anfrage kam, in dem eine Access-Datenbank durchsucht werden sollte und bei zwei Spalten Personennummern eingetragen sind. Wenn die Spalten identisch sind, dann sollen in drei anderen Spalten die Werte gelöscht werden. Wie lässt sich das mit Access-Mitteln bewältigen.

Dafür gibt es verschiedene Möglichkeiten. Ich habe dafür einen Makro vorgeschlagen, der auf diese oder ähnliche Anforderungen anpassbar ist.

Sub Compare12()

Dim db As DAO.Recordset
Set db = CurrentDb.OpenRecordset("SELECT * FROM Tabelle1")

If Not (db.EOF And db.BOF) Then
    db.MoveFirst

    Do Until db.EOF   
    If (db!Feld1 = db!Feld2) Then
        db.Edit
        db!Feld3 = Null
        db!Feld4 = Null
        db!Feld5 = Null
        db.Update
        End If        
    db.MoveNext
    Loop
Else
    MsgBox ("Empty recordset")
End If

MsgBox ("Finished")
db.Close
End Sub

Dieser Makro führt eine Abfrage auf die Tabelle1 aus, die aus allen Datensätzen besteht (hier lässt sich eine Bedingung einbauen, falls erforderlich) und geht dann durch alle Datensätze des Ergebnisses um Feld1 und Feld2 zu vergleichen. Wenn die Inhalte identisch sind, werden die Felder Feld3, Feld4 und Feld5 gelöscht.

Ein Ergebnis sieht dann so aus wie in diesem Bild:
2016-11-08-13_05_17-access-database1-_-datenbank-c__users_marcus_documents_database1-accdb-acces

Die Datenbank- und Feldnamen lassen sich entsprechend anpassen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.