William Benson (VBACreations.Com)
vbacreations at gmail.com
Thu Aug 25 20:31:00 CDT 2011
Jack,
Try this out ... set a reference to Microsoft Outlook in your Access VBA
project.
Sub GetContentsOfMessages()
Dim ObjOL As Outlook.Application
Dim aFLD As MAPIFolder
Dim Col As Collection
Dim Itm As Object
Dim MySender As String
Dim MyDate As Date
Dim MySubject As String
Dim MyContents As String
Dim ReturnVal
Dim strOutput As String
'Object, returnval As Long
Dim i As Long
Dim fnum As Long
Dim FSO As Object, Mysub As String
Dim objSelection
strOutput = Environ("temp") & "\TempSubject1.txt"
Close #1
fnum = FreeFile
On Error Resume Next
Set ObjOL = GetObject(, "Outlook.Application")
If ObjOL Is Nothing Then
MsgBox "Outlook has to be running - else don't know what folder you want
to look in..."
Exit Sub
End If
Set aFLD = ObjOL.ActiveExplorer.CurrentFolder
Set objSelection = ObjOL.ActiveExplorer.Selection
For Each Itm In objSelection
If TypeName(Itm) = "MailItem" Then
MySender = Itm.SenderEmailAddress
MySubject = Itm.Subject
MyDate = Itm.ReceivedTime
MyContents = _
MyContents & vbCrLf & vbCrLf & _
"Sender: " & MySender & vbCrLf & _
"Received: " & MyDate & vbCrLf & _
"Subject: " & MySubject & vbCrLf & _
"Message: " & vbCrLf & _
Itm.Body
End If
Next
Set FSO = CreateObject("Scripting.FilesystemObject")
Kill strOutput
Err.Clear
Open strOutput For Output Access Write As #fnum
If Err.Number = 0 Then
Print #fnum, MyContents
Close #fnum
On Error GoTo 0
' ReturnVal = Shell("C:\Program Files\Windows NT\Accessories\wordpad.exe "
& """" & strOutput & """", 3)
ReturnVal = Shell("Notepad.exe " & """" & strOutput & """", 2)
Debug.Print ReturnVal
Else
MsgBox "Could not create an output file '" & strOutput & "'" & Chr(13) &
Err.Description
End If
End Sub