ich habe in meinem Formular ein Kombifeld (Name) und mehrere Textfelder. Wird ein Name mittels Kombifeld ausgewählt, sollen
gleichzeitig zwei Textfelder (Beruf und Wohnort) automatisch ausgefüllt werden. Der Beruf und Wohnort stehen aber in einer anderen Tabelle (Personendaten).
Ich habe jetzt bei meinem Kombifeld das Ereignis After_Update ausgewählt und kann die zwei Textfelder schon mal mit sinnlosen Daten befüllen.
Leider gelingt mir das Auslesen der Daten zu dieser bestimmten Person aus der anderen Tabelle nicht
Ansatz:
Ich habe die ID der Person und müßte die jetzt mit der ID aus der anderen Tabelle überprüfen und dann den gewünschten Datensatz z.B. Beruf übernehmen…
ich habe in meinem Formular ein Kombifeld (Name) und mehrere
Textfelder. Wird ein Name mittels Kombifeld ausgewählt, sollen
gleichzeitig zwei Textfelder (Beruf und Wohnort) automatisch
ausgefüllt werden. Der Beruf und Wohnort stehen aber in einer
anderen Tabelle (Personendaten).
also ein 1:1 Beziehung, wie schon weiter unten diskutiert: ein ganz schlechtes Datenbankdesign. Ok, wird bestimmt seine Gründe haben
Ich habe jetzt bei meinem Kombifeld das Ereignis After_Update
ausgewählt und kann die zwei Textfelder schon mal mit
sinnlosen Daten befüllen.
das ist doch schon mal gut
Leider gelingt mir das Auslesen der Daten zu dieser bestimmten
Person aus der anderen Tabelle nicht
hmmm, wolln ma sehen
Ansatz:
Ich habe die ID der Person und müßte die jetzt mit der ID aus
der anderen Tabelle überprüfen und dann den gewünschten
Datensatz z.B. Beruf übernehmen…
Wie kann ich das realiseren???
öffne eine neue/leere Abfrage
füge als erste Tabelle die mit dem Namen hinzu
füge als zweite Tabelle die mit den Personendaten hinzu
per drag&drop erzeugst du nun eine Beziehung zwischen diesen Tabellen über das ID-Feld
Wichtig: von NAME zu PersDaten und nicht umgekehrt!!
in die Spalten fügst du ein:
Spalte: ID
Spalte: Name (btw: das Wort NAME ist ein geschützter Begriff)= umbenennen
Spalte: Beruf
Spalte: Wohnort
Sortierung: Name
Speichere deine Abfrage nun z.B. unter der Bezeichnung: BASIS_für_Suchfeld_Name
Nun öffne dein Formular im Bearbeitungsmodus.
öffne die Eigenschaften deines Kombifeldes
trage unter Datensatzherkunft die neu erstellte Abfrage ein
Spaltenanzahl=4
Spaltenbreiten: 0cm;3cm;0cm;0cm (= nur der Name wird angezeigt)
Nun kannst du deinen Namen über das Kombifeld auswählen und hast die anderen Daten direkt parat:
Me.Suchname.Column(0) = ID
Me.Suchname.Column(1) = Name
Me.Suchname.Column(2) = Beruf
Me.Suchname.Column(3) = Wohnort
fertig
btw: eigentlich benötigst du nun gar keine zusätzliche Textfelder mehr, oder?
zweite, langsame Möglichkeit: nutze die Dlookup Funktion.
danke für die ausführliche Beschreibung und das du dir die Zeit genommen hast! Es hat auf Anhieb funktioniert und dank deiner Anleitung konnte ich gleich noch ein paar Probleme lösen
Schönen Sonntag wünsch i Dir,
Grüße, Thomas
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]