Seite 1 von 1

Datenbank - Adresse (Plz, Ort, Str., HsNr.) im Formular

Verfasst: Sa 19. Mai 2012, 17:14
von nehemia
Hallo Forum,
eigentlich bin ich absoluter Laie, was Datenbankerstellung anbelangt. Aber durch Dritte ermutigt, habe ich mich einfach mal "auf eine Reise begeben", um nach dem Motto "Versuch und Irrtum" mit BASE herumzuprobieren. Ich bin gespannt, ob was Brauchbares dabei rauskommt. Das bisherige Ergebnis habe ich dieser Nachricht angehängt... ;-)

Ich habe also angefangen, eine Adressdatenbank zu erstellen. Um dabei auch zu lernen, habe ich das Formular f_person_hauptformular manuell erstellt, also bewusst den Assistenten vermieden. Wie man unter "Extras" - "Beziehungen" sehen kann, habe ich versucht, die einzelnen Tabellen in möglichst atomare Form aufzuteilen, was mir, glaube ich, auch gelungen zu sein scheint.

Mit der Umsetzung der Adressdaten im Formular haperts jetzt aber gewaltig. Und da brauch ich wohl Hilfe.

Ich hatte folgende Idee: Wenn man eine Postleitzahl im Feld "Plz" eingibt, soll sich möglichst ein Menü öffnen, dass alle bisher vorhandenen Postleitzahlen anzeigt, die dann auswählbar sind. Wenn die Postleitzahl noch nicht vorhanden ist, sollte man sie dort dann eingeben können. Schlussendlich sollte die eingegebene oder gewählte Postleitzahl sichtbar im Feld verbleiben. Ich vermute mal, dass hier eine Abfrage hinterlegt werden muss, bin mir aber weiter nicht sicher.

Weiter wäre es wünschenswert, wenn mit der Postleitzahl auch der dazugehörige Ort und die zur Postleitzahl gehörigen und vorhandenen Straßen erscheinen würden.

Das Sahnehäubchen oben drauf wäre dann, wenn das entsprechend auch möglich wäre, wenn die Eingabe zuerst bei Straße oder beim Ort anfangen würde.

Wie kann ich das verwirklichen? Und es wäre gut, wenn mir jemand das "idiotensicher" verständlich machen könnte.

Gruß, Martin

Re: Datenbank - Adresse (Plz, Ort, Str., HsNr.) im Formular

Verfasst: Do 7. Jun 2012, 13:52
von Decurtins
Hallo nehemia

im Prinzip erreichst du das mit einem Kombinationsfeld (kannst du im Form-editor mit dem - glaube ich - 11ten icon der Form-controls erstellen).

Das Kombinations Feld bietet im Formular dann ein drop-down-menu mit allen Ergebnissen der entsprechenden Tabellen-Column, die du unter List-content (Listen-inhalt auf deutsch vielleicht) auswählst. Das findest du bei doppelclick auf die combobox und dann unter dem Reiter Daten.

Damit du die gleiche Postleitzahl nicht zig mal in der Liste hast, kannst du unter Type of List contets (vielleicht: Art des Listeninhalts) auch SQL auswählen und vielleicht sowas eingeben:

Code: Alles auswählen

SELECT DISTINCT "Postleizahl" FROM "MeineTabelleMitDenPostLeitzahlen"
. (SELECT DISTINCT gibt jeweils nur unterschiedliche Resultate zurück. Also keine lange Liste von immer derselben Postleitzahl.

hoffe es hilft.

Oder Du hast die Sache bereits gelöst ;)

WICHTIG: Das Data field (Vielleicht: Datenfeld) unter dem Reiter Daten, ist jenes Feld in deiner Tabelle, in das die Postleitzahl hineingeschrieben wird. Das muss also auch gefüllt werden, sonst ergibt die ComboBox glaub'ich keinen Sinn.

Re: Datenbank - Adresse (Plz, Ort, Str., HsNr.) im Formular

Verfasst: Do 7. Jun 2012, 13:58
von Decurtins
Das automatische Ausfüllen (z.B. bei eingabe des Ortes, erscheint gleich die PLZ) habe ich via Macros gelöst.

mein code schaut was in der ComboBox steht, vergleicht das mit allen Einträgen in der entsprechenden Tabelle, gibt das Resultat zurück und schreibt es gleich in die entsprechende (wahrscheinlich neue) Row der Tabelle.

das ist aber etwas komplexer ;)


Man könnte das auch mit Unterformularen lösen. Vielleicht weiss jemand ja aus dem stegreif, wie das ginge.

cordials salids

Re: Datenbank - Adresse (Plz, Ort, Str., HsNr.) im Formular

Verfasst: Do 7. Jun 2012, 19:41
von RobertG
Dieses Thema wurde gleichzeitig im OO-Forum gepostet. Daran wird für mich sichtbar, wie ungünstig es ist, bei zwei Listen das Gleiche herauszugeben und die zweite Liste dann zu vergessen. Ich weiß gar nicht, ob die Sache noch aktuell ist:
http://de.openoffice.info/viewtopic.php?f=8&t=53507

Gruß

Robert