I'm trying to query an Access database and return values based on what is in my spreadsheet.
Based on Running an Access Query from Excel, here is what I have:
Sub testdb()
Dim con As ADODB.Connection
Dim cmd As ADODB.Command
Dim prm As ADODB.Parameter
Dim rs As ADODB.Recordset
Set con = New ADODB.Connection
Set cmd = New ADODB.Command
With con
.Provider = "Microsoft.ACE.OLEDB.12.0"
.Open "D:\Users\*****\Documents\Database2.accdb"
End With
With cmd
.ActiveConnection = con
.CommandText = "SELECT qx FROM Table1 WHERE ID = [MyID]; "
.CommandType = adCmdStoredProc
.Parameters.Append cmd.CreateParameter("MyID", adChar, adParamInput, Size:=14)
.Parameters("MyID") = "ANBMaleNS21216"
End With
Set rs = New ADODB.Recordset
rs.Open cmd
Do Until rs.EOF
Debug.Print rs.Fields("ID").Value
rs.MoveNext
Loop
rs.Close
con.Close
Set cmd = Nothing
Set rs = Nothing
Set prm = Nothing
Set con = Nothing
End Sub
When it gets to the line rs.Open cmd
it errors out
"Run-time error '-2147217900 (80040e14)':
Expected query name after execute.