Quantcast
Channel: Microsoft Access Forum
Viewing all articles
Browse latest Browse all 880

Duplikate finden und löschen

$
0
0

Hallo Freunde der VBA Wahrheiten. Also bin hier ja nur Autodidakt mit Vorkenntnissen, aber ich finde VBA ist wirklich zum abgewöhnen. Dennoch, bin ja über die Jahre weitergekommen, meine Lern DB funktioniert ja. Don Karl und andere hatten mir ja weitergeholfen. Meine letzte "Verbesserung"  soll nun doppelte Einträge überprüfen

Der Code läuft ja und findet auch doppelte Einträge die ich dann löschen kann. Allerdings stimmt der letzte Datensatz nicht. Zeigt immer die vorletzte DS Nummer an. Was mich stört ist zum Testen auf eine  Zeile goto Record bekomme ich einen Laufzeit Fehler,2499  wenn ich in der Zeile einen halt gesetzt habe. Also richtig Testen kann man so nicht. Wenn mir ein freundlicher Mensch,  zu dem Code einen guten Tipp geben möchte, Verbesserungen und Ratschlägewerden werden gerne angenomen. Hier dann der Code..

Fername "Satz" ist der Record

"Finnisch" der Name des Feldes den ich überprüfen möchte

Private Sub Finnisch_DblClick(Cancel As Integer)

'Suchen nach dopelter Eingabe

Dim V1 As String        'Suchargument Nach Duplikat
Dim S As Integer        'Satz Nummer
Dim V2 As String        'Neuer Vergleich
    Dim db As Database   ' Codierung für den Loop Current DB
    Dim rs As Recordset  ' Codierung für den  Loop  TB1
    Dim f As Field       ' Feldname
    
    Set db = CurrentDb                  ' oder DatenPfad der DB
    Set rs = db.OpenRecordset("TB1")    ' F1 ist Name der Tabelle

V1 = Finnisch           'Suchargument im Feld
 
   Do While rs.EOF = False             'loop bis EOF
   Set f = rs![Satz]                   ' Satz Nummer
 
Schleife:
         S = Satz               'current Zeilen Nummer
  

  DoCmd.GoToRecord , , acNext     'nächste Zeile
   
   'MsgBox Zeile & f & "Satz Nummer"
       
       V2 = Finnisch           'V2 neuer Vergleich
 
     If V1 = V2 Then GoTo Ende        ' wenn gleich dann goto Ende
    If V1 <> V2 Then GoTo Schleife        ' wenn ungleich dann Schleife
 
  GoTo Schleife                                       ' Schleife bis gefunden
 
             rs.MoveNext
     Loop                    ' do while EOF
            rs.Close
        
Ende:  DoCmd.GoToRecord , , acNext     'nächste Zeile
 
MsgBox ("Vergleich") & V1 & " und " & V2 & " DSatz " & S & " und " & " DSatz " & f
End Sub


Viewing all articles
Browse latest Browse all 880


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>