I am using the code below to retrieve text from Word documents into Access. (Code was posted by RickSpr in thread 707-65952) The code works fine. However, I would like to modify the code so that it also will retrieve text from Word documents in all SubFolders at the same time.
Can someone help me with the modifications, please.
accel45
Public Sub LoadAllDocuments(Folder As String)
Dim strDocFile As String
Dim strDocName As String
Dim strDocText As String
Dim wrd As Word.Application
Dim wdoc As Word.Document
Dim db As DAO.Database
Dim rst As DAO.Recordset
DoCmd.Hourglass True
SysCmd acSysCmdSetStatus, "Loading Word documents"
Set wrd = New Word.Application
Set db = CurrentDb()
Set rst = db.OpenRecordset("Documents")
strDocFile = Dir$(Folder & "\*.doc")
Do While Len(strDocFile) <> 0
strDocName = Left$(strDocFile, InStrRev(strDocFile, ".") - 1)
Set wdoc = wrd.Documents.Open(FileName:=Folder & "\" & strDocFile, _
ReadOnly:=True, AddToRecentFiles:=False, _
Format:=wdOpenFormatAuto, Visible:=False)
strDocText = wdoc.Content.FormattedText
rst.AddNew
rst.Fields("DocName") = strDocName
rst.Fields("DocText") = strDocText
rst.Update
strDocFile = Dir$()
Loop
wrd.Quit
Set wrd = Nothing
ErrorExit:
SysCmd acSysCmdClearStatus
DoCmd.Hourglass False
Exit Sub
ErrorHandler:
MsgBox "Error " & Err.Number & vbCrLf & Err.Description, vbExclamation
Resume ErrorExit
End Sub
Can someone help me with the modifications, please.
accel45
Public Sub LoadAllDocuments(Folder As String)
Dim strDocFile As String
Dim strDocName As String
Dim strDocText As String
Dim wrd As Word.Application
Dim wdoc As Word.Document
Dim db As DAO.Database
Dim rst As DAO.Recordset
DoCmd.Hourglass True
SysCmd acSysCmdSetStatus, "Loading Word documents"
Set wrd = New Word.Application
Set db = CurrentDb()
Set rst = db.OpenRecordset("Documents")
strDocFile = Dir$(Folder & "\*.doc")
Do While Len(strDocFile) <> 0
strDocName = Left$(strDocFile, InStrRev(strDocFile, ".") - 1)
Set wdoc = wrd.Documents.Open(FileName:=Folder & "\" & strDocFile, _
ReadOnly:=True, AddToRecentFiles:=False, _
Format:=wdOpenFormatAuto, Visible:=False)
strDocText = wdoc.Content.FormattedText
rst.AddNew
rst.Fields("DocName") = strDocName
rst.Fields("DocText") = strDocText
rst.Update
strDocFile = Dir$()
Loop
wrd.Quit
Set wrd = Nothing
ErrorExit:
SysCmd acSysCmdClearStatus
DoCmd.Hourglass False
Exit Sub
ErrorHandler:
MsgBox "Error " & Err.Number & vbCrLf & Err.Description, vbExclamation
Resume ErrorExit
End Sub