具有ADODB Recordset的MS Access ListBox列属性创建错误424对象必需

时间:2017-03-18 20:49:15

标签: mysql access-vba adodb ms-access-2016

我正在MS Access中构建一个简单的表单,其中包含一个列表框,我想在其中显示存储在MySQL Server表中的数据。我想在列表框中显示两列。

我可以使用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 个答案:

答案 0 :(得分:0)

使用" AddItem"添加值列表框的方法,你需要连接值,用逗号分隔,所以分隔字符串如下:

确保列表框的列数设置为2,或者要显示多少列。

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

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