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中,如果要绘制简单的表格,其实方法还是挺多的。今天,我们就从工具栏和菜单栏出发,来学习一下如何绘制出简单的表格。Word方法一:利
- xbox360无线手柄可以连接到电脑上作为游戏操控器使用,但是很多对电脑系统不是很清楚的小伙伴不知道如何去连接,那么下面就和小编来看看具体方
- 很多用户在整理word文档是时候都需要在word中输入数学公式,但是按照论文的格式要求,需要对word文档中的数学公式进行编号,本小编结合自
- 3D LUT Creator Pro for Mac是最新的程序,具有用于数字图像和视频的专业颜色分级的独特工具。3D LUT Creato
- 在Excel中录入好数据以后经常需要用到复制表格的功能,因为这个功能可以不用让录入者重复录入一些数据,具体该操作呢?下面是小编带来的关于ex
- 8月15日早间消息,微软面向Fast Ring通道会员推送了Windows 10新预览版Build 17738。此次,微软没有带来任何功能更
- 现在很多公司都开始使用人脸识别来做考勤记录。有的公司使用的是钉钉人脸识别,有的公司使用的中控考勤刷脸。有个公司找IT小哥,说要安装个刷脸考勤
- 很多人还是喜欢玩一些怀旧的老游戏,不过由于软硬件更新速度太快,尤其是系统导致很多老游戏不兼容,这样的话我们需要怎么办,下面与大家分享个比较不
- 今天微软再次透露在商业领域的相关特性,Win10 Store 允许批量购买应用和提供私人区域,并承诺将随明年发布的Windows 10预览版
- 垃圾是失去使用价值、 无法利用的废弃物品,是物质循环的重要环节。是不被需要或无用的固体、流体物质。在人口密集的大城市,垃圾处理是一个令人头痛
- 虚拟机所有数据都是保存为一个文件的这只会频繁读写硬盘。长期虚拟机对硬盘损害比较大,虚拟机实际是多重写入(常规写入和特定写入)会对写入进行记录
- WPS文字是我们常用的办公软件之一,因其简单、实用,所以深受广大用户的喜爱。当我们编辑文档过程中,有时需要在文档中插入表格,对某些数据进行比
- 在使用Wins10系统的IE11浏览器的时候,发现有些网页无法正常的打开,用其它第三方软件也无法修复好,这时我们可以通过重新安装Win10的
- 如果Word文档的默认字体是雅黑字体,输入中文的双引号时显示为与英文双引号一样的直引号,不能分出左右引号。如果Word文档的默认字体是雅黑字
- Word在Normal.dot模板文件中存储默认信息,如果该模板文件被损坏,可能会引发无法打开Word文档的错误。此时,请创建新的Norma
- 如何使用巧影制作镜像人物分身效果?巧影是一款免费的视频编辑软件,用户可以使用其编辑视频。想要使用巧影的镜像功能制作出一个和自己一模一样的人,
- 许多用户在使用剪映Windows版的时候都遇到了非常多的问题,毕竟剪映Windows属于新的产品,还是存在许多问题。最近有小伙伴提问字幕的识
- Adobe illustrator,常被称为“AI”,借助这款行业标准的矢量图形软件,您可以制作适用于印刷、Web、视频和移动设备的徽标、图
- 如果计算机连接到电视显示器,该怎么办?如果我想在电视上看电视节目却又没有喜欢看的好节目怎么办?我们可以直接在计算机上下载或播放视频,然后将计
- 一般大部分人在Windows7/Vista共享文件为了方便都去掉了密码保护的共享。这样在共享文件夹时就需要添加Everyone或