Guten Tag Allerseits,
ich habe folgenden Auftrag. Ich beschreibe anhands von einem Beispiels, damit ich genau zum Ausdruck bringen kann, was der Auftrag ist. Bitte erst alle Missverständnisse klären -auch telefonisch möglich- bevor Sie ein Gebot abgeben. Dieses Code wird dann später in einer Accessanwendung eingesetzt. Die kompletten Rechte(Geistiges Eigentum) gehen mit Erledigung und endgültiger Abnahme dem Auftragsgeber rüber.
Dieser VB-Code muss also sehr leicht modifizierbar und in anderen Tools integrierbar sein.
Tabellen:
T_Adr
adrNr (PS-Autowert)
Anrede
Vorname
Nachname
Str
HNr
PLZ
Ort
GebDat
...
2. T_Registrierung
regID(Autowert, Primärschlüssel)
adrNr
Datum
Rufnr
AnredeMan
VornameMan
NachnameMan
StrMan
HNrMan
PLZMan
OrtMan
GebDatMan
...
Abfragen
1. AB_Adr
adrNr
Anrede
Vorname
Nachname
Str
HNr
PLZ
Ort
GebDat
NameKompl:[Vorname]&" "&[Nachname]&" "&[GebDat]
2. AB_Registrierung
Datenherkunft:T_Registrierung und AB_Adr, wobei die beiden Tabellen mit dem Feld adrNr verknüpft (1:n)werden.
Die Felder im Einzelnen:
regID
Datum
Rufnummer
T_Registrierung.adrNr
AB_Adr.adrNr
AB_Adr.NameKompl
AB_Adr.Anrede
AB_Adr.Vorname
AB_Adr.Nachname
AB_Adr.Str
AB_Adr.HNr
AB_Adr.PLZ
AB_Adr.Ort
AB_Adr.GebDat
AnredeMan
VornameMan
NachnameMan
StrMan
HNrMan
PLZMan
OrtMan
GebDatMan
NameKomplMan:[VornameMan]&" "&[NachnameMan]&" "&[GebDatMan]
Formulare
1.FM_Adr
Datenherkunft:AB_adr
bestehend aus folgenden Felder:
adrNr
Anrede
Vorname
Nachname
Str
HNr
PLZ
Ort
GebDat
2. FM_Registrierung
Datenherkunft:AB_Registrierung
Die Felder im Einzelnen mit Angabe der Datenherkunftsquelle:
regID
Datum
Rufnummer
AdrNr als ComboBox:T_Registrierung.adrNr, AB_Adr.NameKompl
nameKompl:AB_Adr.NameKompl
Anrede:AB_Adr.Anrede
Vorname:AB_Adr.Vorname
Nachname:AB_Adr.Nachname
Str:AB_Adr.Str
HNr:AB_Adr.HNr
PLZ:AB_Adr.PLZ
Ort:AB_Adr.Ort
GebDat:AB_Adr.GebDat
AnredeMan:AnredeMan
VornameMan:VornameMan
NachnameMan:NachnameMan
StrMan:StrMan
HNrMan:HNrMan
PLZManLZMan
OrtManrtMan
GebDatMan:GebDatMan
NameKomplMan:NameKomplMan
Jetzt zum konkretem Auftrag:
Bei Neueinträgen in dem FM_Registrierungsformular
kann ich einen Namen(DS) direkt aus der ComboBox AdrNr auswählen oder eine Adressennummer direkt eingeben. Die restlichen Felder füllt Access ja dann automatisch. Sollte der Datensatz nicht vorhanden sein, so klicke ich doppelt auf dem Feld AdrNr mit Hilfe einer Prozedur
Private Sub AdrNr_DblClick(Cancel As Integer)
On Error GoTo Err_AdrNr_DblClick
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "FM_ADR"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_AdrNr_DblClick:
Exit Sub
Err_AdrNr_DblClick:
MsgBox Err.Description
Resume Exit_AdrNr_DblClick
End Sub
öffnet sich dann d. Formular FM_Adr automatisch.
Da trage ich den neuen Datensatz und kehre wieder zum FM_Registrierungsformular zurück. Dann gehe ich zum Menüfenster -oben, Datensätze und klicke dann auf aktualisieren, wonach ich erst letztendlich den neuen Datensatz in der Combobox zum Auswählen wieder finden kann.
Jetzt würde ich gerne ein Tool haben, der diesen Vorgang vereinfacht. Ich will den neuen Datensatz in den Feldern:
VornameMan
NachnameMan
GebDatMan
erstmals eingeben. Beim Verlassen des Feldes GebDatMan sollte dann im Hintergrund der NameKomplMan mit dem NameKompl verglichen werden. Sollten diese gleich sein, so soll Access automatisch die AdrNr im Feld cmbAdrNr eintragen und speichern. Es muss auch eine Meldung kommen, die in etwa besagt: "Datensatz bereits vorhanden". Dabei sollen dann die weiteren Felder
StrMan:StrMan
HNrMan:HNrMan
PLZMan: PLZMan
OrtMan: OrtMan
übersprungen werden und der Tabulator in einem neuen Datensatz direkt zum Feld.Datum springen.
Wenn die beiden Felder doch nicht identisch sind, dann sollte Access beim Verlassen des GebDatMan-Feldes, die Meldung "Mit dem Anlegen des neuen Datensatzes fortfahren bitte!" geben und die Eingabe der weiteren Werte in den Feldern:
StrMan:StrMan
HNrMan:HNrMan
PLZMan: PLZMan
OrtMan: OrtMan
erlauben.
Nach Verlassen des Feldes OrtMan müssen dann die neu angegebene Daten in der Tabelle T_Adr aktualisiert und abgespeichert werden. Danach soll die neue ID also die adrNr kopiert und in der Feld AdrNr eingefügt werden.
Vielleicht ist es auch möglich ohne die Anlage der Felder in der Tabelle T_Registrierung
(AnredeMan, VornameMan, NachnameMan, StrMan, HNrMan, PLZMan, OrtMan, GebDatMan) ein Vergleich der Datensätze anhand der Felder Vorname, Nachname, GebDat möglich.
Auch andere Lösungen, die den Zweck erfüllen können sind willkommen.
Schöne Grüße aus Kölle
Archiv für EDV, Telekommunikation