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
【问题讨论】:
那张截图并没有说太多。我不知道你期待在那里看到什么 ComboboxAuto Expand
属性是 Yes
?
以前从未见过组合框 Recordset 属性。可以只使用 strQuery 设置 RowSource 属性,而不是打开记录集对象。
嗨@June7,我也尝试过使用RowSource
,但收到此错误消息:此表单或报告中指定的记录源“选择语句”不存在。
嗨@SergeyS。我已经将此属性设置为“是”
【参考方案1】:
RowSource SQL 字符串必须包含子句“DISTINCT”才能使所有业务正常运行(我在其他论坛的另一个开发人员的回复中读到了这个有趣的语句,我试过了,它可以工作) 此外,不要尝试将列表框转换为组合框。组合框 AutoExpand 和 LimitToList 的属性不会使组合按预期工作。
【讨论】:
以上是关于MS Access - 自动填充在组合框中不起作用的主要内容,如果未能解决你的问题,请参考以下文章