您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > ExcelVBA操作MySQL
作者Email:858845818@qq.com目录1.ExcelVBA操作MySQL之一——准备工作2.ExcelVBA操作MySQL之二——链接MySQL3.ExcelVBA操作MySQL之三——有关用户名和密码的操作4.ExcelVBA操作MySQL之四——创建数据库和表5.ExcelVBA操作MySQL之五——添加和导入数据6.ExcelVBA操作MySQL之六——查询记录7.ExcelVBA操作MySQL之七——从文本文件导入数据和数据导出至文本文件8.ExcelVBA操作MySQL之八——修改记录9.ExcelVBA操作MySQL之九——删除记录10.ExcelVBA操作MySQL之十——查询示例11.ExcelVBA操作MySQL之十一——有关表的操作12.ExcelVBA操作MySQL之十二——获取数据库模式信息13.ExcelVBA操作MySQL之十三——生成数据透视表14.ExcelVBA操作MySQL之十四——AppendChunk、GetChunk存取文本和图片二进制数据15.ExcelVBA操作MySQL之十五——使用ADODB.Stream作者Email:858845818@qq.comExcelVBA操作MySQL之一——准备工作前段时间学习MySQL,发现网上关于VBA+MySQL的文章不多。现在分享ExcelVBA操作MySQL的代码。欢迎各位网友指正,提供更好的解决方法。从这系列文章可以了解到:ExcelVBA操作数据库的方法ADO的用法MySQL的SQL语句的用法1.MySQL的简介不多说。看维基看百度安装MySQL和myODBCforMySQL。MySQL和myODBCformysql的下载地址:内含MySQL-5.5.12-win32+myODBCforMySQL+MySQL5.0中文版官方说明。当然,可以到官网下载。://dev.mysql.com/downloads/connector/odbc/嫌官网下载麻烦的自己百度谷歌吧。关于myODBCformysql的安装,请看这里作者Email:858845818@qq.com关于MySQL的安装,请看这里的安装的教程网络上到处有。实在嫌麻烦的到此网址下载MySQL和myODBCforMySQL:数据库图形化管理工具不习惯命令行界面的,可以使用Mysql的图形化工具,如MySQLWorkbench、Navicat、SQLLog、EMS.SQL.Manager和HeidiSQL等。个人习惯用Navicat,下载地址:引用ADO对象。引用方法:VBE中工具菜单→引用→选择MicrosoftActivexDataObjects2.8Library和MicrosoftActiveXDataObjectrecordset2.8Library好了,准备到此完毕。总结一下本人的软件环境:WinXPwithSP3MySQL5.5.12MyODBC-3.51.11-2-winMicrosoftExcel2007(兼容模式)MicrosoftActiveXDataObject2.8Library和MicrosoftActiveXDataObjectRecordset2.8Library。++----------++----------++----------++----------++----------++----------++----------++----------++--------ExcelVBA操作MySQL之二作者Email:858845818@qq.com——链接MySQL毫无疑问,操作数据库的第一步是链接。链接字符串主要是给出Driver、Server、DataBase、UID、PWD和Option。下面是简单的链接例子,此处省略了DataBase,根用户root账号的登录密码是123456。PublicSubLinkMySQL()DimConAsADODB.ConnectionSetCon=NewADODB.ConnectionCon.ConnectionString=Driver={MySQLODBC3.51Driver};+_Server=localhost;+_UID=root;+_PWD=123456;+_OPTION=3;Con.OpenIfCon.State=adStateOpenThenMsgBox链接状态:&Con.State&vbCrLf&ADO版本:&Con.Version,vbInformation,EndIfCon.Close:SetCon=NothingEndSub***************如果想写得简单点,也可以写成:PublicSubLinkMySQL()作者Email:858845818@qq.comDimConAsADODB.ConnectionSetCon=NewADODB.ConnectionCon.OpenDriver={MySQLODBC3.51Driver};Server=localhost;OPTION=3,root,123456IfCon.State=adStateOpenThenMsgBox链接状态:&Con.State&vbCrLf&ADO版本:&Con.Version,vbInformation,EndIfCon.Close:SetCon=NothingEndSub************************************************运行的结果如图:提示:1)链接成功后,Connection的State属性为adStateOpen(值1)。2)ConnectionString有关参数参数默认值注释userODBC(onWindows)用于链接至MySQL的用户名。serverlocalhostMySQL服务器的主机名。database默认数据库。作者Email:858845818@qq.comoption0指定MyODBC工作方式的选项。参见下面。port3306如果服务器不是本地主机将要使用的TCP/IP端口。stmt连接至MySQL时将要执行的语句。password服务器上用户账户的密码。socket当服务器是本地主机是将要连接的Unix套接字文件或Windows命名管道。要想选择多个选项,可将它们的值加在一起。例如,将选项设置为12(4+8),就能获得调试功能,但没有信息包限制。其中,UID,用户名,可以写作userID或者user。PWD,用户名的登录的密码,可以写作PassWord。当使用简称时,等号后面的字符不加引号。3)Server数据库服务器的计算机名字,或者IP。如果本机是服务器,设置为Localhost或127.0.0.1。4)OPTION,指定MyODBC工作方式的选项。以下为摘录文字:在Windows平台下,正常情况下,应通过切换连接屏幕上的复选框选择选项,但也能在选项参量中选择它们。下述选项是按照它们在MyODBC连接屏幕上显示的顺序排列的:值描述1客户端无法处理,MyODBC返回列的实际宽度。2客户端无法处理,MyODBC返回受影响行的真值。如果设置了该标志,MySQL将返回“发现的行”取而代之。MySQL的版本必须是3.21.14或更高版本,该功能才能生效。作者Email:858845818@qq.com4在c:\myodbc.log中生成调试日志。它与将MYSQL_DEBUG=d:t:O,c::\myodbc.log放到AUTOEXEC.BAT中的效果相同(在Unix平台下,该文件是/tmp/myodbc.log)。8不为结果和参数设置任何信息报限制。16即使驱动程序可能会给出提示,对出现的问题不予提示。32允许动态光标支持。(在MyODBC2.50中不允许)。64在db_name.tbl_name.col_name中忽略数据库名的使用。128强制使用ODBC管理器光标(实验性)。256禁止使用扩展取数据(实验性)。512将CHAR列填充为全列宽。1024SQLDescribeCol()返回完全合格的列名。2048使用压缩客户端/服务器协议。4096通知服务器忽略函数名之后和“(”之前的空格(PowerBuilder要求这样)。这会使所有的函数名成为关键字。8192用命名管道链接至运行在NT环境下的mysqld服务器。16384将LONGLONG列更改为INT列(某些应用程序不能处理LONGLONG列)。32768从SQLTables返回作为Table_qualifier和Table_owner的用户(实验性)。65536从my.cnf的[client]和[odbc]组读取参数。131072增加一些额外检查(不应需要之,但…)。262144禁止事务。524288允许将查询记录到c:\myodbc.sql(/tmp/myodbc.sql)文件。(仅在调试模式下才能启用)。作者Email:858845818@qq.com1048576不要驱动中的结果进行缓冲处理,而应从服务器读取“mysql_use_result()”。仅对正向光标才能起作用。当你不希望缓冲处理整个结果集时,对于大表处理,该选项十分重要。2097152强制使用正向光标类型。在应用程序设置了默认静态/动态光标类型的情况下,如果希望驱动程序使用非缓冲结果集,那么该选项能够保证正向光标的行为。在下面的表各中,给出了针对各种配置的推荐选项值:配置选项值MicrosoftAccess3MicrosoftVisualBasic3具有很多行的大表2049驱动跟踪生成(调试模式)4查询日志生成(调试模式)524288生成驱动跟踪和查询日志(调试模式)524292具有非缓冲结果的大表3145731提醒:在配置Connector/ODBC时,Advanced的某些选项等效于设置OPTION。作者Email:858845818@qq.com5)个人认为其他比较重要的提示。以下为摘录文字:为什么SELECTCOUNT(*)FROMtbl_name返回错误?这是因为COUNT(*)表达式返回了1个BIGINT,ADO不理解这个大值的含义。选择“将BIGINT列更改为INT”选项(选项值16384)。MyODBC支持动态光标类型吗?是。MyODBC3.51支持动态光标类型以及正向和静态特性。由于性能方面的原因,在默认情况下,驱动程序不支持该特性。你可以启用该特性,方法是,将连接选项标志指定为“OPTION=32”,或在DSN配置中选中“启用动态光标”选项。MyODBC的性能为什么很差,对于相对较小的查询也会导致大量的磁盘动作?MyODBC比其他ODBC驱动程序快很多。缓慢可能是因未使用下述选项造成的:打开“ODBC跟踪”选项。遵循这里给出的指示说明,交叉检查是否未启用该选项。作者Email:858845818@qq.com如上图所示,“ODBC数据源管理器”“跟踪”选项卡的“何时跟踪”选项应始终指向“现在开始跟踪”,而不是“现在停止跟踪”。使用了驱动程序的调试版本。如果你正在使用驱动DLL的调试版本,也会使查询处理变慢。你可以执行交叉检查,
本文标题:ExcelVBA操作MySQL
链接地址:https://www.777doc.com/doc-6125904 .html