我想在Excel中编写一个写入mysql数据库的宏。有人可以让我开始这个吗?
答案 0 :(得分:7)
您可以使用连接字符串和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
答案 1 :(得分: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。