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

时间:2017-07-06 11:01:24

标签: ms-access ms-word access-vba word-vba ms-access-2013

我正在尝试从此页copy formatted text into access using vba调整VBA,以便循环显示所选的所有文件或特定文件夹中的所有文件。这可能吗?感谢。

1 个答案:

答案 0 :(得分:1)

您可以执行以下两项操作之一:不要拆分filepicker函数和导入函数,也不要从filepicker函数返回集合或数组。

我会选择后者来获得教育价值:

选择文件

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功能做任何事情。