【问题标题】:How to connect ms excel-2007 with mysql.如何将 ms excel-2007 与 mysql 连接。
【发布时间】:2014-09-22 06:10:30
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    要将您的 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 文件并启动任务管理器并在 Processes 选项下检查您的位架构。

    就我而言,我使用的是windows7 64位,excel是32位,mysql也是32位

    所以我从这个链接下载了 Windows (x86, 32-bit), MSI Installer

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

    现在非常重要的一步: 为了在 64 位 Windows 机器上使用 32 位 ODBC 驱动程序,必须使用 32 位 ODBC 管理器进行配置,这在正常的 Windows 菜单选项中是不可见的。用于 32 位操作的实用程序位于 C:\Windows\SysWOW64 目录中。 我们需要将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;'!
    

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

    如果你按照这个链接链接excel和mysql,那就太好了。

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

    如果您找不到已安装的驱动程序并弹出新创建数据源窗口如下所示

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

    在“C:\Windows\SysWOW64”目录中搜索 odbcad32.exe

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

    现在点击添加按钮并选择 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.
    

    如果一切正常,请点击测试,然后您会收到确认“连接成功”

    测试后,您返回到第一个屏幕,您应该会看到您已经添加了 MySQLExcel 数据源名称。单击“确定”按钮取消对测试的确认。

    现在设置从 mysql 到 excel 的数据导入,打开 excel,单击数据功能区。单击从其他来源按钮。在下拉菜单中,单击 From Data Connection Wizard 项,这将启动 Data Connection Wizard。

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

    从 OLE DB Provider(s) 列表中选择 Microsoft OLE DB Provider for ODBC Drivers 项。单击“下一步”按钮继续。

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

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

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

    选择表名并点击下一步

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

    现在按确定按钮。您的 mysql 数据将在 excel 文件中。最终响应如下所示。

    【讨论】:

      【解决方案2】:

      我正在添加@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
      

      结束函数

      【讨论】:

      • 这已经通过 MS-Office 2010 测试,也适用于更高版本。
      【解决方案3】:

      我使用 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
      

      干杯, 迈克

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-05
        • 1970-01-01
        • 2013-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多