【发布时间】: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
如何连接excel-2007和mysql。我在 Windows 7、64 位。使用 excel-2007 32 位和 mysql 版本 5.1 , 32 位。任何人都可以帮助我如何在 excel 文件中导入我的 mysql 表数据。提前致谢。
【问题讨论】:
标签: mysql excel excel-2007 export-to-excel vba
要将您的 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 文件中。最终响应如下所示。
【讨论】:
我正在添加@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
结束函数
【讨论】:
我使用 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
干杯, 迈克
【讨论】: