öffentlich
Redaktion Druckversion

Duplikate erkennen

4
(1)
Beitrag bewerten
Ersten Kommentar schreiben
Stand: 10. November 2011

Duplikate zum Datensatz im gleichen Formular

Prüfung verbessern

Aber ein Duplikat wird erst erkannt, wenn Kontaktperson und Ort komplett eingegeben wurden. Ein übliches Fehlerpotential in Adressen ist jedoch die Eingabe abweichender Namen, also etwa "Bad Aachen" statt "Aachen" oder "Burtscheid" statt "Aachen-Burtscheid".

Daher ist es sinnvoll, auch schon nach Teilen des Inhalts während der Eingabe zu suchen. Nutzen Sie dazu den LIKE-Operator und verändern die Suchzeile mit Jokerzeichen wie folgt:

Private Sub SucheDuplikate(strKontaktperson As String, strOrt As String)
    Dim lngAnzahl As Long

    lngAnzahl = DCount("*", "Kunden", "[Kontaktperson] LIKE '*" & strKontaktperson & "*' AND [Ort] LIKE '*" & strOrt & "*'")

    If lngAnzahl = 0 Then
        Me.lblDuplikate.Visible = False
    Else
        With Me.lblDuplikate
            .Visible = True
            .Caption = lngAnzahl & " Duplikate"
        End With
    End If
End Sub

Dadurch werden bereits Teile des Inhalts verglichen, da die Joker-Sternchen davor und dahinter stehen. Beim Testen sehen Sie, dass sich die Anzahl der gefundenen Duplikate mit jedem eingegebenen Zeichen verändern kann:

Bild vergrößernEs gibt offenbar drei Mal "Maria" in Orten mit "B"

Was wird gezählt?

Wie Sie in der vorigen Abbildung sehen, gibt es angeblich drei Duplikate. Tatsächlich ist aber der Testdatensatz schon gespeichert worden und wird ebenfalls als Duplikat mitgezählt. Das müssen wir bei Gelegenheit berücksichtigen.

Sicherlich haben Sie beim Testen bemerkt, dass der Inhalt im geprüften Feld erst editiert werden muss, bevor die Prüfung aktiv wird. Außerdem stehen beim Datensatzwechsel noch die Ergebnisse der vorherigen Prüfung. Lassen Sie also auch im Form_Current-Ereignis (welches der Formular-Eigenschaft Beim Anzeigen entspricht) die Duplikate suchen:

Private Sub Form_Current()
    SucheDuplikate Me.Kontaktperson.Value & "", Me.Ort.Value & ""
End Sub

Der vollständige Code im Formular-Modul sieht nun so aus:

Bild vergrößernDer vollständige Code im Formular-Modul

Mitglied werden, Vorteile nutzen!

  • Sie können alles lesen und herunterladen: Beiträge, PDF-Dateien und Zusatzdateien (Checklisten, Vorlagen, Musterbriefe, Excel-Rechner u.v.a.m.)
  • Unsere Autoren beantworten Ihre Fragen

Downloads zu diesem Beitrag

Newsletter abonnieren