You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让ADODB填充的Access列表框显示指定值(如3, Alex)?

Access列表框绑定ADODB记录集后定位指定项的解决方案

当列表框通过ADODB.Recordset绑定数据源后,常规的Column赋值会触发运行时错误,直接设置Value又会因排序导致索引错位,可通过以下方法直接定位到ID=3的"3, Alex"项:

解决步骤及代码

  1. 绑定记录集后保持记录集处于打开状态(不要立即关闭);
  2. 使用ADODB.Recordset的Find方法定位目标记录,列表框会自动同步显示该记录。

修正后的代码示例:

Dim DBSQL As New ADODB.Connection
Dim RSSQL As New ADODB.Recordset

DBSQL.ConnectionString = CONSTRING
DBSQL.Open

' 执行查询并绑定到列表框
SQL = "SELECT [ID], [Name] FROM [Clients] ORDER BY [Name] ASC; "
RSSQL.Open SQL, DBSQL, adOpenKeyset, adLockOptimistic
Set Forms!Trade.Erfassung_Client.Recordset = RSSQL

' 定位到ID=3的记录
RSSQL.Find "[ID] = 3"

' 验证是否找到目标记录,确保列表框焦点同步
If Not RSSQL.EOF Then
    Forms!Trade.Erfassung_Client.SetFocus
End If

' 注意:记录集和连接需在表单关闭或不再使用时再关闭,避免绑定失效
' 可在表单的Close事件中添加关闭代码:
' RSSQL.Close
' DBSQL.Close
' Set RSSQL = Nothing
' Set DBSQL = Nothing

原理说明

列表框绑定ADODB.Recordset时,其显示内容与记录集的当前指针位置直接关联。通过Find方法定位到ID=3的记录后,记录集指针自动指向该行,列表框会同步显示对应的"3, Alex"项,完全不受排序后项位置变化的影响,无需手动计算目标项的索引位置。

内容的提问来源于stack exchange,提问作者aTuring

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 13:28:30