Entwickler-Ecke
Datenbanken - 2 Datenbank Felder in Combobox anzeigen lassen
Ace87 - Di 26.09.06 09:22
Titel: 2 Datenbank Felder in Combobox anzeigen lassen
Wie kann ich 2 Felder (Name und Vorname) aus der Datenbank auslesen lassen und nebeneinander in eine Combobox einfügen??
zum Hintergrund
habe eine Tabelle mit dein spalten ID(Primärschlüssel), Name, Vorname und ect.
ich will das der Name und Vorname in der Combobox nebeneinander steht
Mit freundlichen Grüßen
David
ZeitGeist87 - Di 26.09.06 09:44
HI!
Kommt drauf an was für Komponenten du verwendest!
Ich geh mal davon aus das du n TQuery-Objekt verwendest und n DBgrid
SQL-Anweisung
1: 2:
| query1.sql.text:= 'Select Name, Vorname from meineTabelle order by Name'; query1.open; |
und dann..
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| var i: integer; ... for i:= 1 to dbgrid1.datasource.dataset.recordcount do begin meinComboBox.items.add(dbgrid1.fields[0].asstring + ', ' + dbgrid1.fields[1].asstring); dbgrid1.datasource.dataset.recordcount; end; |
und schon hast du deinen Personen im Format "Name, Vorname" nach Namen sortiert in der ComboBox.
LG
Stefan
Ace87 - Di 26.09.06 10:08
also habe 3 Name und vornamen gerade in meiner Tabelle
aber es wird nur 3 mal der 3te in die Combobox geschrieben
ZeitGeist87 - Di 26.09.06 10:18
was für komponenten verwendest du?
wie sieht dein statement aus?
Ace87 - Di 26.09.06 10:24
Benutze das normale DBGrid und die normale Combobox aus Delphi 5
ich lass mir alles aus der Tabelle anzeigen
SQL-Anweisung
1:
| select * from T_Bewerber |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm5.FormCreate(Sender: TObject); var i: Integer; begin for i:= 1 to dbgrid1.datasource.dataset.recordcount do begin ComboBox1.items.add(dbgrid1.fields[1].asstring + ', ' + dbgrid1.fields[2].asstring); dbgrid1.datasource.dataset.recordcount; end; end; |
genau wie du nur das ich sie nicht sortieren lasse
ZeitGeist87 - Di 26.09.06 10:32
wah sorry!!!
mein Fehler!!!
in der schleife statt
Delphi-Quelltext
1: 2: 3: 4:
| .recordcount .moveby(1); |
also so
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| var i: Integer; begin for i:= 1 to dbgrid1.datasource.dataset.recordcount do begin ComboBox1.items.add(dbgrid1.fields[1].asstring + ', ' + dbgrid1.fields[2].asstring); dbgrid1.datasource.dataset.moveby(1); end; end; |
Sorry!!!
Ace87 - Di 26.09.06 10:37
musst dich doch nicht entschuldigen
ich muss mich bedanken funktioniert super
vielen dank^^
hansa - Di 26.09.06 12:11
Lass das doch direkt die DB machen :
SQL-Anweisung
1:
| SELECT VORNAME||', '||NACHNAME AS NAME_OUT |
Spendiere der Combobox ein kleines Dataset und schreibe ins SelectSQL diese eine Zeile rein und fertig.
Klabautermann - Di 26.09.06 12:54
Hallo,
warum der Umweg über das DBGrid?
Hier eine kleine Alternatife um die Daten aus dem Query in das Combobox Feld zu bekommen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| query1.sql.text:= 'Select Name, Vorname from meineTabelle order by Name'; query1.open; while not query1.eof do begin meinComboBox.items.add(query1.FieldByName('Vorname').AsString + ' ' + query1.FieldByName('Nachname').AsString); query1.Next; end; |
Das Funktioniert natütlich auch, wenn du die Felder von der Datenbank vereinen lässt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| query1.sql.text:= 'SELECT VORNAME||', '||NACHNAME AS NAME_OUT'; query1.open; while not query1.eof do begin meinComboBox.items.add(query1.FieldByName('NAME_OUT').AsString); query1.Next; end; |
Gruß
Klabautermann
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!