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