2017-07-06 5 views
0

このページからVBAを適用しようとしていますcopy formatted text into access using vba選択したすべてのファイルまたは特定のフォルダ内のすべてのファイルをループします。これは可能ですか?ありがとう。書式付きWordテキストをAccessにコピーする

+0

可能です。あなたの問題は何ですか? filepickerで複数のファイルを選択していますか?ファイルごとに1回実行するコードを修正しましたか?拡張子が.docまたは.docxのフォルダ内のすべてのファイルを選択していますか? –

+0

私は、ファイルごとにそれを再実行するのではなく、複数のファイルに対して繰り返しています。 AllowMultiSelect = Trueを修正しましたが、選択したすべてのファイル、または特定のフォルダ内のすべてのファイルのうち、最も簡単なものに対して実行します。申し訳ありませんが、私はこのすべてにかなり新しいです。ありがとう。 – niawo

答えて

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 fで何もしていない統一。

+0

ありがとうございます。 GetWordContent oneFileで「コンパイルエラー:ByRef引数の型が一致しません」というメッセージが表示されます。 – niawo

+0

ああ、それはちょうどアクセスが厄介である。 'GetWordContent CStr(oneFile)'がする必要があります。それを反映する編集された答え。 –

+0

ありがとうございます。私は今、set collFiles = FilesToOpenでランタイムエラー '424'を取得しています。 – niawo

関連する問題