PDA

Vollständige Version anzeigen : Einzelne Felder in Liste


Chatnick
22.03.2004, 16:36
Hallo Leute,

ich bin wahrscheinlich nur etwas zu doof:

Ich habe mehrere Datensätze in einem Ado-Recordset und möchte damit eine Liste füllen. Leider kann ich als Rowsource kein Recordset angeben. Möchte aber auch nicht mit SQL-Strings rummachen (viele Filter).

Wie kann ich also auf einzelne Felder einer Liste zugreifen und diese befüllen?

Danke für Eure Hilfe!!

notre
22.03.2004, 18:18
hallo chatnick,

am besten, du füllst die liste per code mit daten.

der rowsourcetype sollte auf "Value List" gesetzt werden.
dann kannst du Werte in die Liste einfügen mit:



liste.rowsource = liste.rowsource & ";" & chr$(34) & listeneintrag(x)
'chr$(34) ist das " - Zeichen. braucht man glaub ich nicht unbedingt


Am Ende solltes du -der form halber - das letzte semikolon entfernen

liste.rowsource = left(liste.rowsource,len(liste.rowsource) -1)


hattest du das gesucht?

gruß
notre

Arne Dieckmann
22.03.2004, 20:26
Warum einfach, wenn es auch kompliziert geht:


Dim strSQL as String
'hier kannst Du sehr flexibel per VBA einen String zusammenbasteln:
strSQL="SELECT Feld1,Feld2, ... FROM Tabelle WHERE ..."
Me!ListenFeld.RowSource=strSQL

Das geht auf jeden Fall schneller, als per Recordset die Liste zu befüllen. Ausserdem gibt es bei der anderen Methode ab einer gewissen Stringlänge Probleme.

notre
22.03.2004, 20:30
Hallo,

DAS hatte ich nicht vorgeschlagen, denn er wollte ja keine SQL-Strings!

gruß
notre

P.S. nix für ungut!

Arne Dieckmann
22.03.2004, 20:38
@notre: Ich wollte Dich damit auch nicht angreifen -hätte es wohl aber unmissverständlicher schreiben sollen- sondern "Chatnick" darauf aufmerksam machen, dass sein Vorhaben (dass Du wunschgemäss gelöst hast) suboptimal ist. Von daher ebenfalls "Nix für ungut!" :)

Chatnick
23.03.2004, 08:26
Danke Euch beiden! Werd mir nochmal überlegen, ob ich das Ganze nicht doch mit SQL-Strings mache. Finde nur String-Operationen immer ein bißchen popelig, wenn es doch schöne Objekt dafür gibt. Naja!

Also vielen Dank nochmal!!