Seite 1 von 1

[Gelöst] "Plz Ort" im Formular ausgeben (Firebird)

Verfasst: Fr 25. Feb 2022, 19:07
von nehemia
Hallo Forum,

ich bin mal wieder dabei, meine bisher unter HSQL bestehende Adressdatenbank auf Firebird umzustellen. Bei folgendem Problem komme ich allerdings nicht weiter und brauche Hilfe:

Ich habe eine Tabelle "t_namen", wo die Namen der Personen erfasst werden. In dieser Tabelle "t_namen" habe ich ein Feld "plz_id"

das zu einer Tabelle "t_plz" mit den Feldern "id", "plzbez" und "ort_id" zum Feld "id" eine n:1-Beziehung herstellt.

Diese Tabelle "t_plz" stellt wiederum über das Feld "ort_id" zu einer Tabelle "t_ort" mit den Feldern "id" und "ortsbez" zum Feld "id" eine n:1-Beziehung her.

Nun möchte ich diese Daten (möglichst ohne Makro) in ein Formular einbinden.

Bislang hatte ich dazu Plz und Ort über "concat" in ein Listenfeld eingefügt und konnte auf diese Weise "PLZ Ort" zusammengefügt darstellen. Nun steht "concat" in Firebird nicht mehr zur Verfügung. Mir ist bekannt, dass ich alternativ "Plz Ort" über den Befehl

SELECT "t_plz"."plzbez" || ' ' || "t_ort"."ortbez" "Plz Ort" FROM "t_ort", "t_plz" WHERE "t_ort"."id" = "t_plz"."ort_id" ORDER BY "t_plz"."plzbez" DESC

im Formular ausgeben kann.

Der Punkt ist, dass es mir zwar gelingt, die Daten in der Liste anzuzeigen, allerdings nicht die Daten einem Datensatz zuzordnen. Ich bekomme immer eine Fehlermeldung.

Vielleicht kann mir jemand helfen. Vielen Dank im Voraus.

Gruß Martin

P.S. Datenbank anbei...

Re: "Plz Ort" im Formular ausgeben

Verfasst: Fr 25. Feb 2022, 20:14
von RobertG
Der Code, den Du da geschrieben hast, gibt nur ein Feld raus. Du brauchst doch für ein Listenfeld als 2. Feld das Fremdschlüsselfeld.

Code: Alles auswählen

SELECT "t_plz"."plzbez" || ' ' || "t_ort"."ortbez" "Plz Ort",
"t_plz"."id"
FROM "t_ort", "t_plz" 
WHERE "t_ort"."id" = "t_plz"."ort_id" 
ORDER BY "t_plz"."plzbez" DESC
dürfte vermutlich funktionieren.

Gruß

Robert

Re: "Plz Ort" im Formular ausgeben

Verfasst: Sa 26. Feb 2022, 10:31
von nehemia
Super Robert, jetzt haut's hin. Vielen Dank. Jetzt komm ich weiter... :D

Gruß Martin