2017-03-18 51 views
0

我正在MS Access中創建一個簡單的窗體,其中我想顯示存儲在MySQL服務器表中的數據的列表框。我想要兩列顯示在列表框中。MS Access ListBox列屬性與ADODB Recordset創建錯誤424對象需要

我能夠使用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上我也可以看到預期值。所以數據是這樣的,但是有什麼不對?

感謝任何人的幫助。

回答

0

添加使用列表框中的「的AddItem」法的價值觀,你需要連接的值,用逗號分隔,所以分隔字符串如下:

請確保您的列表框的列數設置到2,或者你想要顯示的列數。

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

如果你只添加幾條記錄,這可能是好的,但如果你要顯示很多行,它也許最好將數據傳輸到本地表的訪問,然後綁定你的列表框直接到表/查詢本地進行訪問。

+0

它的工作原理,非常感謝小費。順便說一下,它不能用逗號作爲分隔符,而是使用分號。 我可能會用本地表來實現你的建議。 – Daniel