MS Access - 自动填充在组合框中不起作用

Posted

技术标签:

【中文标题】MS Access - 自动填充在组合框中不起作用【英文标题】:MS Access - Autofill not work in combo box 【发布时间】:2018-01-15 03:26:03 【问题描述】:

我创建了一个组合框,数据将从 SQL Server 填充,但我发现此组合框的自动填充功能不起作用。我的代码有什么问题吗?谢谢。

   Dim oCon As ADODB.Connection
   Dim oRec As ADODB.Recordset
   Dim strQuery As String

   Set oCon = New ADODB.Connection
   Set oRec = New ADODB.Recordset

   oCon.Open "connection string"

   strQuery = "select statement"

   oRec.Open strQuery, oCon, adOpenKeyset, adLockOptimistic

   Me.cbxUser.RowSourceType = "Table/Query"
   Set Me.cbxUser.Recordset = oRec

2018 年 1 月 16 日更新

看来问题是通过使用ComboBox.AddItem 方法解决的。但是不知道为什么我使用Set Me.cbxUser.Recordset = oRec时自动填充功能不起作用

Set oRec = oCon.Execute(strQuery)
Me.cbxUser.RowSourceType = "Value List"

Do While Not oRec.EOF
    Me.cbxUser.AddItem (oRec("UserID"))
    oRec.MoveNext
Loop

GIF file

【问题讨论】:

那张截图并没有说太多。我不知道你期待在那里看到什么 Combobox Auto Expand 属性是 Yes? 以前从未见过组合框 Recordset 属性。可以只使用 strQuery 设置 RowSource 属性,而不是打开记录集对象。 嗨@June7,我也尝试过使用RowSource,但收到此错误消息:此表单或报告中指定的记录源“选择语句”不存在。 嗨@SergeyS。我已经将此属性设置为“是” 【参考方案1】:

RowSource SQL 字符串必须包含子句“DISTINCT”才能使所有业务正常运行(我在其他论坛的另一个开发人员的回复中读到了这个有趣的语句,我试过了,它可以工作) 此外,不要尝试将列表框转换为组合框。组合框 AutoExpand 和 LimitToList 的属性不会使组合按预期工作。

【讨论】:

以上是关于MS Access - 自动填充在组合框中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在 Access 的组合框中自动选择一个值

更新查询在带有 MS Access 的 VB.NET 中不起作用

批量插入后选择在 MS access 数据库中不起作用

在 ms 访问中不起作用的日期之间的比较

从 MS Access 数据库行填充 VB 组合框

MS access 2007 使用组合框填充图片