如何使用mysql连接ms excel-2007。

时间:2014-07-30 14:33:55

标签: mysql excel excel-vba excel-2007 export-to-excel vba

如何将excel-2007与mysql连接起来。我在Windows 7,64位。使用excel-2007 32位和mysql 5.1版,32位。任何人都可以帮我如何在excel文件中导入我的mysql表数据。提前谢谢。

3 个答案:

答案 0 :(得分:7)

要将您的excel-2007(或任何版本)与您的mysql连接,您需要ODBC驱动程序。请从经过身份验证的链接下载正确的ODBC驱动程序

http://dev.mysql.com/downloads/connector/odbc/

请确保根据您的计算机位架构下载正确的.msi或zip文件。您需要确保您的Mysql在32位或64位上运行。请点击此链接查看

MySQL: check what version : 32 bit or 64 bit?

此后请确保您的excel-2007为32位或64位。对于此打开的excel文件,启动任务管理器并检查“进程”选项下的位体系结构。 enter image description here

在我的情况下,我使用的是Windows7 64位,excel是32位,mysql也是32位

所以我从这个链接下载了Windows(x86,32位),MSI安装程序

http://dev.mysql.com/downloads/connector/odbc/

现在非常重要的一步: 为了在64位Windows计算机上使用32位ODBC驱动程序,必须使用32位ODBC管理程序配置它,通过正常的Windows菜单选项无法看到它。可以在C:\ Windows \ SysWOW64目录中找到32位操作的实用程序。 我们需要将SysWOW64目录添加到系统路径,如下所示

 1. Click on start menu, right Click on My Computer -> Properties -> Advanced system settings
 2. Choose Advanced Tab -> Environmental Variables -> System Variables 
 3. Select and edit the PATH variable. Prefix the PATH list with 'C:\Windows\SysWOW64;'!

enter image description here

截至目前为已安装的ODBC驱动程序设置了正确的路径,现在我们需要创建用于在excel和mysql之间进行链接的DSN(数据源名称)。 现在打开“控制面板”并单击“管理工具”菜单项以开始安装新数据源。选择“数据源ODBC”,这是添加新用户数据源的位置。单击对话框右侧的“添加”按钮。 现在按下“添加”按钮后,如果能够在“新建创建数据源”中看到“已安装的驱动程序”,则会弹出如下enter image description here

然后,如果您按照此链接进行excel和mysql之间的链接,那就很好了。

http://blog.mclaughlinsoftware.com/microsoft-excel/accessing-to-mysql/

如果您无法找到已安装的驱动程序,则新建数据源的弹出窗口将如下所示

enter image description here

如果您的已安装的驱动程序未在那里列出,请不要惊慌。 访问位于' C:\ Windows \ SysWOW64 \ odbcad32.exe'的ODBC管理员实用程序。

在' C:\ Windows \ SysWOW64'中搜索odbcad32.exe。目录

enter image description here

现在双击搜索结果的第二个选项" odbcad32"

enter image description here

现在点击添加按钮,选择MySQL ODBC 5.3 ANSI Driver,点击完成

In pop up window enter your details e.g. Data Source Name = MySQLExcel
Description = MySQL Excel Connector/ODBC
Server = localhost
Username and password of mysql, and name of the database.

点击测试,如果一切正常,那么你得到一个确认"连接成功" enter image description here

在测试之后,您将返回到第一个屏幕,在该屏幕中您应该看到已添加MySQLExcel数据源名称。单击“确定”按钮以取消对测试的肯定。

现在要设置从mysql导入到excel的数据,打开excel,单击Data Ribbon。单击“从其他来源”按钮。在下拉菜单中,单击“从数据连接向导”项,该项将启动“数据连接向导”。

从数据源列表中选择其他/高级项目。单击“下一步”按钮继续。

从OLE DB提供程序列表中选择Microsoft OLE DB Provider for ODBC Drivers项。单击“下一步”按钮继续。

在“数据链接属性”对话框中选择“连接”选项卡。在项目#1下,从下拉框中选择数据源名称(DSN)(在上一个语句中设置)。在项目#2下,输入mysql的用户名和密码。在项目#3下,选择数据库。enter image description here

点击测试连接以确保一切正常。

enter image description here

然后,单击“数据链接属性”对话框中的“确定”按钮。

选择表名并单击下一步按钮

enter image description here

现在点击完成按钮。 数据导入向导已完成最后一步。现在,您必须将数据导入现有工作表或新工作表。

enter image description here

现在按确定按钮。你的mysql数据将在excel文件中。最终回复看起来像这样。enter image description here

答案 1 :(得分:4)

我正在加入@Anil Chahal答案:

按照@Anil Chahal的描述进行配置后,可以使用以下代码将数据从MySql提取到Excel中。

Function runQuery()
Dim cn As Object
Dim rs As Object
Dim strSql As String
Dim strConnection As String

Set cn = CreateObject("ADODB.Connection")

'Set your DB particulars
strConnection = "Data Source=MySQLExcel;Driver={MySQL ODBC 5.5.25a Driver};Server=" & _
                "localhost" & ";Database=" & "your-db-name" & _
                ";Uid=" & "your-user-name" & ";Pwd=" & "your-password" & ";"

    cn.Open strConnection
'Set your MySql query, i used "Select" query
    strSql = "SELECT * from Table-Name;"

    Set rs = cn.Execute(strSql)

'In case of "Select query" set your range to show records
'In case of "insert/edit/delete query" exclude next two lines
    Worksheets("SearchResults").Range("a4:xfd1048576").ClearContents
    Range("b4").CopyFromRecordset rs

'close the connection
    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing

结束功能

答案 2 :(得分:0)

我使用DAO连接Excel(2007)和我的数据库(通常是MS Access)。

为此,您需要:

将Microsoft DAO 3.6对象库添加到VBAProject引用(即工具─►引用)。

代码看起来像这样:

Sub MySub() 
  Set Db = OpenDatabase("C:\MyDB.mdb") 
  Set rst = Db.OpenRecordset(" SELECT * FROM MyTable") 
  ' output 
  Sheets.Add 
  With ActiveSheet.Cells(2, 1) 
     rec_QTY = .CopyFromRecordset(rst) 
  End With 
  rst.Close 
  Db.Close 
End Sub

或者如果您想执行特定命令:

Sub MySub_single_command()
  Set Db = OpenDatabase("C:\MyDB.mdb")
  Db.Execute (" DELETE * FROM MyTable;")
  Db.Close
End Sub

欢呼声, 麦克