2017-03-18 2 views
0

MS Accessで、MySQL Serverテーブルに格納されているデータを表示するリストボックスを使用して簡単なフォームを作成しています。私は2つの列をリストボックスに表示します。ADODB Recordsetを使用したMS Access ListBox列のプロパティでエラー424が発生しましたオブジェクトが必要です

additemプロパティで最初の列を表示できますが、2番目の列は実行時エラーメッセージ424 Object Requiredをスローします。

私はWebで数時間を検索しましたが、私はそれを理解できません。 問題は何ですか?

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メソッド」メソッドを使用して値を追加するには、値を連結する必要があり、これ以下のように区切られた文字列:

はあなたのリストボックスののColumnCountが設定されていることを確認してください〜2、または多くの列を表示することができます。

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

バウンド、あなたはわずか数レコードを追加する場合、これはおそらく大丈夫ですが、あなたは、多数の行を表示しようとしている場合、それはおそらく最良のアクセスにローカルテーブルにデータを転送するために、そしてあなたのリストボックスを直接テーブル/クエリのローカルにアクセスします。

+0

これは、頂きましてありがとうございます。ところで、区切り記号としてカンマではなくセミコロンで動作しました。 私はあなたの提案をローカルテーブルで実装しています。 – Daniel

関連する問題