du kannst der listbox kein bereits geöffnetes recordset zuweisen
probier mal folgende methoden aus und schreib, ob du deinem ziel etwas näher gekommen bist ;-)
1)
Dim db As DAO.Database
Dim rst As DAO.Recordset
strQuery = "SELECT 0, '<Ausw>' AS Produkt " & _
"FROM tbProdukte " & _
"UNION " & _
"SELECT Produkt_ID, ProduktArt " & _
"FROM tbProdukte " & _
"WHERE ..."
Me!cbErweiterProdukte.RowSourceType = "Table/Query"
Set db = CurrentDb
Set rst = db.OpenRecordset(strQuery, dbOpenDynaset)
Set Me!cbErweiterProdukte.Recordset = rst
' bzw. bei Standard Listenfeld einfach
' Me!cbErweiterProdukte.RowSource = strQuery
2)
Dim lstStrFill as String
#Ein ADO.Recordset rs öffnen und dann:
lstStrFill=rs.GetString(adClipString, ColumDelimeter:=";", _
RowDelimeter:=";")
'Es entsteht eine Liste mit Einträgen, getrennt durch ";"
Form.Controls("DeineListBox").RowSourceType="Value List"
Form.Controls("DeineListBox").DeineListBox.RowSource=lstStrFill
rs.Close
3)
rs.MoveFirst
h = 1
With UserForm1
Do Until rs.EOF
.NameDeinesListenfeldes.AddItem (rs.Fields(0))
.NameDeinesListenfeldes.Column(1, h) = rs.Fields(1)
.NameDeinesListenfeldes.Column(2, h) = rs.Fields(2)
.NameDeinesListenfeldes.Column(3, h) = rs.Fields(3)
h=h+1
rs.MoveNext
Loop