【问题标题】:Excel VBA: writing to mysql databaseExcel VBA:写入mysql数据库
【发布时间】:2011-02-18 18:52:50
【问题描述】:

我想在 Excel 中编写一个将写入 mysql 数据库的宏。有人可以帮我开始吗?

【问题讨论】:

    标签: mysql sql excel vba


    【解决方案1】:

    您可以使用连接字符串和 ADO 连接到 MySQL:

    ''http://support.microsoft.com/kb/246335
    Set cn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")
    
    strCon = "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=MyDB;" _
    & "User=root;Password=pw;Option=3;"
    
    cn.Open strCon
    

    您还可以通过 Jet 驱动程序将 DSN 与 Excel 连接使用:

    Dim cn As ADODB.Connection
    
    ''Not the best way to get the name, just convenient for notes
    strFile = Workbooks(1).FullName
    strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _
        & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"
    
    Set cn = CreateObject("ADODB.Connection")
    
    ''For this to work, you must create a DSN and use the name in place of 
    ''DSNName
    strSQL = "INSERT INTO [ODBC;DSN=DSNName;].NameOfMySQLTable " _
    & "Select AnyField As NameOfMySQLField FROM [Sheet1$];"
    
    cn.Execute strSQL
    

    【讨论】:

    • 谢谢 remou,你能告诉我我将如何执行 sql 语句>?
    • 我已经添加了一些笔记,但我目前没有在这台 PC 上安装 MySQL,所以我正在根据我的笔记工作。上述建议绝不是解决此问题的唯一方法。
    • @Remou: 嘿,我收到错误消息:Compiler Error: User-defined types not defined 在线 Dim cn As ADODB.Connection 有什么问题?
    • @Parth 添加对 Microsoft ActiveX Data Objects x.x Library 的引用 - 从代码窗口中选择 Tools->References 并勾选相关行。
    • +1 strSQL = "INSERT INTO [ODBC;DSN=DSNName;].NameOfMySQLTable " _ & "Select AnyField As NameOfMySQLField FROM [Sheet1$];" 这是 slick ...我从来不知道。
    【解决方案2】:

    写入 mysql 数据库与写入任何其他数据库没有什么不同。

    您将创建一个 ADODB.Connection 对象,使用 appropriate connection string 打开它并使用 .Execute 方法(或 ADODB.Command)执行 sql。

    更多信息请参见http://msdn.microsoft.com/en-us/library/ms807027.aspx

    您必须安装 mysql 访问驱动程序(ODBC 或 OLEDB)并从您的 vba 项目中引用 Microsoft ActiveX Data Objects 2.8。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      • 2011-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多