PLZ und Wohnort verknüpfen....?

hallo zusammen

möchte gerne in einen formular die PLZ mit dem Wohnort irgendwie verküpfen. ich habe eine tabelle mit allen PLZ und Wohnort generiert und möchte dass, wenn ein user einen neuen datensatz erfasst nur noch die PLZ eingeben muss und der Ort erscheint gemäss PLZ die eingegeben worden ist. ich bin aus der schweiz und hab mir die daten aus einer access seite heruntergeladen. meine beweggründe dafür sind eine einheitliche erfassung der verschiedene wohnorte. für eure hilfe danke ich schon im voraus und verbleibe

mit freundlichen grüssen

daniele

…zuerst mußt Du in Deiner Stammdaten-Tabelle ein Feld für die PLZ hinzfügen (als Referenz), dann in Deinem Form eine ComboBox hinzufügen und Dich vom Assitenten durchführen lassen.

Im Hintergrund wird dann jedesmal, wenn Du einen Datensatz auswählst über den Referenzwert in dem Feld Stammdaten.PLZ ein Bezug auf die Wohnort-Tabelle hergestellt.

mfg, F:\Stefan>

Hallo Stefan
Ich bin zwar nicht Daniele, aber ich habe das gleiche Problem…

Mit deiner Lösung schaffte ich es noch nicht, was mache ich falsch?

  1. Tabelle „Postleitzahlen“
  • Feld PLZ: Integer, ist Primärschlüssel
  • Feld Ort: Text
    (Es gibt Orte mit mehr als einer Postleitzahl, bsp Luzern 6000 6003 6005 …, deshalb PLZ als Primärschlüssel… auch aus der Schweiz :smile:))
  1. Tabelle „Adressen“
    unter anderem mit folgenden Feldern:
  • Feld PLZ
  • Feld Ort
  1. Formular „Adressen“
    Hier füge ich nun ein Kombinationsfeld ein:
  2. Das Kombinationsfeld soll die Werte einer Tabelle oder Abfrage entnehmen
  3. Aus welcher Tabelle: Postleitzahlen
  4. Ausgewählte Felder: PLZ
  5. Wert speichern in Feld: Ort

Auf diese Art erstellt, kann ich im Kombinationsfeld eine PLZ aus der Tabelle
Postleitzahlen auswählen. Diese Zahl wird dann im Feld Ort der Tabelle
Adressen gespeichert…
Was mache ich falsch???

Wenn ich nun bei den Eigenschaften das Kombinationsfeldes den Steuerelementinhalt
auf PLZ ändere, so kann ich die PLZ auswählen, aber wie bringe ich den jeweils
passenden Ort in das Feld „Ort“ der Adressen-Tabelle?

Ich hoffe, du kannst etwas mit meiner langen und etwas komplizierten Problembeschreibung anfangen…
Vielen Dank für alle Tips
Armin

Wie immer in Access, gibt es viele Möglichkeiten…

Eine ist, das PLZ-Kombifeld 2-spaltig zu machen (1. Spalte PLZ, 2. Spalte Ort) und dann im AfterUpdate:

Private Sub PLZ\_AfterUpdate()
 Me!Ort = Me!PLZ.Column(1)
End Sub

zu schreiben. Mit den Schweizer Postleitzahlen mag das vom Volumen her angehen - in Deutschland wird die Angelegenheit ziemlich lahm, da es einfach zu viele Postleitzahlen gibt.
Außerdem sind die Postleitzahlen nicht eindeutig einem Ort zugeordnet, d.h. es gibt auch Postleitzahlen mit mehreren Orten. (Das gilt aber auch bzw. erst recht für die Schweiz: 1041 kann Bettens oder auch Bretigny-Morrens oder gar Oulens-Echallens sein…)

Reinhard

Vielen Dank für die Hilfe.

(Das gilt aber auch bzw. erst
recht für die Schweiz: 1041 kann Bettens
oder auch Bretigny-Morrens oder gar
Oulens-Echallens sein…)

Tatsächlich, habe ich erst jetzt bemerkt!!!
Vielen Dank für den Tip

Armin

… es funktioniert nun „fast“ alles :smile:)

Ich habe in meinem Formular ein ungebundenes Kombinationsfeld, um die PLZ einzutippen.

Private Sub PLZAuswahl\_AfterUpdate()
 Me!PLZ = Me!PLZAuswahl.Column(1)
 Me!Ort = Me!PLZAuswahl.Column(2)
 Me!Kanton = Me!PLZAuswahl.Column(3)
End Sub

Beim Erstellen eines neuen Datensatzes wird nun dieses Kombi-Feld nicht zurückgesetzt. Die zuletzt eingetippte PLZ bleibt drin.
Meine Lösung:
Bei den Formular-Eigenschaften „Beim Anzeigen“:

Private Sub Form\_Current()
 Me!PLZAuswahl = ""
End Sub

Das funktiniert soweit, das Kombi-Feld wird gelöscht.

Das Problem ist der „Formularbasierte Filter“. Beim Anwählen gibt es eine Fehlermeldung:
„Sie haben einen Wert eingegeben, der für dieses Feld nicht zulässig ist“

Die Ursache ist meine Funktion „Private Sub Form_Current()“. Ohne diese funktioniert der Filter einwandfrei.

Gibt es eine bessere Lösung, das Kombifeld zu löschen?

Vielen dank für alle Tips
Armin

… es funktioniert nun „fast“ alles :smile:)

Ich habe in meinem Formular ein
ungebundenes Kombinationsfeld, um die PLZ
einzutippen.

Warum ungebunden? Warum nimmst du nicht das Kombifeld gleich zur Eingabe der Postleitzahl?

Was steht denn in deiner Form_Current-Prozedur drin, dass angemeckert wird?

Ansonsten: Setze mal Me!PLZ = Null

Reinhard

Jetzt funktioniert alles, vielen Dank :smile:

Warum ungebunden? Warum nimmst du nicht
das Kombifeld gleich zur Eingabe der
Postleitzahl?

Dann speicherte „es“ immer meine Kennnummer (Primärschlüssel der PLZ Tabelle) aber nicht die PLZ selber…

Meine momentane Lösung ist mehr eine „Schreibhilfe“: Man tippt die Postleitzahl, der Ort und der Kanton sowie die Postleitzahl selber werden in das Formular eingetragen. Man kann aber die Daten auch manuell eintragen, beispielsweise für Adressen ausserhalb der Schweiz… (Dann halt ohne das Auswahlfeld zu benützen)

Ansonsten: Setze mal Me!PLZ = Null

Funktioniert wunderbar so

Vielen Dank
Armin

Jetzt funktioniert alles, vielen Dank :smile:

Warum ungebunden? Warum nimmst du nicht
das Kombifeld gleich zur Eingabe der
Postleitzahl?

Dann speicherte „es“ immer meine
Kennnummer (Primärschlüssel der PLZ
Tabelle) aber nicht die PLZ selber…

Du musst die Spalte mit der PLZ als „gebundene Spalte“ angeben, dann sollte es gehen…

Reinhard