You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerPoint VBA能否用连接字符串读取Word表格生成Recordset?

用ACE OLEDB读取Word表格生成Recordset并执行SQL查询

可以通过Microsoft ACE OLEDB驱动实现从Word文档表格生成Recordset,并且支持SQL查询,和你读取Excel的代码逻辑完全统一,仅需修改连接字符串部分。

连接字符串与完整代码示例

以下是适配Word文档的VBA代码,结构和你现有的Excel读取代码一致:

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sql As String
Dim wordFilePath As String

wordFilePath = "C:\Your\Path\To\Document.docx" '替换为你的Word文档路径

Set cn = New ADODB.Connection
With cn
    .Provider = "Microsoft.ACE.OLEDB.12.0"
    '核心连接字符串:Word文档的扩展属性设置为Word 12.0 Xml
    .ConnectionString = "Data Source=" & wordFilePath & ";" & _
                        "Extended Properties=""Word 12.0 Xml;HDR=YES"";"
    .Open
    
    '示例SQL查询:读取第一个表格中姓氏为SMITH的记录
    sql = "SELECT * FROM [Table1] WHERE LASTNAME = 'SMITH'"
    Set rs = .Execute(sql)
    
    '遍历Recordset处理数据
    Do While Not rs.EOF
        Debug.Print rs("LASTNAME").Value & ", " & rs("FIRSTNAME").Value
        rs.MoveNext
    Loop
    
    rs.Close
    .Close
End With

Set rs = Nothing
Set cn = Nothing

关键说明

  1. 表格引用规则:
    • Word中的第一个表格用[Table1]表示,第二个用[Table2],以此类推
    • 如果设置HDR=YES,驱动会将表格第一行识别为列名;若表格无表头,设置HDR=NO,列名将自动命名为F1、F2等
  2. 驱动兼容性:确保安装了Microsoft Access Database Engine 2010 Redistributable(包含ACE 12.0驱动),32/64位版本要和你的Office版本匹配
  3. 文档状态:连接时Word文档必须处于关闭状态,否则会出现文件锁定错误

对比循环读取的优势

  • 支持SQL的筛选、排序、聚合等操作,无需手动遍历判断
  • 代码结构和Excel读取逻辑完全一致,仅需替换数据源路径和连接字符串的扩展属性
  • 对于大型表格,通过OLEDB读取的速度远快于逐行逐列循环

内容的提问来源于stack exchange,提问作者thardy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 06:12:24