Duplikate erkennen

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

Duplikate zum Datensatz im gleichen Formular

Verbesserte Anzeige

Ohne Benutzereingriff kann nun jederzeit angezeigt werden, ob es überhaupt Duplikate gibt. Das lässt sich aber noch verbessern, nämlich durch eine benutzerfreundliche Anzeige der Duplikate.

Programmiertechnisch der geringste Aufwand ist eine Schaltfläche wie im folgenden Bild, die entsprechend mit ein- oder ausgeblendet wird und ein identisches, aber vorher kopiertes Formular nur der gefilterten Duplikate anzeigt.

Bild vergrößernEine neue Schaltfläche ermöglicht den Aufruf des anderen Formulars

Um die Suchkriterien nicht zweimal ermitteln zu müssen, werden diese dazu in einer öffentlichen Variablen gespeichert. Der komplette Code des vorhandenen Formular-Moduls ändert sich so:

Option Compare Database
Option Explicit

Dim m_strSuchkriterien As String

Private Sub btnDuplikate_Click()
    DoCmd.OpenForm "frmKundenKopie", , , m_strSuchkriterien
End Sub

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

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

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

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

    m_strSuchkriterien = "[Kontaktperson] LIKE '*" & strKontaktperson & "*' AND [Ort] LIKE '*" & strOrt & "*'"

    lngAnzahl = DCount("*", "Kunden", m_strSuchkriterien)
    If lngAnzahl = 0 Then
        Me.lblDuplikate.Visible = False
    Else
        With Me.lblDuplikate
            .Visible = True
            .Caption = lngAnzahl & " Duplikate"
        End With
    End If
End Sub

Anschließend kopieren Sie das bisherige Formular frmKunden einfach als frmKundenKopie und entfernen dort den gesamten VBA-Code. Außerdem löschen Sie dort lblDuplikate und btnDuplikate im Entwurf.

VBA-Code entfernen

Am saubersten entfernen Sie in Formularen den VBA-Code nicht einfach durch Löschen im VBA-Editor, denn dann bleibt ein leeres Formular-Modul übrig. Wechseln Sie in die Entwurfsansicht des Formulars und suchen ziemlich am Ende der Formular(!)-Eigenschaften diejenige namens Enthält Modul und stellen sie auf Nein.

Nun können Sie tatsächlich vom originalen frmKunden-Formular im Falle von Duplikaten das zweite frmKundenKopie-Formular aufrufen (Sie müssen die Kopie verschieben, um das erste Formular wieder zu sehen!):

Bild vergrößernDas Original und die Kopie mit den Duplikaten zum Datensatz funktionieren

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