将格式化的 Word 文本复制到 Access

Copying formatted Word text into Access

我正在尝试改编此页面 中的 VBA,以便循环遍历所有选定的文件或特定文件夹中的所有文件。这可能吗?谢谢

您可以执行以下两项操作之一:不要拆分文件选择器函数和导入函数,或者 return 文件选择器函数中的集合或数组。

我会选择后者的教育价值:

选择文件

Public Function FilesToOpen() As Collection

    ' This function will essentially allow you to browse to MS-Word document
    ' and then store the path of that file for use in the GetWordContent function

    Dim fDialog As Object 'Office.FileDialog
    Dim varFile As Variant

    Set fDialog = Application.FileDialog(3)
    Set FilesToOpen = New Collection
    With fDialog
        .AllowMultiSelect = True
        .Title = "Select Word document to import"
        .Filters.Clear
        .Filters.Add "Word files", "*.doc?"

        If _
            .Show = True _
        Then
            For Each varFile In .SelectedItems
                FilesToOpen.Add varFile
            Next
        End If
    End With
End Function

并打开它们

Private Sub cmdGetWordData_Click()

    ' This subroutine runs on your command button; it will call both the FileToOpen function and GetWordContent subroutine
    ' to retrieve the text contents of your chosen MS-Word Document.
    ' It will then store both the path the text contents of of your chosen MS-Word Document in 2 fields in a table in Access.

    ' NOTE: this code assumes that your Access database has:
    ' - a table called tblWordDump
    ' - a memo text field in this table called WordDocDataSrc to store the path of MS-Word file imported
    ' - a memo text field in this table called WordDocData with the TextFormat property set to "Rich Text",
    '   which will store the text and text formating of the MS-Word file imported

    Dim collFiles As Collection
    Dim strWordContent As Variant

    ' Select files via File Dialogue

    Set collFiles = FilesToOpen
    Dim oneFile As Variant

    ' Conditionals when a file was or wasn't selected

    If _
        collFiles.Count <> 0 _
    Then
        For Each oneFile In collFiles

            DoCmd.GoToRecord , , acNewRec

            GetWordContent CStr(oneFile)
        Next oneFile

        MsgBox "Import Successful", vbInformation Or vbOKOnly

    Else

        MsgBox "No File Selected", vbExclamation Or vbOKOnly

    End If

End Sub

请注意,我试图尽可能少地更改并且没有对 GetWordContent 函数进行任何操作。