Datensatzvergleich mit VBA

Dickerle

Grünschnabel
Hallo
Ich bräuchte mal eure hilfe.
Ich soll 1 Tabelle auf doppelte Datensätze vergleichen. Es sollen aber nur die doppelten Datensätze gelöscht werden die im Primärschlüssen mit einer "0" anfangen.
das ganze soll mit VBA realisiert werden. Da ich aber noch nie mit VBA zutun hatte fehlt mir irgendwie der Anfang.
Danke für eure hilfe im vorraus
Dickerle
 
Hallo suye

In der DB ist folgender fehler aufgetretten:
Man hat zuerst die Datensätze mit einem PK eingegeben der bei 1 begann.
Dann kam einer auf die Idee dies nochmals zu tun, aber er hat den PK anfangen lassen mit 0001.
Ich soll nun ein VBA schreiben mit dem alle Datensätze, mit dem PK 000.., herausgefunden und gelöscht werden. sollten Beziehungen bestehen sollen diese gleich mit gelöscht werden.
Da ich aber von VBA keine Ahnung habe, weiß ich nicht wie ich anfangen soll, und ob es vielleicht schon vorgefertigte VBA Tools gibt die ich verwenden kann.
Gruß Dickerle
 
Da du von VBA sprichst, gehe ich mal davon aus, dass es sich um eine Access-Datenbank handelt.
Ich habe da mal was auf die schnelle gemacht:

Code:
Sub main()

    Dim cn As New ADODB.Connection
    Dim cmd As New ADODB.Command
    Dim rs As New ADODB.Recordset
        
    Set cn = Application.CurrentProject.Connection
        
    cmd.ActiveConnection = cn
    cmd.CommandText = "SELECT * FROM tbl_tabelle Where PK Like '" & "0" & "%" & "'"
        
    Set rs = cmd.Execute
        
    Do While Not rs.EOF
        delete (rs!PK)
        rs.MoveNext
    Loop

End Sub

Function delete(PK As String)
    Dim cn As New ADODB.Connection
    Dim cmd As New ADODB.Command
        
    Set cn = Application.CurrentProject.Connection
        
    cmd.ActiveConnection = cn
    cmd.CommandText = "DELETE * FROM tbl_tabelle Where PK Like '" & PK & "'"
        
    cmd.Execute
End Function

Fertige Datenbank mit Makro kannst du dir hier herunterladen: http://suye.org/db1.mdb

Du musst im Prinzip nur das Makro in deine DB exportieren und dann einige Änderungen wie Tabellennamen und Feldnamen ändern.

Gruß, Julian.
 
Zuletzt bearbeitet:
Zurück