Listenfeld mit mehreren Werten

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

dirk74
Beiträge: 1
Registriert: Mo, 12.07.2004 19:58

Listenfeld mit mehreren Werten

Beitrag von dirk74 »

Hallo,
ich habe eine Mysql-Datenbank mit den Tabellen "Kunden" und "Kundenautos". Die Kundennautos werden den Kunden über die Kundennr zugeordnet. Um den Komfort zu erhöhen, soll die Kundennr über ein Listenfeld in die Kundenautos-Tabelle eingetragen werden, das seine Werte "kdnr", "nachname", "vorname" aus der Kunden-Tabelle bezieht.
Eine SQL-Abfrage mit concat konnte zwar ein Listenfeld mit den gewünschten Werten in 3 Spalten füllen, es war jedoch nicht möglich, die Kundennr in das Datenfeld einzutragen (auch nicht als gebundenes Feld).
Wer hat eine Idee oder ein ähnliches Problem?

Gruß
Dirk74
heppspr
Beiträge: 2
Registriert: Fr, 19.10.2007 00:28

Re: Listenfeld mit mehreren Werten

Beitrag von heppspr »

Also so ein banales Problem lässt sich mit Access sehr leicht lösen, wie die meisten hier wissen. Ich habe eine ähnliches Problem mit der Anzeige von Nachname, Vorname um dann die ID als Primärkey einzutragen. Eigentlich wäre es sogar besser im Formular auch weiterhin den zugehörigen Namen zur ID zu sehen.
Access scheidet wegen der unverhältnismäßig hohen Kosten im Verhältnis zum Nutzen der kleinen Anwendung aus, in diesem Fall wohl -noch??- leider!
Den Affenzirkus mit zusätzlichen Abfragen vorab und CONCAT umgehe ich jetzt jetzt, indem ich eben gleich für die paar Werte eine dritte Spalte entsprechen erfassen lassen. Diese nutze ich für die Anzeige im Listenfeld und setzte den Wert der ID ins Feld ein. Dieses Feld wird neben dem Listenfeld zusätzlich ins Formular aufgenommen.
Ergebnis: Person: 17 (Person: unsichtbar) Müller, Peter
Wirklich schade, dass diese Selbsverständlichkeit sooo kompliziert ist.
vueloman
*
Beiträge: 15
Registriert: Sa, 10.11.2007 09:14

Re: Listenfeld mit mehreren Werten

Beitrag von vueloman »

Hi!

Die Antwort war eigentlich für hier also nochmal.

In Abfragen lassen sich mit der SQL CONCAT Funktion zwei Felder zusammen fügen. Leider schluckt Base kein 3 oder 4 Felder wi MySql sondern nur immer nur 2. Also muss man die CONCAT befehle verschachteln.
Das kann dann etwa so aussehen:
SELECT ID_Kunde CONCAT(CONCAT("Name", ' - '), "Nachname") AS "NameKomplet" FROM "Kunde"

Ich setze am Schluss meistens noch ein ORDER BY "NameKomplet" um die Liste alphabetisch zu ordnen.

Diesen SQL Code schreibst du in deine Listbox und hast eine den Namen und Nachnamen.

Das zusammenfügen mit & wie bei MS geht in den meisten Datenbanken nicht.

Bei den Listboxen gibt es leider ein kleines problem für das ich im Moment auch noch keine Lösung gefunden habe. Es werden nicht nur die daten gezeigt sondern auch ein leeres Feld wahrscheinlich das offene um neue Daten in die Tabelle zu schreiben macht hier aber keinen Sinn.

Hoffe das es hilft 8)
vueloman
*
Beiträge: 15
Registriert: Sa, 10.11.2007 09:14

Re: Listenfeld mit mehreren Werten

Beitrag von vueloman »

Wenn man SQL [Naticve] benützt kann man auch:
SELECT "ID_Kunde", "Name" || ' - ' || "Nachname" AS "NameKomplet" FROM "Kunde"

Benützen wie in Oracel Datenbanken anstad & wie bei Access ||
jon-bovi
Beiträge: 9
Registriert: Fr, 16.04.2010 18:59

Re: Listenfeld mit mehreren Werten

Beitrag von jon-bovi »

Hallo,
bin neu hier und muss diesen alten Frett nochmal hochholen.
Folgende Frage: wenn eines der Felder "Name" oder "Nachname" leer ist, wird nichts angezeigt. Wie bekomme ich hin, dass zumindest ein Feldinhalt angezeigt wird?

Danke im Voraus
jon
hobby
*
Beiträge: 13
Registriert: Sa, 01.05.2010 19:11

Re: Listenfeld mit mehreren Werten

Beitrag von hobby »

Ich habe ebenfalls eine komplexere Concat-Abfrage für ein Listenfeld (zur Auswahl des jeweiligen Datensatzes) und möchte nun nur die jeweilige ID (Primary Key) an den Rest des Formular übergeben.
Mit gebundenes Feld scheint es ja nicht zu gehen, da ja keine normale Abfrage mit mehreren Tabellenfeldern vorliegt.
Somit kann ich meine Concat-Abfrage eigentlich wieder löschen, da sie nutzlos ist!

Also: Kann Openoffice soetwas nicht? Hat sich in 7 Jahren, in Worten: IN SIEBEN JAHREN wirklich nichts verändert?
Natürlich ist dieses kein Paid-Service Forum, daher stattdessen Anregung zur offenen Kritik:

Wie kann es nur sein, dass hier ständig im Forum immer und immer wieder die gleichen essentiellen Basis-Fragen gestellt werden und es meist nur folgende Antworttypen gibt:
  • 1) Pampige Antwort, man solle gefälligst suchen
    2) "Was fällt dir ein, zu denken, wir würden die Arbeit für dich machen!?"
    3) Umfangreichere Makros nötig
    4) Überhaupt keine Antwort
Mal im ernst Leute, ich bin absolut PRO Opensource und auch Linux, aber.. Da ich nicht subjektiv und unhöflich werden möchte, fehlen mir einfach die Worte es anders auszudrücken!?!?
Systeminfos:
OOo 3.2.0, HSQL, Windows 7 (32bit)
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Listenfeld mit mehreren Werten

Beitrag von DPunch »

Aloha

Es wird schon seinen Grund haben, warum Du die Frage auch nach 7 Jahren noch nicht klären konntest...
entweder weiss es einfach keiner, oder es geht eben einfach nicht.

Meine Antwort ist jetzt:
Ich weiss auch nur, wie man es mit Makros umsetzen kann.
Genau das willst Du zwar anscheinend nicht hören, aber ich hab Dir mal ein auf die schnelle zusammengebasteltes, rudimentäres Beispiel angehängt, wie sowas zumindest mit Makros umzusetzen ist.
Dateianhänge
Improvisiertes_ValueMember.odb
Improvisiertes ValueMember für ListBox
(100.21 KiB) 212-mal heruntergeladen
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Listenfeld mit mehreren Werten

Beitrag von Stephan »

Also: Kann Openoffice soetwas nicht? Hat sich in 7 Jahren, in Worten: IN SIEBEN JAHREN wirklich nichts verändert?
Warum fragst Du das nicht die OOo-Entwickler?
Wir hier sind NICHT das OOo-Projekt sondern lediglich ein privates Forum in welchem sich Nutzer versuchen zu helfen, siehe auch:
viewtopic.php?f=3&t=12975
1) Pampige Antwort, man solle gefälligst suchen
2) "Was fällt dir ein, zu denken, wir würden die Arbeit für dich machen!?"
Bei beiden Dingen erlebe ich es hier im Forum sehr selten das sie unberechtigt wären.
3) Umfangreichere Makros nötig
Hier verstehe ich nicht einmal den Grund der Kritik, denn Makros zu empfehlen ist doch genau ein Teil von möglicher Hilfe.
Mir ist absolut schleierhaft was Du hiermit kritisieren willst, außer ebend Du verwechselst hier das Forum mit dem OOo-Projekt und glaubst die Forumsbeteiligten wollten sich mit Makros quasi 'rausreden', hierzu kann ich mich nur wiederholen:
das Forum hier ist kein Teil des OOo-Projekts, nicht an der Entwicklung von OOo beteiligt oder dafür verantwortlich oder kann Einfluss darauf ausüben, hier ist ein rein privates, unabhängiges Forum, das Anwendern eine technische Plattform bietet Fragen zu OOo zu stellen und zu beantworten.
4) Überhaupt keine Antwort
das dürfte beim Thema "Base" daran liegen das sich nur Wenige damit auskennen. Ich z.B. kenne mich nicht besonders mit Base aus, weil mir Base insgesamt zu rudimentär erscheint, als das es sich bisher für mich gelohnt hätte mich damit eingehender zu beschäftigen.

Mal im ernst Leute, ich bin absolut PRO Opensource und auch Linux [...]
Mal im Ernst, ich nicht, denn derartiger 'Absolutismus' ist nichts für mich und Linux benutze ich persönlich nur selten ...
aber.. [...]
Ja was aber? Wolltest Du sagen weil es ja um OpenSource geht könne es doch wohl nicht sein das Du hier nicht der besten Software der Welt und lauter Übermenschen begegnest?

Falls ja, dann überprüfe Deine Annahmen, denn auch OpenSource-Software ist zunächst nur Software und auch sie wird nur von normalen Menschen gemacht.
Ich treffe diese Einschätzung ganz in Ruhe, denn falls sie kritisch klingt, so kritisiert sie auch mich selbst (der ich in den letzten ca. 6 Jahren einige tausend Stunden ehrenamtliche Arbeit für OPenSource geleistet habe).
Ich bin allerdings ganz entschieden der Meinung das mich mein ehrenamtliches Engagement für OpenSource nicht über andere erhebt nur weil es um OPenSource geht, denn mir scheint auch ehrenamtliches Engagement für z.B. eine Jugendfußballmannschaft oder ehrenamtliche Hilfe in einem Forum für MS Office dem gegenüber gleichwertig und gleich wertvoll.


Gruß
Stephan
Antworten