PLZ-Tabelle in zweite Tabelle einbinden

Hallo,

ich arbeite gerade an einer Datenbank für eine Kursverwaltung mit MS Access 2003. Hierin sollen die Teilnehmer-Daten (Name, Adresse, Geb.-Datum, Telefon, etc.) enthalten sein, sowie Daten zum besuchten Kurs (Leiter, Kursname, etc.). Das große Endziel soll sein, dass man abfragen kann, welcher Teilnehmer wann an welchen Kursen teilgenommen hat (und wer diese Kruse geleitet hat).
Mit dem Grundgerüst bin ich soweit recht gut vorangekommen, ich hänge aber noch an einer Stelle.
In der Tabelle Teilnehmer sind Felder für die Adressdaten hinterlegt. Die Felder PLZ und Wohnort möchte ich mit der Tabelle PLZ verknüpfen. testweise habe ich in die Tabelle PLZ schon Daten eingetragen. Dabei ist PLZ der Primärschlüssel der Tabelle PLZ.
Ich möchte erreichen, dass bei Eingabe der Personendaten nach Eingabe der PLZ in der Tabelle Teilnehmer das Feld Wohnort automatisch gefüllt wird. Außerdem soll es möglich sein nicht vorhandene Daten der Tabelle PLZ durch Eingabe in der Tabelle Teilnehmer zu ergänzen.
Wie kann ich das einrichten?
Ich erinnere mich dunkel, dass ich das so oder so ähnlich mal während meiner Ausbildung gemacht habe, aber das ist schon so lange her… aber so schwer kann das doch eigentlich nicht sein, oder?

Bin für jeden Tipp dankbar…

Viele Grüße
Sabine

Hallo Sabine,

Ich möchte erreichen, dass bei Eingabe der Personendaten nach
Eingabe der PLZ in der Tabelle Teilnehmer das Feld Wohnort
automatisch gefüllt wird.

wandele das PLZ-Feld in ein Kombinationsfeld um. Als Datenbasis nimmst du dann deine PLZ-Tabelle. Wähle beide Felder der PLZ-Tabelle, also PLZ und Ort.

Beim Verlassen der PLZ, schreibst du den Ort Me.Ort = Me.PLZ.column(1) in das Feld.

Sollte der Ort nicht vorhanden sein, fügst du die Daten von PLZ und Ort in deine Tabelle PLZ per SQL-Befehl hinzu.
Dazu sollte eingestellt werden: >Nur Listeneinträgebei nicht in Liste

Hallo Wolfgang,

vielen Dank für deine Antwort.

wandele das PLZ-Feld in ein Kombinationsfeld um.

Erledigt.

Als
Datenbasis nimmst du dann deine PLZ-Tabelle. Wähle beide
Felder der PLZ-Tabelle, also PLZ und Ort.

Auch erledigt.

Beim Verlassen der PLZ, schreibst du den Ort Me.Ort =
Me.PLZ.column(1) in das Feld.

Könntest du mir das kurz näher erklären? Wie mache ich das?

Sollte der Ort nicht vorhanden sein, fügst du die Daten von
PLZ und Ort in deine Tabelle PLZ per SQL-Befehl hinzu.

Kannst du mir den Befehl oder eine Beispielsyntax nennen?

Dazu sollte eingestellt werden: >Nur Listeneinträgebei nicht in Liste

Hallo Sabine,

Beim Verlassen der PLZ, schreibst du den Ort Me.Ort =
Me.PLZ.column(1) in das Feld.

Das geht so:

  • Rechtsklick auf das Feld PLZ.

  • [Eigenschaften] wählen

  • Reiter = [Ereignisse]

  • Zeile: Beim Fokusverlust: [Ereignisprozedur]

  • am Ende auf die drei Punkte […] klicken

  • dann bist du im VBA - Editor

  • dort einfach eintragen:

  • Me.Ort = Me.PLZ.column(1)

  • den VBA-Editor wieder schließen

  • dein Formular speichern

Sollte der Ort nicht vorhanden sein, fügst du die Daten von
PLZ und Ort in deine Tabelle PLZ per SQL-Befehl hinzu.

Kannst du mir den Befehl oder eine Beispielsyntax nennen?

Beim Feld-Ort…

  • Ereignis: Bei nicht in Liste: [Ereignisprozedur] […]
  • im VBA-Editor eingeben:

Private Sub xxxx_NotInList(NewData As String, Response As Integer)
NIL NewData, Response
End Sub

  • dann bastelst du dir eine kleine Anfüge-SQL:

Public Function NIL(NewData, Response)
Dim SQL As String

SQL = „INSERT INTO PLZ_TABELLE ( PLZ, ORT ) SELECT '“ & NewData & „’ AS Ausdr1, '“ & Me.Ort & „’ AS Ausdr2, *;“
DoCmd.RunSQL SQL
Response = acDataErrAdded
End Function

diese NIL - Funktion etwas angepasst, kannst du nutzen, um später z.B. selbstlernende Kombifelder zu erstellen.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo,

Vorschlag von meiner Seite: spar dir das ganze gehampel mit der eigenen PLZ-Tabelle und besorge dir eine komplette Taballe aller deutschen PLZs (ca, 41.000 incl. Postfaecher und Grosszustellungen), Orte und Telefonvorwahlen. Diese kannst du dann als Datenbasis in deine Kombifelder hinterlegen. das hat den Vorteil, es werden nur Auswahlen getroffen und die Schreibweise der Orte ist immer korrekt, und es werden Fehleingaben vermieden.

ewt. findest du PLZ-Verzeichnisse im Netz oder wende dich an dein zustaendiges Statistisches Landesamt, dort gibts die Daten fuer eine geringe Bearbeitungsbebuehr.

Tschau
Peter

Hallo Peter,

bevor Du oder ein anderer das Statistisches Landesamt belästigst (es wäre eher die Post) seht Euch lieber das Projekt OpenGeoDB an, dort gibt es die Informationen sogar kostenlos.

MfG Georg V.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]