VBA: 如何将整行记录集添加到表单列表中

VBA: How to add entire row of recordset into form list

我有 Excel VBA 代码在访问数据库和 returns 记录集上运行 select 查询。连接工作正常。当我得到记录集时,我可以很好地访问每一行中的每个字段。这是我目前正在使用的:

Sub accessSelect(sql)
Set rs = New ADODB.Recordset
Call accessConnection

With rs
    .Open sql, conn
End With

Do While Not rs.EOF
    'rtvEditForm.rtvList is a list box.
    rtvEditForm.rtvList.AddItem rs(1) & " - " & rs(2)
    rs.MoveNext
Loop
End Sub

我希望能够将整个 rs 放入 rtvEditForm.rtvList 而不必引用每个字段。我试过 rtvEditForm.rtvList.AddItem rs,但这不起作用,因为我收到 "Type Mismatch" 错误。

看起来很简单,但我就是想不通。我将如何使用我当前的代码来做到这一点?

不需要做任何循环。列表框有一个记录集 属性 可以是 bound to an ADO recordset.

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

Set cn = New ADODB.Connection

Set cn = CurrentProject.Connection

Set rs = New ADODB.Recordset

With rs
    Set .ActiveConnection = cn
    .Source = sql
    .LockType = adLockOptimistic
    .CursorType = adOpenKeyset
    .Open
End With

Set Me.rtvList.Recordset = rs
rtvList.ColumnCount = rs.Fields.Count