mysql - 从 VBA 调用 mySQL 存储过程 (Excel 2013)

标签 mysql vba excel stored-procedures

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

相关文章:

c# - C# 中的 MySQL utf8_general_ci

vba - 如何在 Excel 中使用 for 循环创建命名范围?

excel - 从 Excel 文档在 Word 中自动创建表格

vba - 如何从 VBA 中的路径中删除姓氏

python - 如何使用 openpyxl 'format cells'?

php - 如何将一个 unicode 字符转换为第二个看起来完全相同的字符?

mysql - 如何为Django(MySQL后端)中的每个表设置不同的存储引擎?

php - MySQL - 设置外键以请求正确数据的新手

excel - Excel中定义的行数和列数

excel - 用一个函数识别两个不同的列