【发布时间】:2011-02-18 18:52:50
【问题描述】:
我想在 Excel 中编写一个将写入 mysql 数据库的宏。有人可以帮我开始吗?
【问题讨论】:
我想在 Excel 中编写一个将写入 mysql 数据库的宏。有人可以帮我开始吗?
【问题讨论】:
您可以使用连接字符串和 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
【讨论】:
Compiler Error: User-defined types not defined 在线 Dim cn As ADODB.Connection 有什么问题?
strSQL = "INSERT INTO [ODBC;DSN=DSNName;].NameOfMySQLTable " _ & "Select AnyField As NameOfMySQLField FROM [Sheet1$];" 这是 slick ...我从来不知道。
写入 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。
【讨论】: