Dim appAccess
Dim nms
Dim strFolder
Dim fld
Dim strAccessPath
Dim rst
Dim dbe
Dim wks
Dim dbs
Dim itms
Dim itm
Sub CommandButton1_Click()
Set nms = Application.GetNamespace("MAPI")
strFolder = "fbtest folder"
Set fld = nms.Folders("Personal Folders").Folders(strFolder)
'Pick up path to Access database directory from Access SysCmd function
Set appAccess = CreateObject("Access.Application")
strAccessPath = appAccess.SysCmd(9)
'Get DAO version from DBEngine
strDBEngine = appAccess.Application.DBEngine.Version
'MsgBox "DBEngine version: " & strDBEngine
appAccess.Quit
If strDBEngine = "3.51" Then
'Office 97 DAO version
Set dbe = CreateObject("DAO.DBEngine.35")
strDBName = strAccessPath & "fbtestdb.mdb"
ElseIf strDBEngine = "3.6" Then
'Office 2000 DAO version
Set dbe = CreateObject("DAO.DBEngine.36")
strDBName = strAccessPath & "fbtestdb.mdb"
Else
MsgBox "Unknown Office version; canceling"
Exit Sub
End If
'MsgBox "DBName: " & strDBName
Set wks = dbe.Workspaces(0)
Set dbs = wks.OpenDatabase("S:\sameer\fbtestdb.mdb")
'Open Access table containing contact data
Set rst = dbs.OpenRecordset("fbtesttable")
'Set up reference to Outlook folder of items to export
Set itms = fld.Items
ItemCount = itms.Count
If ItemCount = 0 Then
MsgBox "No FB requests to export"
Exit Sub
Else
MsgBox ItemCount & " FB requests to export"
End If
'Set up reference to Outlook folder of items to export
Set itms = fld.Items
ItemCount = itms.Count
If ItemCount = 0 Then
MsgBox "No Fund Builder requests to export"
Exit Sub
Else
MsgBox ItemCount & " FB requests to export"
End If
For Each itm In itms
rst.AddNew
'Custom Outlook properties
rst.Request=itm.userproperties("001 Request")
rst.AccountNumber=itm.userproperties("002 Account Number") rst.ClientName=itm.userproperties("002 Client Name")
rst.Update
Next
rst.Close
MsgBox "All FB requests exported!"
End Sub
Everyday we come across some problem for which we try, research for hours and once solved, looks so easy in MS Excel.I like to keep a note of it and share with others, so people can use them.These notes are not necessarily my own writing but are the one which I came accross during my research over the net to find out solutions.
Friday, October 28, 2005
Export Data From Outlook Custom Form to Excel
Sub CommandButton1_Click()
ExportToExcel()
End Sub
Sub ExportToExcel()
Dim appExcel
Dim olMAPI
Dim strTemplatePath
Dim strSheet
Dim Ifld
Dim MItem
Set olMAPI = GetObject("", "Outlook.Application").GetNameSpace("MAPI")
Set Ifld = olMAPI.Folders("Personal Folders").Folders("SamTest")
i=1
'Pick up Template path from the word options dialog
strTemplatePath="H:\"
'Debug.Print "Document folder: " & strTemplatePath
strSheet="SameerTest.xls"
strSheet=strTemplatePath & strSheet
'Set appExcel= New Excel.Application
Set appExcel=GetObject("", "Excel.Application")
appExcel.Workbooks.Open (strSheet)
Set wkb = appExcel.ActiveWorkBook
Set wks =wkb.Sheets(1)
wks.Activate
wks.Cells(1, 1)="Subject"
wks.Cells(1,2)="ClientName"
wks.Cells(1,3)="ClientAddress"
wks.Cells(1,4)="ClientAge"
appExcel.Application.Visible=TrueFor Each MItem In Ifld.Items
If Left(MItem.Subject, 12) = "Client Form" Then
i = i + 1
If MItem.Subject<>"" Then
wks.Cells(i,1).Value = MItem.Subject
End If
If MItem.UserProperties("010 ClientName").Value<>"" Then
wks.Cells(i,2).Value = MItem.UserProperties("010 ClientName").Value
End If
If MItem.UserProperties("020 ClientFirstName").Value<>"" Then
wks.Cells(i,3).Value = MItem.UserProperties("020 ClientAddress").Value
End If
If MItem.UserProperties("030 ClientInitial").Value<>"" Then
wks.Cells(i,4).Value = MItem.UserProperties("030 ClientAge").Value
End If End If
Next
Set MItem = Nothing
Set Ifld = Nothing
Set strTemplatePath = Nothing
Set strSheet = Nothing
Set olMAPI = Nothing
Set appExcel = Nothing
End Sub
ExportToExcel()
End Sub
Sub ExportToExcel()
Dim appExcel
Dim olMAPI
Dim strTemplatePath
Dim strSheet
Dim Ifld
Dim MItem
Set olMAPI = GetObject("", "Outlook.Application").GetNameSpace("MAPI")
Set Ifld = olMAPI.Folders("Personal Folders").Folders("SamTest")
i=1
'Pick up Template path from the word options dialog
strTemplatePath="H:\"
'Debug.Print "Document folder: " & strTemplatePath
strSheet="SameerTest.xls"
strSheet=strTemplatePath & strSheet
'Set appExcel= New Excel.Application
Set appExcel=GetObject("", "Excel.Application")
appExcel.Workbooks.Open (strSheet)
Set wkb = appExcel.ActiveWorkBook
Set wks =wkb.Sheets(1)
wks.Activate
wks.Cells(1, 1)="Subject"
wks.Cells(1,2)="ClientName"
wks.Cells(1,3)="ClientAddress"
wks.Cells(1,4)="ClientAge"
appExcel.Application.Visible=TrueFor Each MItem In Ifld.Items
If Left(MItem.Subject, 12) = "Client Form" Then
i = i + 1
If MItem.Subject<>"" Then
wks.Cells(i,1).Value = MItem.Subject
End If
If MItem.UserProperties("010 ClientName").Value<>"" Then
wks.Cells(i,2).Value = MItem.UserProperties("010 ClientName").Value
End If
If MItem.UserProperties("020 ClientFirstName").Value<>"" Then
wks.Cells(i,3).Value = MItem.UserProperties("020 ClientAddress").Value
End If
If MItem.UserProperties("030 ClientInitial").Value<>"" Then
wks.Cells(i,4).Value = MItem.UserProperties("030 ClientAge").Value
End If End If
Next
Set MItem = Nothing
Set Ifld = Nothing
Set strTemplatePath = Nothing
Set strSheet = Nothing
Set olMAPI = Nothing
Set appExcel = Nothing
End Sub
Subscribe to:
Posts (Atom)