ADO 访问 Excel 数据 实现代码及源码下载
发布时间:2023-07-03 20:11:20
我们都知道可以像操作数据表一样使用 ADO 来访问 Excel 文档, 在 Excel 2003 及以前的版本是使用的Microsoft.Jet.OLEDB.4.0 引擎(简称 Jet 引擎)来访问 Excel 数据,但随着 Offic 2007 的推出, 微软发布了最新的 Microsoft.ACE.OLEDB.12.0 引擎(简称 ACE 引擎). 这个新的数据引擎不仅可以访问 Excel 2007 文件类型, 还兼容支持 Excel 97-2003 文件类型,下面就来简单来说一说这两个引擎。
连接字符串的写法
不同的 ADO 引擎访问 Excel 数据有不同的连接字符串的写法,Excel 2003 版本和 2007 版本的写法分别如下(其中的 [Excel-FullName] 为你需要访问的 Excel 文件全名):
Excel2003 及以前版本的写法:
Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & [Excel-FullName] & _"; Extended Properties='Excel 8.0; HDR=Yes; IMEX=1'"
Excel2007 及以后版本的写法:
"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & [Excel-FullName] & _"; Extended Properties='Excel 12.0; HDR=YES; IMEX=1'"
特别说明:
HDR=YES 表示第一行是列名而不是数据; HDR=NO 则正好与前面的相反, 系统默认为 HDR=YES。
IMEX ( IMport EXport mode )有三种模式:
0 表示输出模式: 此时 Excel 文档只能用来做“写入”用途。
1 表示输入模式: 此时 Excel 文档只能用来做“读取”用途。
2 表示链接模式(完全更新能力): 此时 Excel 文档可同时支持“读取”与“写入”用途。
示例代码:
Option Explicit
Sub btnADO_Click()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim xADOCon As Variant
Dim xADORs As Variant
Dim xSQLStr As String
Dim I As Long
ThisWorkbook.Names.Item("Result").RefersToRange.ClearContents
'创建数据库连接
Set xADOCon = CreateObject("Adodb.Connection")
' 打开数据库连接
' 2007及以后版本
xADOCon.Open "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & ThisWorkbook.FullName & "; Extended Properties='Excel 12.0; HDR=YES; IMEX=1'"
' 2003及以前版本
'xADOCon.Open "Provider=Microsoft.jet.OLEDB.4.0; Data Source=" & ThisWorkbook.FullName & "; Extended Properties='Excel 8.0; HDR=YES; IMEX=1'"
' 设置SQL语句
xSQLStr = "SELECT * FROM [Data_1$] WHERE 姓名='王二' OR 姓名='马五' AND 年龄>30"
' 将SQL语句获得的数据传递给数据集
Set xADORs = xADOCon.Execute(xSQLStr)
' 获得SQL结果的列标题
For I = 1 To xADORs.Fields.Count
ThisWorkbook.Names.Item("Result").RefersToRange.Cells(1, I) = xADORs.Fields(I - 1).Name
Next
ThisWorkbook.Names.Item("Result").RefersToRange.Range("a2").CopyFromRecordset xADORs
'关闭数据库连接
xADOCon.Close
Set xADOCon = Nothing
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
示例文件下载
1文件名称 | 1下载链接 |
---|---|
ADO.zip | http://pan.baidu.com/s/1qWlXQS8 |
ADO 访问 Excel 数据 实现代码及源码下载的下载地址:
猜你喜欢
- 通过给word文档自定义一个好看的封面,可以在一定程度给别人一个好的印象,这篇教程是向脚本之家的朋友分享word2007如何插入系统自带的封
- 跟随 macOS 12.6 正式版,苹果今日发布了 Safari 16 浏览器的正式版更新,为 macOS Monter
- 在word中出现了很多横向,这种横线让读者阅读起来总是觉得很碍眼,那么在word中怎么将word 横线去掉呢?一般我们删除横线的方法就是直接
- 如何在Word 2019中复制和粘贴图像?将图像粘贴到文档中的一种简单方法是将其从其他位置粘贴。按着这些次序:1.在另一个程序中或从网络中选
- ctrl+Q这个组合键不知道大家熟不熟悉,在办公中也是一个很好用的快捷键,可以快速对表格进行多种操作。下面给大家一个个分析ctrl+Q快捷键
- 在用EXCEL中,我们常常用到函数,你知道该如何使用函数吗?下面小编就为大家介绍在excel表格中怎么使用Indirect函数方法,不会的朋
- 今天凌晨,苹果正式发布了iOS 16.2正式版系统更新,此次系统版本更新在修复一些 bug 的同时,还加入了 " 无边记 &quo
- 对数据进行排序并非Excel表格的专利,在Word 2007中同样可以对表格中的数字、文字和日期数据进行排序操作对数据进行排序并非Excel
- 独立式应用程序时,调试其示例加载宏时,代码总是在:If Val(Application.Version) = 9 ThensToolbarF
- 大家不知道的是,我在微软内部工作,已经提前认识Excel2021版新增的几大函数。让我们拭目以待吧!双向连接函数JOIN。= JOIN(连接
- excel是我们常用的办公软件,为了查阅方便,我们会给表格添加一些分组,那么excel怎样创建分组?下面小编带来excel树形节点分组的设置
- 我们在word文档中输入数字或者序列的时候总会遇到遇到除了阿拉伯数字以外的数字,那么如果我们想要在Word文档里输入罗马数字的话该怎么办呢?
- 绘制完成单选按钮以后,我们还需要的就是对excel单选按钮调整设置,比如我们需要设置单选按钮的位置、大小、颜色、样式等。通过对e
- 用word时候。在修改、审阅word文档时,有时需要添加批注,写下笔记等,那么word2007如何设置批注?下面小编就为大家介绍word新建
- 在Excel中经常需要用到公式进行计算,但却不知道其公式的计算原理究竟是什么,而Excel中的公式审核其实可以做到帮助用户研究公式原理,具体
- 在excel中,函数非常多,功能也很强大,只是平时很少用,都不知道。在处理大量数据时,为对应的id设置一个数值,比如是5,这个数值需要同步到
- 一位电脑中安装的是Office 2010的网友发来问题,那就是每次打开word都很慢,而且系统还会提示:安装、进行配置,对word进行重新安
- win10系统发布了很多不同的版本,win10系统是继微软win7系统后逐渐被用户认可和使用的windows操作系统,其中企业版和专业版是最
- 你知道吗?在iOS 15中,苹果新增了一个异地恋必备的SharePlay功能。什么是SharePlay?简单说,就是用户可以在FaceTim
- 制作斜线的表头方法还是很多,下面教大家使用上标和小标的方法制作斜线表头。1.选中【姓名】,点击【格式】-【设置单元格格式】,勾选【下标】;同