BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
[gelöst] Im Listenfeld eines Formulares Vornamen und Namen zusammengesetzt anzeigen
-
- Beiträge: 137
- Registriert: Sa 17. Sep 2016, 18:31
[gelöst] Im Listenfeld eines Formulares Vornamen und Namen zusammengesetzt anzeigen
Hallo,
ich bitte um Hilfe für einen SQL-Befehl, für den meine Kennisse derzeit noch nicht ausreichen:
Ich möchte mit einem Formular in meine Tabelle "Status-Meldungen" u.a. eine "Mitglied-ID" einfügen. Dazu möchte ich in dem Listenfeld des Formulares die Mitglieder aber in dem Auswahlfeld mit dem Namen und Vornamen angezeigt bekommen. In meiner Tabelle "Mitglied" werden aber nur die Vornamen-ID bzw. Nachnamen-ID gespeichert, da ich die Mitglieder eindeutig über die Tabelle "Mitglied" identifiziere. Nun weiß ich nicht, wie ich den SQL-Wert eingeben muss, damit mir die Namen und Vornamen der Mitglieder angezeigt werden.
Ich hoffe, ich habe das richtig beschrieben und füge die Übersicht der Beziehungen zur Info hier ein.
Vielen Dank für eine Hilfe schon jetzt Hans
ich bitte um Hilfe für einen SQL-Befehl, für den meine Kennisse derzeit noch nicht ausreichen:
Ich möchte mit einem Formular in meine Tabelle "Status-Meldungen" u.a. eine "Mitglied-ID" einfügen. Dazu möchte ich in dem Listenfeld des Formulares die Mitglieder aber in dem Auswahlfeld mit dem Namen und Vornamen angezeigt bekommen. In meiner Tabelle "Mitglied" werden aber nur die Vornamen-ID bzw. Nachnamen-ID gespeichert, da ich die Mitglieder eindeutig über die Tabelle "Mitglied" identifiziere. Nun weiß ich nicht, wie ich den SQL-Wert eingeben muss, damit mir die Namen und Vornamen der Mitglieder angezeigt werden.
Ich hoffe, ich habe das richtig beschrieben und füge die Übersicht der Beziehungen zur Info hier ein.
Vielen Dank für eine Hilfe schon jetzt Hans
- Dateianhänge
-
- SQL_Wert.jpg (30.82 KiB) 4938 mal betrachtet
Zuletzt geändert von HansGerstenkorn am Mo 11. Dez 2017, 18:02, insgesamt 1-mal geändert.
MacBook Pro = LO Version: 6.2.3.1; CPU-Threads: 8; BS: mac OS Mojave Version 10.14.4;
Lenovo T430S; Intel Core i5-3320M CPU @ 2.60 GHZ, 2601 MHz, 2 Kerne, LO Version: 6.0.2.1 (x64); Microsoft Windows 10 Pro; 10.0.16299;
Lenovo T430S; Intel Core i5-3320M CPU @ 2.60 GHZ, 2601 MHz, 2 Kerne, LO Version: 6.0.2.1 (x64); Microsoft Windows 10 Pro; 10.0.16299;
Re: Im Listenfeld eines Formulares Vornamen und Namen zusammengesetzt anzeigen
Hallo Hans,
dass Du den Namenzusatz aus der Tabelle "Mitglied" auslagerst verstehe ich ja noch irgendwie. Aber warum machst Du das mit den Vornamen und Nachnamen? Gibt es da so viele Leute, die gleiche Vornamen und gleiche Nachnamen haben?
Du mixt in der Tabelle "Mitglied" alle Vornamen mit allen Nachnamen. Da kann nicht ein Listenfeld genutzt werden, um zwei Fremdschlüssel gleichzeitig zu befüllen.
Gruß
Robert
dass Du den Namenzusatz aus der Tabelle "Mitglied" auslagerst verstehe ich ja noch irgendwie. Aber warum machst Du das mit den Vornamen und Nachnamen? Gibt es da so viele Leute, die gleiche Vornamen und gleiche Nachnamen haben?
Du mixt in der Tabelle "Mitglied" alle Vornamen mit allen Nachnamen. Da kann nicht ein Listenfeld genutzt werden, um zwei Fremdschlüssel gleichzeitig zu befüllen.
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
-
- ! Supporter - Spende !
- Beiträge: 66
- Registriert: So 1. Jan 2017, 11:34
Re: Im Listenfeld eines Formulares Vornamen und Namen zusammengesetzt anzeigen
Da kann ich vielleicht helfen:
"Vorname" || ' ' || "Nachname"
Die senkrechten Striche ( Alt + < ) heißen Conquette ( Verkettung) und das mit den Hochkommata fügt ein Leerzeichen ein.
Ich stelle mir das immer in der Abfrage- Entwurfsansicht zusammen, so dass Vorname und Nachname nacheinander als Felder eingetragen sind, wechsle in die SQL - Ansicht und muss nur noch ein Komma, das die Felder trennt duch den "Konquetteausdruck" ersetzen.
würd´mich freuen wenn´s hilft.
"Vorname" || ' ' || "Nachname"
Die senkrechten Striche ( Alt + < ) heißen Conquette ( Verkettung) und das mit den Hochkommata fügt ein Leerzeichen ein.
Ich stelle mir das immer in der Abfrage- Entwurfsansicht zusammen, so dass Vorname und Nachname nacheinander als Felder eingetragen sind, wechsle in die SQL - Ansicht und muss nur noch ein Komma, das die Felder trennt duch den "Konquetteausdruck" ersetzen.
würd´mich freuen wenn´s hilft.
-
- Beiträge: 755
- Registriert: Fr 28. Mär 2014, 10:41
Re: Im Listenfeld eines Formulares Vornamen und Namen zusammengesetzt anzeigen
Hallo alle,
Das würde doch gehen, mit einer Ansicht, in der per per Konkatenierung (eben das erwähnte "Vorname" || ' ' || "Nachname" ) die Namen zusammengebaut werden.
Aber vorher beginnt das Grauen: um ein neues Mitglied anzulegen, müßten doch bei dieser Struktur erst Vorname und Nachname in den Einzeltabellen vorhanden sein, bevor man sie in der Mitgliedstabelle kombinieren kann?
Gruß
Freischreiber
Ich habe es so verstanden, daß der Fragesteller neue Datensätze in die Tabelle Statusmeldungen eintragen möchte, und dazu in einem Formular vorhandene Mitglieder aussuchen können möchte.Da kann nicht ein Listenfeld genutzt werden, um zwei Fremdschlüssel gleichzeitig zu befüllen.
Das würde doch gehen, mit einer Ansicht, in der per per Konkatenierung (eben das erwähnte "Vorname" || ' ' || "Nachname" ) die Namen zusammengebaut werden.
Aber vorher beginnt das Grauen: um ein neues Mitglied anzulegen, müßten doch bei dieser Struktur erst Vorname und Nachname in den Einzeltabellen vorhanden sein, bevor man sie in der Mitgliedstabelle kombinieren kann?
Gruß
Freischreiber
Freischreiber nutzt seit 6/2023 LibreOffice Version: 7.2.7.2 (x64) unter Windows 10 und SplitDB mit HSQL 2.7.2.
-
- Beiträge: 137
- Registriert: Sa 17. Sep 2016, 18:31
Re: Im Listenfeld eines Formulares Vornamen und Namen zusammengesetzt anzeigen
Hallo zusammen,
vielen Dank für Eure Hinweise
wieder einmal werde ich durch Eure Hinweise darauf aufmerksam gemacht, dass meine Frage so nicht gestellt werden dürfte, da sie eigentlich nicht umgesetzt werden kann (siehe Robert). Das ist natürlich richtig und bei genauem Überlegen durch diese Denkanstöße werde ich meine Anforderung der eindeutigen Suche einfach derart umsetzen, dass ich bei einer neuen Statusmeldung das Mitglied über eine Abfrage (als Liste in der Tabelle) identifiziere und so die Einträge dann eindeutig vornehme. Ich benötige eine Liste Mitglieder, da diese Eigenschaften wie z.B. Funktionen haben, die durchaus wechseln und für die Statusmeldungen muss isch die Historie dokumentieren...
Bei der Ansicht der Abfrage ist mir die Umsetzung des SQL-Befehles mit der Verknüpfung nicht ganz klar, es wäre toll, wenn ich von WonneWasti noch einmal Hilfe bekäme, bisher habe ich zwei Felder nebeneinander und der Befehl sieht so aus:
"SELECT "Mitglied"."ID" AS "ID", "Nachname"."Nachname", "Vorname"."Vorname" FROM "Mitglied", "Nachname", "Vorname" WHERE "Mitglied"."Nachname-ID" = "Nachname"."ID" AND "Mitglied"."Vorname_1-ID" = "Vorname"."ID" ORDER BY "Nachname-ID" ASC, "Vorname_1-ID" ASC"
Wie sieht er aus, wenn Nachname und Vorname verknüpft sind?
Zu Info:
Ich bin einfach auf diese Beziehung mit der getrennten Verwaltung von Vornamen und Nachnamen gekommen, weil ich es bei der Auswahl im Listenfeld nicht "stimmig" fand, wenn ich in der Liste der vorhandenen Namen bis zu 7 gleiche Namen untereinander angezeigt bekomme. Hier in unserem Vorort sind sher viele Familien im Sportverein (rund 5.000 Mitglieder) und das über Generationen hinweg. Da nehme ich es gern in Kauf, bei Neuaufnahmen erst einen Namen anlegen zu müssen, ist auch nicht so schlimm, die vorhandenen zeige ich mir im Formular entsprechend an.
Viele Grüße Hans
vielen Dank für Eure Hinweise
wieder einmal werde ich durch Eure Hinweise darauf aufmerksam gemacht, dass meine Frage so nicht gestellt werden dürfte, da sie eigentlich nicht umgesetzt werden kann (siehe Robert). Das ist natürlich richtig und bei genauem Überlegen durch diese Denkanstöße werde ich meine Anforderung der eindeutigen Suche einfach derart umsetzen, dass ich bei einer neuen Statusmeldung das Mitglied über eine Abfrage (als Liste in der Tabelle) identifiziere und so die Einträge dann eindeutig vornehme. Ich benötige eine Liste Mitglieder, da diese Eigenschaften wie z.B. Funktionen haben, die durchaus wechseln und für die Statusmeldungen muss isch die Historie dokumentieren...
Bei der Ansicht der Abfrage ist mir die Umsetzung des SQL-Befehles mit der Verknüpfung nicht ganz klar, es wäre toll, wenn ich von WonneWasti noch einmal Hilfe bekäme, bisher habe ich zwei Felder nebeneinander und der Befehl sieht so aus:
"SELECT "Mitglied"."ID" AS "ID", "Nachname"."Nachname", "Vorname"."Vorname" FROM "Mitglied", "Nachname", "Vorname" WHERE "Mitglied"."Nachname-ID" = "Nachname"."ID" AND "Mitglied"."Vorname_1-ID" = "Vorname"."ID" ORDER BY "Nachname-ID" ASC, "Vorname_1-ID" ASC"
Wie sieht er aus, wenn Nachname und Vorname verknüpft sind?
Zu Info:
Ich bin einfach auf diese Beziehung mit der getrennten Verwaltung von Vornamen und Nachnamen gekommen, weil ich es bei der Auswahl im Listenfeld nicht "stimmig" fand, wenn ich in der Liste der vorhandenen Namen bis zu 7 gleiche Namen untereinander angezeigt bekomme. Hier in unserem Vorort sind sher viele Familien im Sportverein (rund 5.000 Mitglieder) und das über Generationen hinweg. Da nehme ich es gern in Kauf, bei Neuaufnahmen erst einen Namen anlegen zu müssen, ist auch nicht so schlimm, die vorhandenen zeige ich mir im Formular entsprechend an.
Viele Grüße Hans
MacBook Pro = LO Version: 6.2.3.1; CPU-Threads: 8; BS: mac OS Mojave Version 10.14.4;
Lenovo T430S; Intel Core i5-3320M CPU @ 2.60 GHZ, 2601 MHz, 2 Kerne, LO Version: 6.0.2.1 (x64); Microsoft Windows 10 Pro; 10.0.16299;
Lenovo T430S; Intel Core i5-3320M CPU @ 2.60 GHZ, 2601 MHz, 2 Kerne, LO Version: 6.0.2.1 (x64); Microsoft Windows 10 Pro; 10.0.16299;
-
- Beiträge: 755
- Registriert: Fr 28. Mär 2014, 10:41
Re: Im Listenfeld eines Formulares Vornamen und Namen zusammengesetzt anzeigen
Hallo Hans,
hier mal eine Ansicht aus meiner Datenbank, wo Konkatenierung vorkommt:
Das IFNULL ist nach meiner Erinnerung jeweils nötig, damit, wenn ein Feld leer ist, überhaupt etwas angezeigt wird. Kann sein, daß du das, wenn immer Vorname und Nachname vorhanden sind, nicht brauchst.
Die Status-ID filtert die Adressen so, daß nur Kunden selektiert werden, und keine anderen Adressen. Brauchst du vielleicht auch nicht.
Um Doppeleinträge zu verhindern, solltest du dir einmal eine DISTINCT-Abfrage anschauen (SELECT DISTINCT...). Vielleicht gibt es auch eine Formularfunktion, die im Feld eine Doppelanzeige verhindert. Das wäre allemal besser als eine falsche Datenbankstruktur, weil die wirst du nur schwer ändern können, wenn mal viele Daten drin sind...
Gruß
Freischreiber
hier mal eine Ansicht aus meiner Datenbank, wo Konkatenierung vorkommt:
Code: Alles auswählen
SELECT IFNULL( "t-adressen"."Firma" || ' ', '' ) || IFNULL( "t-adressen"."Nachname" || ' ', '' ) || IFNULL( "t-adressen"."Vorname", '' ) AS "Name", "ID" FROM "t-adressen" WHERE "t-adressen"."StatusID" = 1 ORDER BY "Name"
Die Status-ID filtert die Adressen so, daß nur Kunden selektiert werden, und keine anderen Adressen. Brauchst du vielleicht auch nicht.
Um Doppeleinträge zu verhindern, solltest du dir einmal eine DISTINCT-Abfrage anschauen (SELECT DISTINCT...). Vielleicht gibt es auch eine Formularfunktion, die im Feld eine Doppelanzeige verhindert. Das wäre allemal besser als eine falsche Datenbankstruktur, weil die wirst du nur schwer ändern können, wenn mal viele Daten drin sind...
Gruß
Freischreiber
Freischreiber nutzt seit 6/2023 LibreOffice Version: 7.2.7.2 (x64) unter Windows 10 und SplitDB mit HSQL 2.7.2.
-
- Beiträge: 137
- Registriert: Sa 17. Sep 2016, 18:31
Re: Im Listenfeld eines Formulares Vornamen und Namen zusammengesetzt anzeigen
Hallo Freischreiber,
vielen Dank für die schnelle Antwort, schaffe es jetzt leider nicht mehr, gehe das schnell an, DISTINCT ist gut für doppelte....
Viele Grüße Hans
vielen Dank für die schnelle Antwort, schaffe es jetzt leider nicht mehr, gehe das schnell an, DISTINCT ist gut für doppelte....
Viele Grüße Hans
MacBook Pro = LO Version: 6.2.3.1; CPU-Threads: 8; BS: mac OS Mojave Version 10.14.4;
Lenovo T430S; Intel Core i5-3320M CPU @ 2.60 GHZ, 2601 MHz, 2 Kerne, LO Version: 6.0.2.1 (x64); Microsoft Windows 10 Pro; 10.0.16299;
Lenovo T430S; Intel Core i5-3320M CPU @ 2.60 GHZ, 2601 MHz, 2 Kerne, LO Version: 6.0.2.1 (x64); Microsoft Windows 10 Pro; 10.0.16299;
-
- Beiträge: 137
- Registriert: Sa 17. Sep 2016, 18:31
Re: Im Listenfeld eines Formulares Vornamen und Namen zusammengesetzt anzeigen
Hallo Freischreiber,
ich glaube ich verstehe die SQL-Sprache noch nicht richtig, es gelingt mir einfach nicht, die zwei Felder zusammenzuführen, ich stolpere immer wieder darüber, dass die zwei Felder aus zwei verschiedenen Listen stammen. Hier der SQL-Befehl der Ansicht
"SELECT "Nachname"."Nachname", "Vorname"."Vorname" FROM "Mitglied", "Nachname", "Vorname" WHERE "Mitglied"."Nachname-ID" = "Nachname"."ID" AND "Mitglied"."Vorname_1-ID" = "Vorname"."ID" ORDER BY "Nachname"."Nachname" ASC, "Vorname"."Vorname" ASC"
Wie füge ich nun Nachnamen und Vornamen zusammen? Nur zur Info: es ist nicht unbedingt wichtig, in meinem Formular komme ich auch nur mit dem Vornamen zurecht, da ich die Auswahl auch so (über eingefügte Abfrage) manuell durchführen kann, es wäre aber toll, zu wissen, wie es geht
Vielen Dank und Gruß Hans
PS wie macht Ihr das eigentlich mit der Darstellung vom Code, wie wird der richtig eingefügt, bei Euch sieht das immer so schick aus?
ich glaube ich verstehe die SQL-Sprache noch nicht richtig, es gelingt mir einfach nicht, die zwei Felder zusammenzuführen, ich stolpere immer wieder darüber, dass die zwei Felder aus zwei verschiedenen Listen stammen. Hier der SQL-Befehl der Ansicht
"SELECT "Nachname"."Nachname", "Vorname"."Vorname" FROM "Mitglied", "Nachname", "Vorname" WHERE "Mitglied"."Nachname-ID" = "Nachname"."ID" AND "Mitglied"."Vorname_1-ID" = "Vorname"."ID" ORDER BY "Nachname"."Nachname" ASC, "Vorname"."Vorname" ASC"
Wie füge ich nun Nachnamen und Vornamen zusammen? Nur zur Info: es ist nicht unbedingt wichtig, in meinem Formular komme ich auch nur mit dem Vornamen zurecht, da ich die Auswahl auch so (über eingefügte Abfrage) manuell durchführen kann, es wäre aber toll, zu wissen, wie es geht
Vielen Dank und Gruß Hans
PS wie macht Ihr das eigentlich mit der Darstellung vom Code, wie wird der richtig eingefügt, bei Euch sieht das immer so schick aus?
MacBook Pro = LO Version: 6.2.3.1; CPU-Threads: 8; BS: mac OS Mojave Version 10.14.4;
Lenovo T430S; Intel Core i5-3320M CPU @ 2.60 GHZ, 2601 MHz, 2 Kerne, LO Version: 6.0.2.1 (x64); Microsoft Windows 10 Pro; 10.0.16299;
Lenovo T430S; Intel Core i5-3320M CPU @ 2.60 GHZ, 2601 MHz, 2 Kerne, LO Version: 6.0.2.1 (x64); Microsoft Windows 10 Pro; 10.0.16299;
Re: Im Listenfeld eines Formulares Vornamen und Namen zusammengesetzt anzeigen
Hallo Hans,
(Code einfügen über den 5. Button von links ...)
Das bringt Dir die Felder in einer Kombination zusammen. In Deiner Tabellenkonstruktion kannst Du das aber nirgendwo gebrauchen. Wenn sich das Listenfeld auf die Vornamen beziehen soll, dann könntest Du
nehmen.
Das Ganze ergibt für mich aber auch weiterhin keinen Sinn, da dann zu einem Vornamen beliebige Nachnamen ausgesucht werden könnten - nur wozu? Du kannst dann einen anderen Vornamen zuweisen, hast mit dem Listenfeld aber keinen Einfluss auf den Nachnamen.
Gruß
Robert
(Code einfügen über den 5. Button von links ...)
Code: Alles auswählen
SELECT "Nachname"."Nachname"||', '||"Vorname"."Vorname"
FROM "Mitglied", "Nachname", "Vorname"
WHERE "Mitglied"."Nachname-ID" = "Nachname"."ID" AND "Mitglied"."Vorname_1-ID" = "Vorname"."ID"
ORDER BY "Nachname"."Nachname" ASC, "Vorname"."Vorname" ASC"
Code: Alles auswählen
SELECT "Nachname"."Nachname"||', '||"Vorname"."Vorname", "Vorname"."ID"
FROM "Mitglied", "Nachname", "Vorname"
WHERE "Mitglied"."Nachname-ID" = "Nachname"."ID" AND "Mitglied"."Vorname_1-ID" = "Vorname"."ID"
ORDER BY "Nachname"."Nachname" ASC, "Vorname"."Vorname" ASC"
Das Ganze ergibt für mich aber auch weiterhin keinen Sinn, da dann zu einem Vornamen beliebige Nachnamen ausgesucht werden könnten - nur wozu? Du kannst dann einen anderen Vornamen zuweisen, hast mit dem Listenfeld aber keinen Einfluss auf den Nachnamen.
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Im Listenfeld eines Formulares Vornamen und Namen zusammengesetzt anzeigen
Hi,
auch wenn ich die Aufteilung der Vor- und Nachnamen auf zwei Tabellen nicht verstehe, der SQL-Befehl für ein Listenfeld, das die Mitglieds-ID in die Statustabelle schreibt, lautet z.B. so:
EDIT...Ups, da war ich wohl ein paar Minuten später als Robert...egal, das Ergebnis gleicht sich, Robert ist ORDERntlicher ...
Gruß R
auch wenn ich die Aufteilung der Vor- und Nachnamen auf zwei Tabellen nicht verstehe, der SQL-Befehl für ein Listenfeld, das die Mitglieds-ID in die Statustabelle schreibt, lautet z.B. so:
Code: Alles auswählen
SELECT
"Nachname"||', '||"Vorname",
"Mitglied"."ID"
FROM
"Mitglied",
"Nachname",
"Vorname"
WHERE
"Nachname-ID" = "Nachname"."ID"
AND
"Vorname_1-ID" = "Vorname"."ID"
Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO
An alle, die das LibreOffice-Forum nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️