Johncliviger at aol.com
Johncliviger at aol.com
Tue Jun 16 03:41:16 CDT 2009
Hi rocky
Is this any use?
johnc
'---------------------------------------------------------------------------
------------
' Procedure : btnAddApptToOutlook_Click
' DateTime : 8/4/2008
' Author : Patrick Wood _http://gainingaccess.net_
(http://gainingaccess.net)
' Purpose : Add a Custom Access Appointment Record to the Outlook
Calendar
' Arguments : None
' : You are welcome to use this code if you give
' : us credit by leaving this header intact.
'---------------------------------------------------------------------------
------------
'
Private Sub btnAddApptToOutlook_Click()
On Error GoTo Err_btnAddApptToOutlook_Click
' Save the Current Record
If Me.Dirty Then
Me.Dirty = False
End If
' Exit the procedure if appointment has been added to Outlook.
If Me.chkAddedToOutlook = True Then
MsgBox "This appointment has already added to Microsoft Outlook.",
vbCritical
Exit Sub
Else
' Add a new appointment.
' Use late binding to avoid the "Reference" issue
Dim olApp As Object 'Outlook.Application
Dim olAppt As Object 'olAppointmentItem
' This is how we would do it if we were using "early binding":
' Dim outobj As Outlook.Application
' Dim outappt As Outlook.AppointmentItem
' Set outobj = CreateObject("Outlook.Application")
' Set outappt = outobj.CreateItem(olAppointmentItem)
If isAppThere("Outlook.Application") = False Then
' Outlook is not open, create a new instance
Set olApp = CreateObject("Outlook.Application")
Else
' Outlook is already open--use this method
Set olApp = GetObject(, "Outlook.Application")
End If
' Create the New Appointment Item
Set olAppt = olApp.CreateItem(1) ' olAppointmentItem = 1
' Add the Form data to the Appointment Properties
With olAppt
' If There is no Start Date or Time on
' the Form use Nz to avoid an error
' Set the Start Property Value
.Start = Nz(Me.txtStartDate, "") & " " & Nz(Me.txtStartTime, "")
' Set the End Property Value
.End = Nz(Me.txtEndDate, "") & " " & Nz(Me.txtEndTime, "")
.Duration = Nz(Me.txtApptLength, 0)
' vbNullString uses a little less memory than ""
.Subject = Nz(Me.cboApptDescription, vbNullString)
.Body = Nz(Me.txtApptNotes, vbNullString)
.Location = Nz(Me.txtLocation, vbNullString)
If Me.chkApptReminder = True Then
If IsNull(Me.txtReminderMinutes) Then
Me.txtReminderMinutes.Value = 30
End If
.ReminderOverrideDefault = True
.ReminderMinutesBeforeStart = Me.txtReminderMinutes
.ReminderSet = True
End If
' Save the Appointment Item Properties
.Save
End With
End If
' Release the Outlook object variables.
Set olAppt = Nothing
Set olApp = Nothing
' Set chkAddedToOutlook to checked
Me.chkAddedToOutlook = True
' Save the Current Record because we checked chkAddedToOutlook
If Me.Dirty Then
Me.Dirty = False
End If
' Inform the user
MsgBox "Appointment Added!", vbInformation
End Sub
'---------------------------------------------------------------------------
------------
' Procedure : isAppThere
' Author : Rick Dobson, Ph.D - Programming Microsoft Access 2000
' Purpose : To check if an Application is Open
' Arguments : appName The name of the Application
' Example : isAppThere("Outlook.Application")
'---------------------------------------------------------------------------
------------
'
Function isAppThere(appName) As Boolean
On Error Resume Next
Dim objApp As Object
isAppThere = True
Set objApp = GetObject(, appName)
If Err.Number <> 0 Then isAppThere = False
End Function