我正在尝试使用Excel宏在MySQL数据库中选择行。连接似乎工作正常,但出现VBA 3001错误
(Microsoft Visual Basic 3001参数的类型错误,或超出可接受范围,或彼此冲突)
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim oConn As ADODB.Connection
Set oConn = New ADODB.Connection
oConn.Open "DRIVER={MySQL ODBC 5.2 Unicode Driver};" & _
"SERVER=localhost;" & _
"DATABASE=talar;" & _
"USER=root;" & _
"PASSWORD=root;" & _
"Option=3"
strSQL = "SELECT * FROM ots where Estado in (2,3)"
rs.Open SQLStr, Cn, adOpenForwardOnly, adLockReadOnly
Dim myArray()
myArray = rs.GetRows()
oConn.Close
已安装MySQL ODBC 5.2 Unicode驱动程序,MySQL服务运行正常,我正在使用Excel 2010,Windows7。有人有什么想法吗?谢谢!
最佳答案
实际上,您遇到了两个问题,使用Option Explicit
会更容易发现这两个问题。
两者都在这一行:
rs.Open SQLStr, Cn, adOpenForwardOnly, adLockReadOnly
您的SQL字符串变量为
strSQL
,而连接对象为oConn
。因此,将代码行更改为:rs.Open strSQL, oConn, adOpenForwardOnly, adLockReadOnly
关于mysql - 错误3001 Excel VBA MySQL选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31190784/