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
我有 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