PDA

Vollständige Version anzeigen : Daten ins Listfeld


rr20051112
04.05.2011, 20:01
Hallo Acces Freunde,


ich habe eine Abfrage , die diverse Felder aus 2 Tabellen liest, where Bedingung ist die Kontonummer, wie bekomme ich das Ergebnis in ein Listfeld?

bei Öffnen eines Formulares übernehme ich ein Parameter X , der mit dem Inhalt der Selektion vorbesetzt ist.

Dim STR As String
Dim qd As DAO.QueryDef

X = Forms![frmBelege].OpenArgs

Set qd = CurrentDb().CreateQueryDef("Abfragename") 'für Abfrage
STR = " SELECT KONTEN.KV, KONTEN.NAME, BELEGE.Belegdatum, KONTEN.Aktiv"
STR = STR + " FROM KONTEN RIGHT JOIN BELEGE ON KONTEN.ID = BELEGE.IDK "
STR = STR + " WHERE (((KONTEN.KV)= " & "'X'" & ")"
STR = STR + " AND ((KONTEN.Aktiv)=-1)) "
STR = STR + " ORDER BY BELEGE.Belegdatum DESC;"

qd.SQL = STR
Set qd = Nothing


Jemand eine Idee?

Ich könnte auch die Abfrage in ein Unterformular einbinden, nur ist dann die Frage wie ich den Parameter richtig beschicke und aus dem aufrufenden Formular übernehme und ein entsprechendes Ergebnis bekomme.


LG Ralf

achtelpetit
04.05.2011, 20:20
Am einfachsten gibst Du dem Listenfeld die Abfrage als RowSource:

Dim STR As String

X = Forms![frmBelege].OpenArgs

STR = " SELECT KONTEN.KV, KONTEN.NAME, BELEGE.Belegdatum, KONTEN.Aktiv"
STR = STR & " FROM KONTEN RIGHT JOIN BELEGE ON KONTEN.ID = BELEGE.IDK "
STR = STR & " WHERE (((KONTEN.KV)= " & "'X'" & ")"
STR = STR & " AND ((KONTEN.Aktiv)=-1)) "
STR = STR & " ORDER BY BELEGE.Belegdatum DESC;"

Me!DeinListenfeld.RowSource = STR

Textverkettungen macht man gewöhnlich mit & und nicht mit +. In diesem speziellen Fall ist es gleichgültig, in anderen Fällen ist es ein Unterschied!

rr20051112
04.05.2011, 21:07
ja. Super. Klappt, danke.