Geschafft!

Hinweis

Fehler

Session expiration Your session is going to expireClick here to extend

Budget:

Kleines Projekt <800

Geposted am

2013-05-18 16:58:25.0

Kunde

SSU***

Dieses Projekt wurde beendet

Schreiben Sie ein ähnliches Projekt aus und erhalten Sie Angebote von Freelancern. Unverbindlich. Kostenlos. Schnell.

Jetzt ähnliches Projekt einstellen

Beschreibung:

Der angefügte Auszug einer Datenbank soll durch VBA-Code mit dem Ziel erweitert werden, Duplikate bei der Erfassung neuer Personendaten zu vermeiden und bei Eingabe von Daten, die mit bereits abgespeicherten Daten übereinstimmen, schrittweise mögliche Übereinstimmungen zwischen Neu- und Altdaten darzustellen.

Bereits realisiert ist:

Durch Klick auf den linken Button wird ein neuer Datensatz angelegt, indem in Wechselwirkung mit dem in forms![_sys]!MaxPNr der nächsthöhere Primärschlüssel der Tabelle Personen aus einer ganzen Zahl vor dem Punkt (Zähler) und einer weiteren, 6stelligen Zahl nach dem Punkt (Owner-Nummer) als String erzeugt wird. Das String-Datenformat hat sich als praktisch erwiesen und sollte beibehalten werden. Nach Abschluss aller Entwicklungsarbeiten ist der Primärschlüssel im Formular Personen nicht mehr sichtbar geschaltet.

Das Kombifeld des Formulars Personen erlaubt das Ansteuern eines bereits vorhandenen Datensatzes. Mit Doppelklick auf das Kombifeld öffnet das Formular PersonenÜbersicht. Klick auf eine Datenzeile des Formulars PersonenÜbersicht führt auf den entsprechenden Datensatz im Formular Personen. Bei Klick auf Nachnamen oder Vornamen im Formular PersonenÜbersicht bleibt dieses geöffnet, bei den übrigen Feldern schließt es automatisch. Die Buttons im Formularkopf sortieren nach dem zugeordneten Feldinhalt. Die beiden übrigen Steuerelemente im Formularkopf sind hier bedeutungslos.

Die zugehörigen Codezeilen aller Module und Klassenobjekte stehen grundsätzlich zur Disposition. Bei Austausch von Befehlen sollte allerdings die alte Zeile kommentiert werden und die neuen Zeilen farblich hervorgehoben werden. Hierbei ist auf Kompatibilität mit der Gesamtdatenbank zu achten.

Neu zu realisieren ist:

Der User gibt durch Klick auf den linken Button an, dass er neue Daten einzugeben oder Daten zu suchen beabsichtigt. Wie bisher wird ein neuer Datensatz angelegt, aber noch nicht abgespeichert. Wiederum öffnet sich das Formular PersonenÜbersicht und zeigt alle Datensätze der Tabelle Personen an, wie sie in der zugehörigen Abfrage aPersonenÜbersicht ausgewählt werden. Diese Abfrage wird sollte nicht angetastet werden, sie wird später mit Filtern ausgestattet.

In jedes Steuerelement des Formulars können jetzt Zeichen eingegeben werden. Nach jedem Tastendruck wird auf Übereinstimmungen mit bereits vorhandenen Datensätzen überprüft und die übereinstimmenden Datensätze im Formular PersonenÜbersicht dargestellt. Je weiter die Eingabe, Tastendruck für Tastendruck, in Personen fortschreitet, desto weiter wird die Menge der in PersonenÜbersicht angezeigten Datensätze eingeschränkt. Ist sie leer, ist davon auszugehen, dass es sich um einen neuen, also noch nicht vorhandenen Datensatz handelt, der nach Abschluss der Dateneingabe (<tab>, s.u.) in die Tabelle Personen zu übernehmen ist.

Die Steuerelemente in Personen sind bei dieser Art der Filterung „und“-verknüpft, und es sind die Wildcards <!>, <?> und <*> in beliebiger Anzahl erlaubt, wobei ein ganz rechts stehendes * entfallen kann. Dabei bewirkt das <!> zusammen mit dem rechts daneben stehenden Zeichen die Negation seines Auftretens an der entsprechenden Stelle, <?> steht als Joker für einen beliebigen Buchstaben an dieser Stelle und <*> für eine Buchstabenkette mit beliebigen Buchstaben und von beliebiger Länge an der Position des <*>. Groß- und Kleinschreibung können unberücksichtigt bleiben.

Eine Sonderrolle spielen die Tastendrucke <return> = nächstes Steuerelement, <tab> = Eingabe der Daten dieses Datensatzes fertig, <esc> = rückgängig. Sobald das letzte Steuerelement mit <return> abgeschlossen ist und der nächste Datensatz einzugeben wäre, wird die <tab>-Routine angesteuert. Anzumerken ist, dass in der angefügten Datenbank zwar das Feld eMail das letzte der Reihenfolge ist, dass in der Gesamt-Datenbank jedoch noch weitere Felder folgen, die hier nicht angegeben sind.

Wird nach Abschluss aller Eingaben des neuen Datensatzes mindestens eine Alternative im Formular PersonenÜbersicht angeboten, wird nachgefragt, ob ein neuer Datensatz angelegt werden soll (J/N).

Bei Nein muss der User einen Datensatz aus dem Formular PersonenÜbersicht anklicken, wenn mehrere Alternativen vorliegen. Liegt nur eine Alternative vor, wird diese in Personen angezeigt. Die bisherigen Eingaben in Personen werden verworfen und der vorhandene Datensatz kann editiert werden.

Bei Ja werden die Neuangaben als neuer Datensatz mit der berechneten PNr abgespeichert. Zur Unterscheidung inhaltlich übereinstimmender Namens- und Adress-Angaben wird allerdings der neu angelegte Datensatz mit einer geklammerten, fortlaufenden Zahl gleicher Datensätze hinter dem Nachnamen versehen. (z. B. Müller (1), Müller (2), …)

Klick auf den rechten Button löscht den Datensatz und zeigt dies entsprechend in beiden Formularen an.

Die Integration des von Ihnen erzeugten Codes in die vorhandene Gesamt-Datenbank erfolgt hier intern.

Über Ihr Angebot, Ihre Ideen und Vorschläge würde ich mich freuen.