PDA

Vollständige Version anzeigen : Im Formular neue Abfrage erstllen


andreas_a
02.01.2002, 08:37
Morgen miteinander,

Kleine Frage, ich habe ein Formular mit der Postleizahl dem Ort und dem Kanton, jetzt möchte ich das wenn einer die Postleitzahl eingibt das es automatisch den ort und den Kanton übernimmt.

dafür hab ein beim ort ein Pulldownmenu das es ermöglicht wenn eine PLZ mehrere Einträge erhällt das man die restlichen wählen kann.

Wie genau muss ich Vorgehen? die PLZ werden von einer zusatz tabelle geholt.

Ich wollte eine Abfrage erstellen und dann das feld binden aber irgendwiefunzt das nicht so wie ich möchte.

Einer eine Idee, im Forum hab ich keinen Beitrag gefunden :-(

Re
02.01.2002, 10:14
Hallo Andreas,

ich vermute, du hast in Deiner PLZ Tabelle auch den Ort und den Kanton hinterlegt.

Dann solltest Du diese Werte in Deinem Kombifeld zur Verfügung stellen und bei der PLZ NACH Aktualisierung das Feld Ort mit Column(1) und das Feld Kanton mit Column(2) belegen.

Außerdem sollte die Datensatzherkunft Deines Kombifeldes Ort mit einem Kriterium versehen

Felder PLZ und ORT

Kriterium in PLZ
Forms!DeinForm!DeinPLZfeld

Vergiß nicht das requery beim Fokuserhalt
Gruß
Renate

Kurt aus Kienitz
02.01.2002, 10:17
Hallo Andreas,

Ich nehme mal an, mit Pulldown-Menü meinst Du ein Kombinationsfeld.
Dieses hat in der Eigenschaft Datensatzherkunft einen SQL-String stehen.
Der könnte bei Dir ungefähr so aussehen:
SELECT Ort FROM OrtVerzeichnis

Diesen SQL-String mußt Du anpassen.
Mal angenommen, das Textfeld für die PLZ heißt dfPLZ dann sollte der SQL-String ungefähr so aussehen:
SELECT Ort FROM OrtVerzeichnis WHERE PLZ=dfPLZ;

Wenn Du das gemacht hast, dann mußt Du noch die Ereignisprozedur Beim Verlassen des Textfeldes (dfPLZ) implementieren.
Das könnte so aussehen (wenn dein Kombinationsfeld z.B. CmbOrt heißt):

Private Sub dfPLZ_Exit()

Me.CmbOrt.Requery

End Sub

andreas_a
02.01.2002, 15:02
Hallo,
THX einmal für die Antworten, aber irgendwie hat das nciht so geklappt wie ich mir das vorgestellt hab :-(

Ich hab unter <a href="http://rezepte.andy-angy.ch/formular.gif" target="_blank">http://rezepte.andy-angy.ch/formular.gif</a> ein Bild das es ein bisschen verdeutlichen sollte.

Also ich habe das Kombinationsfeld mit der Postleitzahl, die Tabelle mit der Postleitzahl ist folgendermassen aufgebaut:

Tabellenname = resOrte
Spalten: ID, PLZ, Ort, Kanton

Kann die PLZ nicht als schlüssel nehmen das es mehrere orte geben kann die die gleiche PLZ haben.

Die Restaurant Tabelle hat einen Verknüpfung auf die resOrte logisch :-)

Ich möchte jetzt das wenn ich auf PLZ gehe und eine Postleitzahl eingebe das im Kombinationsfeld Arlesheim angezeigt wird, das Problem dabei ist das wenn ich z.b. 4133 eingib dann sollte im Ort Kombinationsfeld folgende einträge stehen die ich dann noch auswählen kann.

Pratteln 1
Pratteln 2
Pratteln Schweizerhalle

Also 3 verschiedene aber die gleiche PLZ.
zudem sollte im Kanton auch noch BL oder was auch immer stehen, da es viele orte gibt die es in verschiedenen Kantonen liegen :-) Schweiz halt *lol*

Ich hoff das ist jetzt ein bisschen besser beschrieben, oder ich hab euch vorher total falsch verstanden :-)

andreas_a
03.01.2002, 21:44
Keiner eine Idee?

;-)

MarioR
03.01.2002, 23:17
Hallo Andreas,

ich denke mal Kurt hat das schon gut erklärt, aber ich will mein Glück auch nochmal versuchen. :)

Also Du trägst/stellst in Deinen Feldern Folgendes ein:

DeinPLZKombifeld

Daten->Datensatzherkunft:
SELECT DISTINCT PLZ FROM resOrte;

In das Ereignisprozedur zu Nach Aktualisierung kommt das rein:

Me.DeinOrtKombifeld=Null
Me.DeinKantonTextfeld=Null
Me.DeinOrtKombifeld.Requery


DeinOrtKombifeld

Daten->Datensatzherkunft:
SELECT Ort, Kanton FROM resOrte WHERE PLZ=DeinPLZKombifeld;

Format->Spaltenanzahl: 2

Format->Spaltenbreiten: 2,5cm;0cm
(die 2,5cm musst Du auf Deine Verhältnisse anpassen, wichtig sind die 0cm für die 2. Spalte)

In das Ereignisprozedur zu Nach Aktualisierung kommt das rein:

Me.DeinKantonTextfeld=Me.DeinOrtKombifeld.Column(1)


Wenn Du jetzt im Kombifeld PLZ was einträgst oder auswählst, werden die Einträge im Kombifeld für den Ort und im Textfeld für den Kanton gelöscht. Dann kannst Du im Ort-Kombifeld den Ort auswählen und erhälst automatisch den Kanton im Kanton-Textfeld.

Eventuell musst Du noch im Ereignis Beim Anzeigen vom Formular den Code eintragen:

Me.DeinOrtKombifeld.Requery

andreas_a
04.01.2002, 08:51
Hallo,

THX für eure Hilfe, jetzt klappt das was ich wollte :-))