PDA

Vollständige Version anzeigen : Bei der Eingabe prüfen ob ein ähnlicher Datensatz existiert


zaubereien
19.01.2008, 13:35
Hallo.

Damit ich meinen Adressstamm zukünftig sauber halten kann möchte
ich beim Eingeben prüfen ob ich die Adresse schon erfasst habe.


Bis jetzt würde ich das etwa so lösen:

Beim verlassen des Feldes prüfen ob ich schon drei Adressinformationen
erfasst habe. Habe ich schon drei Felder einen Filter setzen und schauen ob
ich Datensätze finde. wenn ja ein Farmular öffnen, welches die vorhandene
Adresse(n) anzeigt und nachfragen ob ich "diese/eine dieser" Adresse(n)
übernemen möchte, oder abbrechen.

Wenn ja übernemen.
Wenn abbrechen Feldeingaben nicht mehr Prüfen.

Giebt es da schlauere lösungen, und wie sieht so ein VBA code in etwa aus.

Danke schön! :lachen:

achtelpetit
19.01.2008, 13:51
Da hast Du Dir ja etwas Schwieriges ausgesucht.
Habe ich schon drei Felder
Ich vermute, Du meinst z.B. Name + Straße + Ort?
Genaue Übereinstimmung könnte man über eine Abfrage feststellen, also die 3 Eingaben in einen SQL-String einfügen und dann ablaufen lassen.
Dummerweise können gerade bei Eigennamen alle mögliche Fehler bei der Erfassung auftreten (Meyer, Mayer, Meier usw.).
Sicher zu erkennen sind Telefonnummern und E-Mail-Adressen, die sind unbedingt einmalig.
Wie gut und schnell und sicher soll die Sache denn sein? Und um welche Datenmengen geht es denn?

zaubereien
19.01.2008, 22:50
Ja etwa genau so: Name Vorname Ort ev Firma oder TelNu. eMail was ich vom Kontakt schon haben.

Zur Zeit sind da etwa 2'000 Adressen drin, tendenz wachsend.
Mehr wie 30'000 sollten es eigentlich nicht werden.

Mit VBA kenne ich mich in der zwischenzeit etwas aus aber SQL ist Neuland.

achtelpetit
20.01.2008, 13:09
Mit Sicherheit gibt es für das Problem der Duplikatsuche fix-und-fertige Lösungen, eine Quelle kenn' ich allerdings nicht.
Ganz gleich wie eine solche Lösung arbeitet,es kann immer nur darum gehen Ähnlichkeiten festzustellen und dann die Duplikat-Wahrscheinlichkeit zu bestimmen.
Du wirst, wenn Du keine fertige Lösung übernimmst, für jedes Feld überlegen müssen welche Art von (Fehl)Eingabe hier wahrscheinlich ist und dann mit entsprechenden Kontrollstukturen darauf reagieren.
Beispiel Telefonnummer: alle Nicht-Zahlen entfernen und dann vergleichen; bei Übereinstimmung muß es sich um eine Dublette handeln (internationale Vorwahl nicht vergessen!).
Bei Straßen- und Ortsnamen ist ein komplettes Verzeichnis der PLZ sehr wertvoll. Es dürfen dann nur Werte aus dem Verzeichnis eingetragen werden. Dadurch sind Abweichungen in der Rechtschreibung ausgeschlossen. Beispiel: Berthold-Brecht-Straße + Bertold Brecht Str. (beides falsch!).
Unsicher wird es bei Namen. Es gibt hier den Ansatz "Soundex" und andere ähnliche Verfahren. All' diese Mechanismen zerlegen den Namen in eine Folge von Ziffern und/oder Buchstaben um so gleichklingende Namen zu identifizieren (Mayer, Meier, Mayr usw.). Falls Du Dir über Vor- und Nachteile dieser Verfahren ein Bild machen willst, kann ich Dir die Magisterarbeit eines gewissen Martin Wilz empfehlen. Das Dokument ist als PDF verfügbar.
Solltest Du nicht der große Software-Bastler sein, dann bleiben noch Dienstleister, die für einen überschaubaren Betrag die Dublettenprüfung vornehmen.

zaubereien
20.01.2008, 19:57
Danke - bin kein Bastler und gross die Zeit dazu habe ich auch nicht.

Wer kennt eine solches Modul oder einen Hersteller?

Claypool
20.01.2008, 22:46
Hallo!

Schau dir mal den Thread (http://www.ms-office-forum.net/forum/showthread.php?t=87872) an. Vielleicht hilft der weiter.

Besonders im Post #2 ist ein Link der interessant sein könnte.

Grüße
Ingo

zaubereien
21.01.2008, 08:53
Hi Ingo

Werde das ausprobieren und dann ein feedback geben.