Mehrere Spalten in Listenfeld anzeigen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Mehrere Spalten in Listenfeld anzeigen

Re: Mehrere Spalten in Listenfeld anzeigen

von geogre » Mi, 09.06.2010 12:53

hi,

danke für deine zeit... ich hab nochmal versucht, es mit einer test-db nachzustellen und dabei total zu vereinfachen. ich habe mal alles schritte aufgeschrieben, genauer kann ich es nicht. vielleicht fällt dir (oder jemand anderem) ja ein, wie ich diese anzeige lösen könnte...?

also, ich habe folgendes getan......


--------------------
1. neue datenbank erstellen

2. tabelle in der entwurfsansicht erstellen -> gäste
(spalten gast.id [integer, autowert, primärschlüssel] und gast.name [text])
tabelle in der entwurfsansicht erstellen -> anwesenheit
(spalten id [integer, autowert, primärschlüssel], datum [date] und gast [integer])

3. beziehung erstellen (grafisch)
-> gäste:gast.id - 1:n - anwesenheit:gast

4. ein paar testdaten eintippen (funktioniert)

5. formular erstellen mit assistenten
- tabelle anwesenheit, felder datum und gast
- kein subformular
- anordnung der felder wie tabelle (jeweils drite auswahl [standard])
- dateneingabe -> zeigt existierende daten an

-> ich bekomme ein graues formular das genauso aussieht wie die tabelle anwesenheit in welches ich dann daten eintippen kann.

6. da ich die gäste (könnten ja hunderte sein) nicht auswendig weiss, wird hier ein listenfeld eingebaut:
- formular bearbeiten -> spaltenkopf gast mit rechts anklicken -> ersetzen durch listenfeld
- rechte maustaste auf spaltenkopf gast -> spalte -> daten -> art des listeninhalts SQL
- listeninhalt: SELECT CONCAT( "gast.id", CONCAT( '-', "gast.name" ) ) FROM "gäste"
(dies hat mich schon unendlich lange gekostet und ich bin so froh dass es funktioniert!!!)

formular speichern

7. nun kann ich im formular in dem in der spalte gast immernoch die nummern (id) angezeigt werden einfach hineinklicken und es geht eine liste auf mit den id's UND den dazugehörigen namen (grossartig!!! - so weiss ich, wer nummer 9 ist.)

!!! jedoch... es bleibt nach getätigter auswahl nur die id in der spalte stehen, die gehört da ja auch rein, verstehe ich auch.
trotzdem möchte ich, dass irgendwie (und dieses WIE ist meine frage) trotzdem der name in dieser tabellenübersicht angezeigt wird.

geht das?

was muss ich tun?

danke :)

Re: Mehrere Spalten in Listenfeld anzeigen

von AndreasJBittner » Mi, 09.06.2010 09:46

Hallo,

hmmm, dann müßte es doch funktionieren. Wenn Beziehungen angelegt sind und Du in Deinem Formular ein Unterformular angelegt hast, sollten doch alle zusammengehörigen Daten angezeigt werden. Oder steckt in Deinem Formular eine andere Abfrage? Das ist hier schön öfter diskutiert worden, daß Formulare eigene Abfragen haben, schau Dir mal den SQL-Code dazu an.

Grüße
Andreas

Re: Mehrere Spalten in Listenfeld anzeigen

von geogre » Di, 08.06.2010 11:54

hi :)

danke für die zeit die du dir nimmst, sorry dass ich es nicht so geschickt ausdrücken kann...

es ist wie du sagst, ich habe eine tabelle ZEIT und eine tabelle MITARBEITER (es sind natürlich noch mehr, aber es geht ja nur um ein einfaches beispiel).

in der ZEIT sind (u.a.) aus MITARBEITER die IDs (primärschlüssel) per relation (oder so) verknüpft. d.h. in der tabelle stehen dort nur zahlen.

daher habe ich ein formular mit dem assistenten gemacht, welches im prinzip wie die tabelle ZEIT selbst aussieht, da es darauf basiert, nur dass es grau ist.

um die dateneingabe einfacher zu machen habe ich dort nun ein listenfeld eingerichtet, d.h. wenn ich in dem formular einen datensatz eingebe und in die spalte für MITARBEITER klicke (in der ja nur die ID steht), geht dort ein kleines fenster auf und ich kann direkt aus der mitarbeitertabelle einen auswählen. angezeigt werden in diesem listenfeld (?) dank concat-befehl die ID UND der name.

wenn ich nun meine auswahl getroffen habe, steht in der formular-tabelle jedoch NUR noch die ID (die ja auch in die entsprechende spalte gehört).

mein anliegen ist aber, dass dort auch der NAME steht, da ich es dann viel übersichtlicher finde...

was könnte ich noch für informationen liefern um das noch detaillierter zu beschreiben...?

danke für hilfe!
viele grüße,
_geogre

Re: Mehrere Spalten in Listenfeld anzeigen

von AndreasJBittner » Di, 08.06.2010 11:38

Hallo Geogre,

jetzt hast Du das Gleiche noch einmal in anderen Worten beschrieben, ohne wesentliche Informationen zu liefern.
Also, ich vermute mal folgendes: Du hast Tabelle 1 (Mitarbeiter meinethalben), dort gibt es auch eine ID (autoincrement, primary key), in Deiner Tabelle 2 muß es dann eine Spalte MA_ID geben, in der die ID aus der Tabelle1 abegelegt wird. Unter MySQL nennt man das Foreign Key, in OOo kannst Du das über Beziehungen anlegen. Dann weiß die DB, welche Daten es für Mitarbeiter 1 aus der Tabelle 2 nehmen muß. In den Eigenschaften dazu kann man noch festlegen, ob löschen, update etc. kaskadiert - also durchgereicht - wird.
Wenn das so da ist, dann müßten in Deinem Formular alle Daten zu einer bestimmten ID angezeigt werden. Und wenn sie es nicht tun stimmt entweder etwas mit Deinen Tabellen nicht oder mit dem Formular - aber da kann ich aufgrund Deine Angaben nur raten.

Grüße
Andreas

Re: Mehrere Spalten in Listenfeld anzeigen

von geogre » Di, 08.06.2010 11:12

hallo andreas,

danke erstmal für deine antwort ;)

also, ich versuche es nochmal:

ich habe ein formular, in welches daten für eine tabelle eingegeben werden können. diese daten beziehen sich zum teil auf andere tabellen. ich erfasse so etwas wie arbeitszeit in tabelle a und in diesem formular will ich jeweils einen menschen zu bestimmten zeiten zuordnen. das formular sieht aus wie eine graue tabelle und ich kann einfach daten da hineinschreiben. bei den menschen kommt nur die ID aus der menschen-tabelle hinein, und diese auswahl wird mit einem listenfeld möglich, in diesem wird mit concat sowohl die ID als auch der dazugehörige name angezeigt.

wenn ich diese auswahl dann treffe, steht in der tabelle aber nur noch die ID, also eine kleine zahl., ich möchte, dass dort auch der name stehenbleibt und ich habe keine ahnung wie ich das bewerkstelligen soll. denn eigentlich enthält die entspr. spalte nunmal nur die ID, ich hätte aber gerne, dass die dazugehörigen daten in diesem formular aus der anderen tabelle mit angezeigt werden.

danke für ideen dazu!

Re: Mehrere Spalten in Listenfeld anzeigen

von AndreasJBittner » Di, 08.06.2010 11:00

Hallo Geogre,

nee, so richtig habe ich Dein Problem nicht verstanden bzw. nicht, wieso Dir dieser Thread nicht hilft.

Grüße
Andreas

Re: Mehrere Spalten in Listenfeld anzeigen

von geogre » Di, 08.06.2010 10:10

also irgendwie hat das anmelden nur in einem einzelnen browsertab funktioniert... komsich. also, die frage war von mir :)

Re: Mehrere Spalten in Listenfeld anzeigen

von tobydom » So, 21.03.2010 19:51

supie.
danke vielmals.

Re: Mehrere Spalten in Listenfeld anzeigen

von Barlee » So, 21.03.2010 19:28

stimmt, es müssen einfache Hochkommas sein. Ich hab's korrigiert

Gruß Barlee

Re: Mehrere Spalten in Listenfeld anzeigen

von tobydom » So, 21.03.2010 19:19

hi
vielen Dank für die Antwort.
das mit den verschachtelten CONCATs funktionert nur mit Datenfeldern. Sobald ich in die "" eine andere Zeichenfolge, wie zB Leerzeichen, Kommata o.ä. setze, gehts nicht.

???

Re: Mehrere Spalten in Listenfeld anzeigen

von Barlee » So, 21.03.2010 18:04

Hallo Toby,

entweder mit einem verschachtelten CONCAT

Code: Alles auswählen

SELECT CONCAT( "Vorname",CONCAT(', ', "Nachname" )), "Mitarbeiter-ID" FROM "tabelle1"
oder so

Code: Alles auswählen

SELECT "Vorname"||', '||"Nachname" , "Mitarbeiter-ID" FROM "tabelle1"
Gruß Barlee

Re: Mehrere Spalten in Listenfeld anzeigen

von tobydom » So, 21.03.2010 17:43

hi Barlee,
vielen Dank,
es hat geklappt.

Kannst Du mir auch noch sagen, wie ich zwischen die mit CONCAT verbundenen Werte ein Leerzeichen, Komma oder ähnliches kriege?

Re: Mehrere Spalten in Listenfeld anzeigen

von Barlee » So, 14.03.2010 17:45

Hallo toby,

unter Eigenschaften / Listenfeld / Daten unter "Datenfeld" hast Du Mitarbeiter-ID angegeben, oder?
Probier mal, die abgefragte ID Spalte an zweite Stelle zu nehmen

Code: Alles auswählen

SELECT CONCAT( "Vorname", "Nachname" ), "Mitarbeiter-ID" FROM "tabelle1"
Gruß Barlee

Mehrere Spalten in Listenfeld anzeigen

von tobydom » So, 14.03.2010 17:31

Hallo zusammen,
ich habe folgende Situation: 2 Tabellen wie folgt:
tabelle 1:
Mitarbeiter-ID
Nachname
Vorname

tabelle2:
Sunden-ID
MA-ID
Datum
Stundenzahl

Nun möchte ich in einem Formular die Daten in der tabelle 2 eingeben.
Dazu möchte ich mit einem Listenfeld den Mitarbeiter anhand seines Vor- und Nachnamens auswählen, in tabelle2 soll aber nur die entsprechende ID gespeichert werden.

Ich habe verschiedene Beiträge hier gefunden, die beschreiben, dass man in den Eigenschaften unter 'Daten' SQL auswählen soll und dann mittels einer Selectabfrage und CONCAT die Daten aus der der tabelle1 'entnehmen' soll. Über das angegebene 'Datenfeld' und das 'Gebundene Feld' wird angegeben, wo die Daten in tabelle2 hingespeichert werden.

Leider funktioniert das bei mir nicht. Im Listenfeld wird beim Auswählen nur die Mitarbeiter-ID angezeigt, nicht aber Name und Vorname.
Ich habe folgende Varianten ausprobiert, doch beide funktionieren nicht.
Select "Mitarbeiter-ID", "Nachname" FROM "tabelle1"
und
SELECT "Mitarbeiter-ID", CONCAT( "Vorname", "Nachname" ) FROM "tabelle1"

Kann mir jemand weiterhelfen?

Danke,
toby

Nach oben