Mehrspaltige Kombobox erstellen

Hallo,
es ist mir schon fast peinlich, erneut die Frage zu merhspaltigen Kombobox zu stellen.
Inzwischen habe ich herausgefunden, dass es auch in Base möglich ist eine mehrspaltige Kombobox zu erezugen, wenn ein SQL Befehl verwendet wird. Leider verstehe ich davon gar nichts.
Da Bilder mit entsprechenden Hinweisen einfacher zu verstehen sind, habe ich dieser Anfrage ein Wirter Dokument beigefügt.
Bitte beachten, alle in dem Dokument aufgelisteten Namen, sind frei erfunden, ist halt der erste Gehversuch mit Base.
Für Anregungen, wie ich das Problem lösen kann, wäre ich sehr dankbar.
Ich wünsche allen einen schönen Adventssonntag, PeterMehrspaltige Dropdown-Liste.odt

PS. Ich hoffe dass das mit dem Anhang geklappt hat, denn ich bin irritiert, weil als Quelle C:\fake … erscheint, obwohl die Datei auf der D Partition liegt.

Hallo,
ganz lieben Dank für die Hinweise.

Zunächst zu deiner Anmerkung:
„Das entspricht genau dem, was ich in der Beispieldatenbank gemacht habe. Nur leider kannst Du die aus unerfindlichen Gründen nicht richtig öffnen.“

Inzwischen habe ich den Verdacht, dass dies viel mit OS Win 10 zu tun hat.
Ich hatte mir zum Einarbeiten in Base etliche Beispieldateien herunter geladen.
Wenige funktionieren problemlos, die meisten leider überhaupt nicht.
Alle Beispieldateien sind auf mein Notebook vollständig heruntergeladen.
Entweder gibt es gleich Fehlermeldungen, oder der Bearbeitungsmodus ist nicht verfügbar, was im Grunde bedeutet, ich kann nichts nachvollziehen.

Nun zum eigentlichen Thema: Mehrspaltigen Kombinationsfeld.
Wegen der Zeichenbeschränkung füge ich hier ein Writer Doc an, um genauer zu erklären, was ich meine.
Mit freundlichen Grüßen, Peter, El Salvador, z. Z.BerlinMehrspaltige Dropdown-Liste02.odt

Nur zur Sprachregelung: Das, was Du meinst, ist keine Combobox. Ein Kombinationsfeld in Base dient dazu, Inhalt direkt so zu speichern wie er angezeigt wird. Da macht die Darstellung von Inhalt aus mehreren Spalten keinen Sinn. Schließlich wird die Eingabe nicht auf verschiedene Tabellenfelder verteilt. Du hingegen zeigst mit dem Code, den Du als Beispiel lieferst, dass Du ein Listenfeld meinst. Das sieht erst einmal genauso aus, lässt sich aber nicht zur Eingabe nutzen, sondern nur zur Anzeige von Werten.

SELECT "Nachname"||', '||"Vorname"||' - KdNr. '||"ID", "ID" FROM "Kunde"

Das listet in dem Listenfeld alle Felder aus “Kunde” auf, die Nachname, Vorname und KdNr. enthalten. Da darf also nichts leer sein. Es wird dann an die darunterliegende Tabelle der Wert des Feldes “ID” zurückgegeben.

Das entspricht genau dem, was ich in der Beispieldatenbank gemacht habe. Nur leider kannst Du die aus unerfindlichen Gründen nicht richtig öffnen.

Jetzt müsstest Du schon den Code zeigen, damit Dir bei dem weiteren Vorgehen geholfen werden kann. Ich gehe einmal davon aus, dass Du wirklich mit der internen Datenbank HSQLDB arbeitest und nicht irgendeine externe Datenbank abfragen willst. Der Code ist nämlich nicht beliebig austauschbar.

Enthält die Abfrage ein Datum, dann wird das Datum in der SQL-Schreibweise in einem Text wiedergegeben. Hier hilft dann

SELECT "Nachname"||', '||"Vorname"|| ' * ' || DAY("GebDat")||'.'||MONTH("GebDat")||'.'||YEAR("GebDat")||' - KdNr. '||"ID", "ID" FROM "Kunde"

Damit wird das Datum in ohne führende Nullen und als vierstellige Jahreszahl ausgegeben.

Mit

RIGHT('0'||DAY("GebDat"),2)

wird aus der einstelligen Darstellung eine Darstellung mit gegebenenfalls führender Null. Und mit

RIGHT(YEAR("GebDat"),2)

wird aus der vierstelligen Jahresdarstellung eine zweistellige Darstellung.

Und nun alles zusammen:

SELECT "Nachname"||', '||"Vorname"|| ' * ' || RIGHT('0'||DAY("GebDat"),2)||'.'||RIGHT('0'||MONTH("GebDat"),2)||'.'||RIGHT(YEAR("GebDat"),2)||' - KdNr. '||"ID", "ID" FROM "Kunde"

So wird das Datum in der für uns üblichen Schreibweise mit zweistelliger Jahreszahl wieder gegeben.

Hallo,
habe inzwishen nach nervendaufreibenden Versuchen eine Teillösung meines Anliegen gefunden.

Ja, es ist möglich eine mehrspatiges Kombinatiosnfeld in Base zu erstellen.

Da ich mein Zeichenlimit zwecks Erklärung/Anfrage überschreite, hier ein Link zu meinem Writer Doc.

Mehrspaltige Dropdown-Liste03odt.odt

Für Lösungsvorschläge von Euch bin ich sehr dankbar.

Liebe Grüße, Peter

Natürlich kannst Du so etwas konstruieren. Kombinationsfelder sollen aber gerade zur Eingabe von Daten neben dem Nachschlagen von Daten dienen. Und das geht mit mehreren Spalten nicht. Du arbeitest schließlich mit einer Datenbank und die einzelnen Felder in dem Formular können nur einzelne Felder aus einer Datenquelle auslesen und schreiben, nicht mehrere auf einmal.

Ich jedenfalls bin hier jetzt raus.

Hallo Robert,
herzlichen Dank für den Hinweis.
Ich habe leider erst jetzt nach vieler Herumprobiererei festgestellt, dass das Kombinationsfeld in Base völlig anders funktioniert als die Kombobox unter VBA.
Das ganze war also eine Sackgasse, einen bestimmten Datensatz über ein Kombinationsfeld zu finden.
Habe momentan überhaupt keine Vorstellung wie ich die Suchanfrage realisieren soll.
Dabei meine ich nicht eine SQL Anweisung. Die wäre leicht zu erstellen.
Meine Zielsetzung: Der User soll nicht selber die Suchkriterien eingeben - z. B. Name; Schmidt, Vorname: Peter, Geb.: 22. 12. 1999, sondern sie aus einer Liste auswählen können. Nach der Auswahl soll dann der entsprechende Datensatz im Formular angezeigt werden. Allerdings: auf ein Listenfeld möchte ich aus Platzgründen im Formular verzichten.
Ich befürchte allerdings, dass das so in Base nicht zu realsieren ist oder gibt es doch eine Lösung?

Du hast einfach nicht komplett gelesen, was ich beschrieben habe: Kombinationsfeld und Listenfeld unterscheiden sich überhaupt nicht von dem Platz, den sie einnehmen. Du musst lediglich beim Listenfeld einstellen, dass es aufklappbar ist.

Den Code, den Du für das Kombinationsfeld geschrieben hast kannst Du genauso für das Listenfeld nutzen. Macht bei vielen Spalten aber einfach keinen Sinn. Da gehört als 2. Element eben die ID dazu.

Die entsprechende Variante hat die einfach Datenbank, die ich hier eingestellt habe. Mir rätselhaft, weshalb die bei Dir nicht funktioniert. Was für eine LibreOffice-Version benutzt Du denn?

Ich habe die Beispieldatenbank noch einmal überarbeitet, damit auch die Datumsansicht funktioniert.