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

如何在Access窗体中实现文件夹内Word文档内容搜索并展示至ListBox

实现Access窗体中Word文档内容搜索功能

你当前的代码仅实现了文件名匹配搜索,要改为搜索Word文档内部内容,需要借助Word对象模型读取并检索文档内容,以下是修改后的完整方案:

前置准备

先在Access的工具->引用中勾选对应版本的Microsoft Word xx.x Object Library,确保能调用Word相关对象。

修改后的VBA代码

Private Sub searchbox_Change()
    Dim FileName As String
    Dim SearchKey As String
    Dim wordApp As Object
    Dim wordDoc As Object
    Dim docPath As String
    Dim folderPath As String
    
    ' 清空列表框
    Me.SOPList.RowSource = ""
    SearchKey = Trim(Me.searchbox.Text)
    
    ' 目标文件夹路径
    folderPath = "\\page\data\NFInventory\groups\CID\SOPs\"
    
    ' 若搜索关键词为空,直接返回
    If SearchKey = "" Then Exit Sub
    
    ' 创建Word应用对象(后期绑定,兼容不同Office版本)
    On Error Resume Next
    Set wordApp = CreateObject("Word.Application")
    On Error GoTo 0
    If wordApp Is Nothing Then
        MsgBox "无法启动Word应用,请检查是否安装Office", vbExclamation
        Exit Sub
    End If
    wordApp.Visible = False ' 后台运行,不显示Word窗口
    
    ' 遍历文件夹下所有docx文件
    FileName = Dir(folderPath & "*.docx", vbNormal)
    Do While Len(FileName) > 0
        docPath = folderPath & FileName
        On Error Resume Next
        ' 以只读模式打开文档,避免锁定
        Set wordDoc = wordApp.Documents.Open(docPath, ReadOnly:=True, AddToRecentFiles:=False)
        On Error GoTo 0
        
        If Not wordDoc Is Nothing Then
            ' 在文档全文中搜索关键词
            With wordDoc.Content.Find
                .Text = SearchKey
                .MatchCase = False ' 不区分大小写
                .MatchWholeWord = False ' 不限制整词匹配
                .MatchWildcards = False
                If .Execute Then
                    ' 找到关键词,添加文件名到列表框
                    Me.SOPList.AddItem FileName
                End If
            End With
            ' 关闭文档,不保存任何修改
            wordDoc.Close SaveChanges:=wdDoNotSaveChanges
            Set wordDoc = Nothing
        End If
        ' 取下一个文件
        FileName = Dir()
    Loop
    
    ' 退出Word应用,释放内存
    wordApp.Quit
    Set wordApp = Nothing
End Sub

关键说明

  • 对象绑定:代码用后期绑定(CreateObject)适配不同Office版本,若已添加Word引用,可改为前期绑定(Dim wordApp As Word.Application)提升性能。
  • 错误处理:添加基础捕获逻辑,避免文件锁定、Word未安装等场景导致程序崩溃。
  • 资源清理:每次操作后关闭文档、释放对象,最后退出Word应用,防止后台残留Word进程。
  • 搜索参数:可按需调整Find对象参数,比如设置MatchWholeWord = True匹配整词,或MatchCase = True区分大小写。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 19:15:35