我正在尝试使用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/

10-12 12:52
查看更多