我已经多次遇到这个问题,并且直到现在都能够解决它。万能的搜索引擎也没有帮助我。
问题是,当我从 ADODB 记录集填充列表框或组合框时,所有十进制数据元素在框中都不可见,例如以下内容(conn 是 ADODB 连接):
Private Sub GetFilteredRecords()
Dim strSQL As String
Dim arr As Variant
'create the SQL
strSQL = "SELECT * FROM vwStandard_Fee2"
'execute the SQL and fill the rs ( rsFiltered )
Set rsFiltered = conn.Execute(strSQL)
'Apply recordset to the listbox on the form
If Not (rsFiltered.EOF = True And rsFiltered.BOF = True) Then
arr = rsFiltered.GetRows()
With lbDeeper
.ColumnCount = rsFiltered.Fields.Count
.List = TransposeArray(arr)
End With
With cbDeeper
.ColumnCount = rsFiltered.Fields.Count
.List = TransposeArray(arr)
End With
End If
End Sub
上面包含 6 列 Ids(都显示 Type = Variant/Decimal),其中包含的值由于某种奇怪的原因都没有“显示”。只有字符串和日期列正常显示,小数在那里但为空!
这里有一些片段:
现在,如果是组合框,当我选择该列表项时,如果它们的列是 BoundColumn,我可以获得一列的值,但只能在组合框的值中(所以仍然不在列表中)。
我最初的解决方法是在添加到列表框/组合框之前将它们转换为字符串值,但是在这种情况下,我想直接将查询结果链接到 Box.List 而不查看详细信息。因此,我正在寻找解决方案而不是解决方法。
简而言之:由于某种奇怪的原因,我的数字字段项默认不可见。解决方法是使项目字符串值。我现在正在寻找解决此错误/问题的方法:
- 这是什么原因造成的?
- 如何解决?