我正在尝试从 VBA 调用 mySQL 存储过程。存储过程在 mySQl 中运行良好,但我无法让它将记录集复制到 excel 中的目标单元格中。在这个简单的测试工作之后,我还想让 VBA 代码复制一个单元格(例如sheet4.cells(5,1))并使用复制的值作为查询的调用过程的参数。我将不胜感激任何帮助。
Private Sub MySQL_Click()
Dim sSQL As String
Dim rs As ADODB.Recordset
Dim cn As ADODB.Connection
Dim cmdObj As ADODB.Command
Set cn = New ADODB.Connection
cn.Open "DRIVER={MySQL ODBC 5.3 Unicode Driver};" & _
"SERVER=192.168.0.1;" & _
"DATABASE=enviroland;" & _
"USER=enviro_land;" & _
"PASSWORD=enviro_land;" & _
"Option=3"
sSQL = "CALL test_proc();"
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open sSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText
Sheet2.Range("A1:A1").CopyFromRecordset rs
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
最佳答案
尝试使用参数 adCmdStoredProc
将命令设置为存储过程:
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open sSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdStoredProc
关于mysql - 从 VBA 调用 mySQL 存储过程 (Excel 2013),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28218581/