未绑定组合框:所选文本未显示

Posted

技术标签:

【中文标题】未绑定组合框:所选文本未显示【英文标题】:Unbound Combo box: Selected text not showing 【发布时间】:2016-06-06 10:44:31 【问题描述】:

我有一个未绑定的组合框,我在表单加载时填充它。我想要的是当用户选择组合框文本时,我应该能够访问它的值。在这种情况下,选定的项目文本在选择时会消失,但我可以访问它的值。下面是组合框设置。我应该怎么做才能使组合框显示选定的文本,同时我应该能够访问选定的值?

ID Process
1 a
2 b
3 c
列数 - 2 列宽 - 0",1"

行源类型 - 表/查询

Private Sub Form_Load()

Dim strSQL As String
strSQL = "Select ID as F1 ,  process_name as F2 from tblProcess"

Set objRecordset = New ADODB.Recordset
objRecordset.Open strSQL, objConnection, adOpenKeyset, adLockOptimistic

If Not (objRecordset.EOF And objRecordset.BOF) Then
    Set Me.cmbProcess.Recordset = objRecordset
End If

objRecordset.Close
Set objRecordset = Nothing
End Sub

选择后出现组合框

组合框属性

【问题讨论】:

更改组合框的颜色属性:背景颜色和/或前景色。 我试过改变颜色,但它是一样的。当我在选择后尝试访问组合框的值和文本时......“(Form_frmAudit.cmbProcess.Text)”文本返回空字符串,而值“(Form_frmAudit.cmbProcess.value)”返回正确值。 您是在谈论用户看到的内容还是组合的.Text 属性返回的内容? 用户看到的和 .text 属性都是空字符串。 不要将ADO Recordset 分配为组合的Recordset,而是创建一个传递查询来获取相同的数据并将该查询用作组合行源。 【参考方案1】:

如果您跳过整个 objRecordset 代码块,而是在定义 strSQL 之后插入行,它是否可以正常工作:

Me.cmbProcess.RecordSource = strSQL

【讨论】:

以上是关于未绑定组合框:所选文本未显示的主要内容,如果未能解决你的问题,请参考以下文章

组合框多选以在 Access 2016 中的文本框中显示所选项目

MS ACCESS - 如何在更改事件中获取未绑定组合框的当前列值

Access 使用未绑定的组合框查找和添加记录

返回未绑定访问组合框的先前值

MS Access 2010:未绑定的组合框不会更新

DataGridComboxBox未显示初始状态