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

如何在Word VBA中使用GetObject读取Access查询数据?

在Word VBA中通过GetObject读取Access查询数据的解决方法

你遇到的错误原因是:Access的Queries集合返回的是QueryDef对象,它仅存储查询的定义逻辑,并不直接包含查询返回的记录数据——这和你之前读取窗体数据的逻辑不同,窗体的记录集是直接可访问的,因此直接通过Queries("CommentSearch")![AbbrevTit]访问字段会触发不支持属性/方法的错误。

要读取查询数据,你需要基于目标查询打开一个Recordset对象,通过记录集来访问实际数据,修正后的代码如下:

Dim app As Object, rs As Object, tx As String
' 获取已运行的Access应用实例
Set app = GetObject(, "Access.Application")
' 基于目标查询打开记录集
Set rs = app.CurrentDb.OpenRecordset("CommentSearch")
' 检查记录集是否有数据
If Not rs.EOF Then
    ' 读取指定字段的值
    tx = rs!AbbrevTit
    ' 将内容插入当前Word文档
    Selection.TypeText Text:=tx
End If
' 关闭记录集释放资源
rs.Close
' 释放对象引用
Set rs = Nothing
Set app = Nothing

额外说明

  • 无需添加专门的查询相关引用,使用后期绑定(将对象声明为Object)可以兼容不同版本的Office。
  • 如果需要读取查询中的多条记录,可以用循环遍历记录集:
    Do While Not rs.EOF
        tx = rs!AbbrevTit
        Selection.TypeText Text:=tx & vbCrLf ' 每条记录后换行
        rs.MoveNext
    Loop
    
  • 确保Access中的CommentSearch查询确实包含AbbrevTit字段,且查询本身能正常返回数据(可以在Access中先运行查询验证)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 16:22:37