分享

在VBA中使用SQL必须要知道的几点

 xfshok 2017-04-25

设置SQL所需的VBA环境:

第一步:ALT+F11快捷键,打开VBA界面

第二步:选择“工具”--“引用”,勾选“MicrosoftActiveX Data Objects 2.8 Library”,并单击“确定”按钮。

利用ADO连接数据库:

语法如下:Connection.Open 连接文本,用户名,密码,选项

其中:

连接文本是一个包含有关连接信息的字符串;

用户名是一个字符串,包含建立连接时要使用的用户名称;

密码是一个字符串,包含建立连接时要使用的密码;

选项是一个整型数值,确定是在建立连接之后(同步)还是在建立连接之前(异步)返回本方法。-1(默认值)代表同步打开连接,16代表异步打开连接。

利用ADO执行SQL查询之后,在EXCEL中输出结果:

语法:单元格对象.CopyFromRecordsetAdoconn.Execute(SQL语句)

其中,单元格对象是结果输入的起始点(即结果数据最左上角的单元格),SQL语句为执行查询的SQL语句。但需要注意的是:利用该输出方式将结果写入工作表中,其结果是没有标题行的

ADO连接不同的数据库(摘选,具体的请见利用ADO组件进行数据库连接笔记处)

连接EXCEL2007以上的工作簿,参考代码如下:

strConn ='Provider=Microsoft.ACE.OLEDB.12.0;' & _

'Data Source=' & ThisWorkbook.Path &Application.PathSeparator & _

'数据库.xls;ExtendedProperties=””Excel 12.0;HDR=YES””;'

连接EXCEL2003,参考代码如下:

strConn ='Provider=Microsoft.ACE.OLEDB.4.0;' & _

'Data Source=' & ThisWorkbook.Path &Application.PathSeparator & _

'数据库.xls;ExtendedProperties=””Excel 8.0;HDR=YES””;'

其中,HDR=YES表示数据中的第一行为列(字段)的名称,如果省略该参数或HDR=No,那么将认为表中全是数据,无列名。

对于带有密码保护的EXCEL工作簿,ADO无法打开,只有当该工作簿已经打开时,ADO才可以正常连接。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多