编写Excel VBA工具,连接并操作Mysql 数据库。
系统环境:
OS:Win7 64位 英文版
Office 2010 32位 英文版
1、VBA连接MySql前的准备
Tools--->References..---->引用
勾选Microsoft ActiveX Data Objects 2.8 Librarys和Microsoft ActiveX Data Objects Recordset 2.8 Librarys
下载上图中Windows(x86,32-bit),Zip Archive版本,在测试中,使用64位的版本无法连接到Mysql
把下载上述文件拷贝放到资源管理器里,放到合适位置,解压,点击里面的install.bat批处理文件。
从“控制面板”--->“管理工具”---->ODBC,打开以后,从这个里面无法看到Mysql的驱动,实际上使用的是下面32位的ODBC驱动
C:WindowsSysWOW64文件夹下的odbcca32.exe
3.连接示例
SubTestConnectTodb()DimconnAsADODB.ConnectionDimrsAsADODB.RecordsetSetconn =NewADODB.ConnectionSetrs =NewADODB.Recordsetconn.ConnectionString ="Driver={MySQL ODBC 5.3 Unicode Driver};Server=localhost;Port=3306;Database=db_hptms;Uid=root;Pwd=123456;OPTION=3;"conn.Openrs.Open"select fdEmpNo,fdEmpName from tbUser", connWithThisWorkbook.Worksheets("MySqlData").Visible =True.Range("a1:b1").Value = Array("EmpNo","EmpName").Range("A2").CopyFromRecordset rs.ActivateEndWithrs.Close:Setrs =Nothingconn.Close:Setconn =NothingMsgBox"处理完毕", vbOKOnly,"提示信息"EndSub
上述示例经过测试,可以正常连接到Mysql数据库,这里注意使用的ODBC连接的版本是32位,在测试中,使用64位的,始终无法正常打开连接。
② 如何在Excel中使用SQL语言实现数据查询
1、选中表格后单击右键选择“定义名称”。
2、单击后,出现命名对话框。
3、这里将表1和表2分别命名为Table1和Table2。
4、选择上方的“数据”选项卡,选择“自其他来源”下的“来自Microsoft Query ”选项。
5、在弹出的对话框中选择Excel Files*那一项,并且把对话框下面的“使用“查询向导”创建/编辑查询”勾掉。
6、点击“确定”,便出现“选择工作簿”的对话框,这里选择并顷包含表1和表2的工作表xxx.xlsx。
7、点击确定后之后弹出添加表的对话框。
8、点击确定后之后弹出添加表的对话框。
9、输入SQL语句的按钮,弹出漏友输入SQL语句的对话框 输入SQL,看绝搜陆到筛选出来的数据表。
10、将筛选出来的数据表再返回至Excel工作表当中,选择菜单中的“文件”——“将数据返回Microsoft Excel”。
③ 如果excel中想使用sql语句怎么使用
excel中使用sql语句,使用快捷键alt+d+d+d调出链接表的对话框,选择你要连接的表,然后确定,在编辑查询命令文本中要写sql语句,sql在excel中使用的是select语句。其实使用select主要是对数据的查询和汇总,汇总时输入聚合函数。总之有许多的知识需要学习,你可以在网上查阅一下sql
select语句的具体知识。