これで、VBAのListBoxにADODB.Recordsetを割り当てようとしています。エラーが発生しました:「入力したオブジェクトは有効なレコードセットプロパティではありません」ここで間違っていますか?VBA入力したオブジェクトが有効なレコードセットプロパティではありません
注:adoConnは有効で、コード内の他の場所に設定されています。
Private Sub Form_Load()
' Error Management
On Error GoTo ErrHandler:
Dim adoRS As New ADODB.Recordset
Dim sqlStmt As String
' Create the SQL statement
sqlStmnt = "SELECT GroupName FROM tblGroups"
' Execute the statement
adoRS.Open sqlStmnt, adoConn
' Add items to the lstGroups
If (adoRS.RecordCount <> 0) Then
Set lstGroups.Recordset = adoRS
End If
' Clean up
adoRS.Close
Set adoRS = Nothing
Exit Sub
ErrHandler:
' Clean up
If (adoRS.State = adStateOpen) Then
adoRS.Close
End If
Set adoRS = Nothing
If Err <> 0 Then
MsgBox Err.Source & "-->" & Err.Description, , "Error"
End If
End Sub
これは、誰でもアクセス13分の2010でこの問題に遭遇その場合はADOが更新
Public Sub openConnection()
' The path to the database
Dim strDBPath As String
strDBPath = "C:\Users\Vincent\****\****\"
' The database name to connect to
Dim strDBName As String
strDBName = "Permissions_be.accdb"
' Full path to the database
Dim strDBFull As String
strDB = strDBPath & "\" & strDBName
' Instantiate an ADO object
Set adoConn = New ADODB.Connection
' Connect to database
With adoConn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.Mode = adModeShareDenyNone
.Open (strDBPath & strDBName)
End With
End Sub
を開いている方法です。 - リストボックスを値リストに設定します。 - その後、レコードセットをVBA側のループに
' Add items to the lstGroups
If (adoRS.RecordCount <> 0) Then
Do While Not adoRS.EOF
' This is how to add two columns to one listbox if you need only
' one then put only the (adoRS.Fields(0))
lstGroups.AddItem (adoRS.Fields(0) & ";" & adoRS.Fields(1))
adoRS.MoveNext
Loop
lstGroups.Requery
End If
私はそれがより多くのことを知っていると付け加えました1つの行がこの非常に曖昧なエラーを引き起こす可能性があります。しかし、あなたのソリューションを試してみたら、コンパイルエラー - >メソッドまたはデータメンバーが見つかりません – Maxs728
あなたのリストボックスの後にドットを押すと、あなたのレコーセットはintelisenseになりますか? –
はい、私はそうですが、それはオプションではありません..もしこれがアクセス2010にあり、2013と互換性がある必要がある場合は – Maxs728