VBA代码翻译与技术咨询:ADODB连接Excel查询数据代码解析
VBA代码中文翻译与技术解析
原代码
Sub testing() Dim cn As Object, rs As Object, output As String, sql As String, qt As QueryTable, bookSheet As Object, sqlstring As String Set cn = CreateObject("ADODB.Connection") With cn .Provider = "Microsoft.ACE.OLEDB.12.0" .ConnectionString = "Data Source=" & "I:\Desktop" & "\" & "WebPropertiesSummaryQuery.xlsm" & ";" & _ "Extended Properties=""Excel 12.0 Xml;HDR=YES""; .Open End With sql = "SELECT * FROM [Sheet2$] WHERE Rating = 'WBS PWT'" Set rs = New ADODB.Recordset ... End Sub
中文翻译版(保留技术术语与代码结构)
Sub 测试程序() ' 声明变量:数据库连接对象、记录集对象、输出字符串、SQL语句字符串、查询表对象、工作表对象、SQL字符串 Dim cn As Object, rs As Object, output As String, sql As String, qt As QueryTable, bookSheet As Object, sqlstring As String ' 创建ADODB数据库连接实例 Set cn = CreateObject("ADODB.Connection") ' 配置连接对象参数 With cn ' 指定OLEDB驱动程序为Microsoft ACE OLEDB 12.0 .Provider = "Microsoft.ACE.OLEDB.12.0" ' 设置连接字符串:指定数据源为I盘桌面的WebPropertiesSummaryQuery.xlsm文件, ' 扩展属性声明为Excel 12.0 Xml格式,且第一行是表头(HDR=YES) .ConnectionString = "Data Source=" & "I:\Desktop" & "\" & "WebPropertiesSummaryQuery.xlsm" & ";" & _ "Extended Properties=""Excel 12.0 Xml;HDR=YES"";" ' 打开数据库连接 .Open End With ' 编写SQL查询语句:从Sheet2工作表中查询所有Rating字段等于'WBS PWT'的记录 sql = "SELECT * FROM [Sheet2$] WHERE Rating = 'WBS PWT'" ' 创建新的ADODB记录集实例,用于存储查询结果 Set rs = New ADODB.Recordset ... End Sub
技术解析
- 变量声明部分:一次性声明了多个适配后续操作的变量,涵盖连接对象、记录集对象、SQL语句容器等,提前为数据访问流程做好资源准备。
- ADODB连接创建:通过
CreateObject("ADODB.Connection")实例化OLEDB连接对象,这是VBA中实现Excel、Access等外部数据访问的核心组件。 - 连接参数配置
.Provider指定驱动为Microsoft.ACE.OLEDB.12.0,该驱动支持访问Excel 2007及以上版本的.xlsx/.xlsm格式文件,兼容性较强。.ConnectionString里的HDR=YES表示将Excel工作表的第一行识别为字段名而非数据行;Excel 12.0 Xml对应xlsm这类带宏的Excel格式,确保驱动能正确解析文件结构。.Open指令执行后,便建立了程序与目标Excel文件的有效通信链路。
- SQL查询语句:用标准SQL语法指定查询规则,
[Sheet2$]是OLEDB访问Excel工作表的标准引用格式,WHERE子句精准筛选出Rating字段值为WBS PWT的记录。 - 记录集初始化:
Set rs = New ADODB.Recordset创建的记录集对象,后续可通过rs.Open sql, cn执行查询并存储结果,方便后续遍历、提取或导出数据。
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

