Kath Pelletti
kp at sdsonline.net
Fri May 12 02:41:45 CDT 2006
Rocky - I had a similiar requirement once and I used the following logic.
1. I made a subfolder of Inbox in Outlook and in my case called it 'Customer Inquiries'.
2. Create a mail rule in Outlook which checks for the 6 digit code you are looking for and puts it into the subfolder you created in step 1.
3. The code I have pasted below comes from an app of mine which then uses an on-click event to read messages into a table in Access called TblOutlookMail from the Customer Inquiries folder in Outlook.
Hope this help - cheers
--------------------------------------------------------------------------------
Public Function ProcessMailMessagesInFolder()
'Adapted by K Pelletti from code from Helen Feddema 3-28-2002
Dim strerrormsg As String
On Error GoTo Err_Handler
Dim appOutlook As New Outlook.Application
Dim nms As Outlook.NameSpace
Dim fld As Outlook.MAPIFolder
Dim myfld As Outlook.MAPIFolder
Dim itm As Object
Dim msg As Outlook.MailItem
Dim strMessage As String
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim strsql As String
Dim prj As Object
Dim lngItemCount As Long
Dim IntFolderNo As Integer
Dim IntTotalNoFoldersInInbox As Integer
Dim IntNoMailItems As Integer
Dim BoolFolderFound As Boolean
BoolFolderFound = False
Set nms = appOutlook.GetNamespace("MAPI")
Set fld = nms.GetDefaultFolder(olFolderInbox)
IntFolderNo = 0
IntTotalNoFoldersInInbox = 0
IntNoMailItems = 0
IntTotalNoFoldersInInbox = fld.Folders.Count
' MsgBox ("Inbox has: " & fld.Folders.Count & "subfolders.")
Do Until IntFolderNo = IntTotalNoFoldersInInbox ' Inner loop.
IntFolderNo = IntFolderNo + 1
Set myfld = fld.Folders(IntFolderNo)
If myfld.Name = "Customer Inquiries" Then 'Rocky - put your subfolder Outlook name here
BoolFolderFound = True
IntNoMailItems = myfld.Items.Count
' MsgBox ("No messages is: " & IntNoMailItems)
Exit Do
End If
Loop
If BoolFolderFound = False Then
MsgBox ("Unable to find the Customer Inquiries Folder in Outlook." & vbCrLf & vbCrLf & "(The folder should be a subfolder of inbox.)"), , "Hudsons Database"
GoTo Normal_exit
End If
If myfld Is Nothing Then
GoTo Err_Handler
End If
Debug.Print "Folder default item type: " & myfld.DefaultItemType
If myfld.DefaultItemType <> olMailItem Then
MsgBox "Folder does not contain mail messages; Exiting", , "Importing Mail"
GoTo Normal_exit
End If
lngItemCount = myfld.Items.Count
' Debug.Print "Number of messages in folder: " _
' & lngItemCount
If lngItemCount = 0 Then
MsgBox ("There are no mail messages in the Customer Inquiries folder."), , "Hudsons Database"
GoTo Normal_exit
End If
'Process items in selected folder
strsql = "DELETE * FROM tblOutlookMail"
DoCmd.SetWarnings False
DoCmd.RunSQL strsql
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("tblOutlookMail")
For Each itm In myfld.Items
If itm.Class = olMail Then
Set msg = itm
With rst
.AddNew
!Subject = msg.Subject
!Body = msg.Body
!CC = msg.CC
!BCC = msg.BCC
!Sent = msg.SentOn
!FromName = msg.SenderName
.Update
End With
End If
Next itm
rst.Close
Set prj = Application.CurrentProject
If prj.AllForms("frmOutlookMail").IsLoaded = True Then
Forms("frmOutlookMail").Requery
Else
DoCmd.OpenForm "frmOutlookMail", , , , , acDialog
End If
'Forms("frmOutlookMail").SetFocus
Normal_exit:
' MsgBox ("No of new mail messages: " & IntNoMailItems), , "Mail Import"
Exit Function
Err_Handler:
MsgBox "Error: [" & Err.Number & "] " & IIf(Len(strerrormsg) > 0, strerrormsg, Err.Description), vbCritical, "Error Message"
hCursor = CursorID
RetVal = SetCursor(hCursor)
Resume Normal_exit
End Function
--------------------------------------------------------------------------------
Kath Pelletti
----- Original Message -----
From: Rocky Smolin - Beach Access Software
To: Access Developers discussion and problem solving
Sent: Thursday, May 11, 2006 3:21 PM
Subject: [AccessD] Outlook and Access
Dear list:
I have a request from a client to program something in Outlook but I
have no idea where to start. Quote:
"If an email comes in with a 6 digit (alphanumeric) code in the Subject
line, Outlook would make a call to Access, passing along the code and
then delete the email. No code, email automatically deleted. The call
to access would cause the code to be looked up and a status report
emailed to the client if the code is current. "
I suppose the receipt of any email would have to trigger this hunk of
code.
I've put a lot of code behind Excel sheets to push data into an Access
database but never from Outlook. Does anyone know of any code samples,
snips, explanations, etc. that could get me started on this?
MTIA,
Rocky Smolin
Beach Access Software
858-259-4334
www.e-z-mrp.com
--
Rocky Smolin
Beach Access Software
858-259-4334
www.e-z-mrp.com
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com