带有 ADODB 记录集的 MS Access ListBox 列属性创建错误 424 需要对象

Posted

技术标签:

【中文标题】带有 ADODB 记录集的 MS Access ListBox 列属性创建错误 424 需要对象【英文标题】:MS Access ListBox column property with ADODB Recordset creates error 424 Object Required 【发布时间】:2017-03-18 20:49:15 【问题描述】:

我正在 MS Access 中构建一个带有列表框的简单表单,我想在其中显示存储在 mysql 服务器表中的数据。我希望在列表框中显示两列。

我可以使用 additem 属性显示第一列,但第二列抛出运行时错误消息 424 Object Required。

我已经在网上和我的书中搜索了几个小时,但我无法弄清楚。 有什么问题?

Private Sub cmdSuchenVerantwortlich_Click()

Dim rsAuswahl As New ADODB.Recordset
Dim i As Long

If pConnectDB.State = adStateClosed Then
    modConnectDB.Connect_To_DB
End If

Me.lstAuswahl.RowSourceType = "Value List"

'Clear Listbox
For i = Me.lstAuswahl.ListCount - 1 To 0 Step -1
    Me.lstAuswahl.RemoveItem i
Next i


With rsAuswahl
    .ActiveConnection = pConnectDB
    .CursorType = adOpenStatic
    .CursorLocation = adUseClient

    .Open Source:="select MATNR, AUSNAHME from Ausnahmeliste where VERANTWORTLICH = '" & Me.cboVerantwortlich & "' "


    Do Until .EOF
        Me.lstAuswahl.AddItem .Fields("MATNR").Value
        Me.lstAuswahl.Column(1, Me.lstAuswahl.ListCount - 1) = .Fields("AUSNAHME").Value

        .MoveNext
    Loop

    .Close
End With


End Sub

代码Me.lstAuswahl.Column(1, Me.lstAuswahl.ListCount - 1) = .Fields("AUSNAHME").Value 抛出错误消息。

MATNR和AUSNAHME的MySQL表中的数据类型是varchar。

当我将鼠标悬停在.Fields("MATNR").Value 上时,我可以看到预期值,将鼠标悬停在.Fields("AUSNAHME").Value 上时,我也可以看到预期值。所以数据是,但有什么问题?

感谢大家的帮助。

【问题讨论】:

【参考方案1】:

要使用列表框的“AddItem”方法添加值,您需要连接值,用逗号分隔,因此分隔字符串如下:

确保您的列表框的列数设置为 2,或者您希望显示的列数。

Me.lstAuswahl.AddItem .Fields("MATNR").Value & "," & .Fields("AUSNAHME").Value

如果你只是添加几条记录,这可能没问题,但如果你要显示很多行,最好将数据传输到访问中的本地表,然后将列表框直接绑定到要访问的本地表/查询。

【讨论】:

它有效,非常感谢您的提示。顺便说一句,它不能用逗号作为分隔符,而是用分号。我可能会用本地表来实施您的建议。

以上是关于带有 ADODB 记录集的 MS Access ListBox 列属性创建错误 424 需要对象的主要内容,如果未能解决你的问题,请参考以下文章

从 MS Access VBA 通过 ODBC 进行 MySQL 查询:ADODB 异步执行不起作用

MS ACCESS:打印基于记录集而不是 record_ID 的报告

将 Access 报表的记录源设置为 ADODB 记录集

当表有 42 个字段时,为啥 .NET 中的 MS Access adodb 在字段计数中返回 34?

在 MS Access (VBA) 中使用 ADODB 将非 ASCII 插入 MySQL 数据库时出现“不正确的字符串值”,但重试有效

MS Access/ADO AddNew 方法不附加记录