http://gainingaccess.net
Private Sub btnExportApptByDates_Click()
On Error GoTo ErrHandle
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim strSQL As String
Dim strWhere As String
Dim intCount As Integer
Dim objOutlook As Object
Dim objAppointItem As Object
Const olAppointmentItem = 1
On Error Resume Next
Set objOutlook = CreateObject("Outlook.Application")
If Err.Number <> 0 Then
Err.Clear
On Error GoTo ErrHandle
Set objOutlook = GetObject(, "Outlook.Application")
End If
strWhere = "WHERE ApptDate >= #" & Me.txtStartDate & "#" _
& " AND ApptDate <= #" & Me.txtEndDate & "#"
strSQL = "SELECT * FROM tblAppointments " & strWhere & ";"
Set db = CurrentDb()
Set rst = db.OpenRecordset(strSQL, dbOpenDynaset)
rst.MoveFirst
Do While Not rst.EOF
Set objAppointItem = objOutlook.CreateItem(olAppointmentItem)
With objAppointItem
.Start = Nz(rst!ApptDate) & " " & Nz(rst!ApptTime)
.End = Nz(rst!EndDate) & " " & Nz(rst!EndTime, "")
.Duration = Nz(rst!ApptLength, 0)
.Subject = Nz(rst!Appt)
.Body = Nz(rst!ApptNotes)
.Location = Nz(rst!Location)
If rst!ApptReminder = True Then
If rst!ApptDate < Now() Then
.ReminderOverrideDefault = False
.ReminderMinutesBeforeStart = 0
.ReminderSet = False
Else
If Not IsNull(rst!ReminderMinutes) Then
.ReminderOverrideDefault = True
.ReminderMinutesBeforeStart = rst!ReminderMinutes
.ReminderSet = True
End If
End If
End If
.Categories = Nz(rst!Categories)
.Save
End With
intCount = intCount + 1
rst.Edit
rst!AddedToOutlook = -1
rst.Update
rst.MoveNext
Loop
MsgBox intCount & " Appointments were added to Outlook.", vbInformation
ExitHere:
On Error Resume Next
rst.Close
Set objAppointItem = Nothing
Set objOutlook = Nothing
Set rst = Nothing
Set db = Nothing
Exit Sub
ErrHandle:
Call MsgBox(Err.Description & vbCrLf & "Error Number: " & Err.Number & vbCrLf & _
"In procedure btnExportApptByDates_Click of VBA Document Form_frmAppointmentsToOutlook")
Resume ExitHere
End Sub