Adding an Outlook task from Access

B

Blogd_Node

Hi,

Config is XP SP2 / Access 2003 / Outlook 2003
Access Refs are VBA / Access 11 / SafeOutlook / DAO 3.6 / Outlook 11 /
Calendar 11

I want to add an Outlook Task from Access.
The problem is Outlook crashes (sometimes) if not open.

Any thoughts about where I'm going wrong ?
( I know just enough VB code to be a danger to myself... )
:)

Many thanks...

David

(Some Access code below has been snipped for clarity...)

'CODE ===============================================
Private Sub cmdCreateTask_Click()

On Error GoTo Err_cmdCreateTask_Click

Dim objOL As Object
Dim myItem As Object
Dim objSafeTaskItem As Redemption.SafeTaskItem
Dim myNS As NameSpace
Dim timeX As String
Dim strVia As String
Dim strReg As String

On Error Resume Next

Set objOL = GetObject(, "Outlook.Application")

'If outlook is not running, then
If objOL Is Nothing Then

Set objOL = CreateObject("Outlook.Application")
Set myNS = objOL.GetNamespace("MAPI")
myNS.Logon

End If

On Error GoTo 0

' Set up Outlook Objects.
' If there is a date set
If Len(Me!ChaseDateCalendar & "") > 0 Then

Set myItem = objOL.CreateItem(olTaskItem) 'Outlook Task Item
Set objSafeTaskItem = CreateObject("Redemption.safeTaskItem")

objSafeTaskItem.Item = myItem

With objSafeTaskItem

.Subject = Format(Me!ChaseDate, "dd-mmm-yy") & " ChaseUp " &
Trim(Me![FirstName]) & " " & _
Trim(Me![Surname]) & " " & "Via: " & Trim(strVia) & " " & _
"Re: <" & Trim(Me![cmbRegarding]) & "> " & Trim(Me![txtAddedNote])
Me!Memo = Me!Memo & vbCrLf & .Subject
.Body = "Add any comments about this chaseup into DATABASE - not
here"
.ReminderSet = True
'Remind at 9AM
.ReminderTime = FormatDateTime(timeX, 4)
'Due at selected date
.DueDate = Format(Me!ChaseDate, "dd-mmm-yy")
.ReminderPlaySound = True
'Modify path.
'.ReminderSoundFile = "C:\WINNT\Media\Ding.wav"
.Save

End With

Else

MsgBox "No ChaseUp Date set?"

End If

Exit_cmdCreateTask_Click:
Set objSafeTaskItem = Nothing
Set objOL = Nothing
Exit Sub

Err_cmdCreateTask_Click:

MsgBox Err.Description
Resume Exit_cmdCreateTask_Click

End Sub
 
M

Michael Bauer

Am Wed, 7 Jun 2006 09:01:21 +1000 schrieb Blogd_Node:

Where do you get which error?
 
B

Blogd_Node

Hi Michael,

Thanks for the reply.

No error messages from Access code.
First time through, code works OK.
Second time, Outlook stops dead with
a request to send an error report to MS.
When Outlook opens, it pops another message box
"The data file 'Personal Folders' was not closed properly.
The file is being checked for further problems."

Any thoughts ?

Regards

David
============================================
Michael Bauer said:
Where do you get which error?

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
-- www.vbOffice.net --

Hi,

Config is XP SP2 / Access 2003 / Outlook 2003
Access Refs are VBA / Access 11 / SafeOutlook / DAO 3.6 / Outlook 11 /
Calendar 11

I want to add an Outlook Task from Access.
The problem is Outlook crashes (sometimes) if not open.

Any thoughts about where I'm going wrong ?
( I know just enough VB code to be a danger to myself... )
:)

Many thanks...

David

(Some Access code below has been snipped for clarity...)

'CODE ===============================================
Private Sub cmdCreateTask_Click()

On Error GoTo Err_cmdCreateTask_Click

Dim objOL As Object
Dim myItem As Object
Dim objSafeTaskItem As Redemption.SafeTaskItem
Dim myNS As NameSpace
Dim timeX As String
Dim strVia As String
Dim strReg As String

On Error Resume Next

Set objOL = GetObject(, "Outlook.Application")

'If outlook is not running, then
If objOL Is Nothing Then

Set objOL = CreateObject("Outlook.Application")
Set myNS = objOL.GetNamespace("MAPI")
myNS.Logon

End If

On Error GoTo 0

' Set up Outlook Objects.
' If there is a date set
If Len(Me!ChaseDateCalendar & "") > 0 Then

Set myItem = objOL.CreateItem(olTaskItem) 'Outlook Task Item
Set objSafeTaskItem = CreateObject("Redemption.safeTaskItem")

objSafeTaskItem.Item = myItem

With objSafeTaskItem

.Subject = Format(Me!ChaseDate, "dd-mmm-yy") & " ChaseUp " &
Trim(Me![FirstName]) & " " & _
Trim(Me![Surname]) & " " & "Via: " & Trim(strVia) & " " & _
"Re: <" & Trim(Me![cmbRegarding]) & "> " &
Trim(Me![txtAddedNote])
Me!Memo = Me!Memo & vbCrLf & .Subject
.Body = "Add any comments about this chaseup into DATABASE - not
here"
.ReminderSet = True
'Remind at 9AM
.ReminderTime = FormatDateTime(timeX, 4)
'Due at selected date
.DueDate = Format(Me!ChaseDate, "dd-mmm-yy")
.ReminderPlaySound = True
'Modify path.
'.ReminderSoundFile = "C:\WINNT\Media\Ding.wav"
.Save

End With

Else

MsgBox "No ChaseUp Date set?"

End If

Exit_cmdCreateTask_Click:
Set objSafeTaskItem = Nothing
Set objOL = Nothing
Exit Sub

Err_cmdCreateTask_Click:

MsgBox Err.Description
Resume Exit_cmdCreateTask_Click

End Sub
 
M

Michael Bauer

Am Wed, 7 Jun 2006 16:46:26 +1000 schrieb Blogd_Node:

I think you need to clean up one more ref at the end:

Should be:

Set objSafeTaskItem.Item=Nothing
Set objSafeTaskItem=Nothing

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
-- www.vbOffice.net --

Hi Michael,

Thanks for the reply.

No error messages from Access code.
First time through, code works OK.
Second time, Outlook stops dead with
a request to send an error report to MS.
When Outlook opens, it pops another message box
"The data file 'Personal Folders' was not closed properly.
The file is being checked for further problems."

Any thoughts ?

Regards

David
============================================
Michael Bauer said:
Where do you get which error?

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
-- www.vbOffice.net --

Hi,

Config is XP SP2 / Access 2003 / Outlook 2003
Access Refs are VBA / Access 11 / SafeOutlook / DAO 3.6 / Outlook 11 /
Calendar 11

I want to add an Outlook Task from Access.
The problem is Outlook crashes (sometimes) if not open.

Any thoughts about where I'm going wrong ?
( I know just enough VB code to be a danger to myself... )
:)

Many thanks...

David

(Some Access code below has been snipped for clarity...)

'CODE ===============================================
Private Sub cmdCreateTask_Click()

On Error GoTo Err_cmdCreateTask_Click

Dim objOL As Object
Dim myItem As Object
Dim objSafeTaskItem As Redemption.SafeTaskItem
Dim myNS As NameSpace
Dim timeX As String
Dim strVia As String
Dim strReg As String

On Error Resume Next

Set objOL = GetObject(, "Outlook.Application")

'If outlook is not running, then
If objOL Is Nothing Then

Set objOL = CreateObject("Outlook.Application")
Set myNS = objOL.GetNamespace("MAPI")
myNS.Logon

End If

On Error GoTo 0

' Set up Outlook Objects.
' If there is a date set
If Len(Me!ChaseDateCalendar & "") > 0 Then

Set myItem = objOL.CreateItem(olTaskItem) 'Outlook Task Item
Set objSafeTaskItem = CreateObject("Redemption.safeTaskItem")

objSafeTaskItem.Item = myItem

With objSafeTaskItem

.Subject = Format(Me!ChaseDate, "dd-mmm-yy") & " ChaseUp " &
Trim(Me![FirstName]) & " " & _
Trim(Me![Surname]) & " " & "Via: " & Trim(strVia) & " " & _
"Re: <" & Trim(Me![cmbRegarding]) & "> " &
Trim(Me![txtAddedNote])
Me!Memo = Me!Memo & vbCrLf & .Subject
.Body = "Add any comments about this chaseup into DATABASE - not
here"
.ReminderSet = True
'Remind at 9AM
.ReminderTime = FormatDateTime(timeX, 4)
'Due at selected date
.DueDate = Format(Me!ChaseDate, "dd-mmm-yy")
.ReminderPlaySound = True
'Modify path.
'.ReminderSoundFile = "C:\WINNT\Media\Ding.wav"
.Save

End With

Else

MsgBox "No ChaseUp Date set?"

End If

Exit_cmdCreateTask_Click:
Set objSafeTaskItem = Nothing
Set objOL = Nothing
Exit Sub

Err_cmdCreateTask_Click:

MsgBox Err.Description
Resume Exit_cmdCreateTask_Click

End Sub
 
B

Blogd_Node

No -
That now fails with "Automation error"
at line
Set objSafeTaskItem.Item=Nothing

??

===============================================


"Michael Bauer" wrote
I think you need to clean up one more ref at the end:

Should be:

Set objSafeTaskItem.Item=Nothing
Set objSafeTaskItem=Nothing

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
-- www.vbOffice.net --

Hi Michael,

Thanks for the reply.

No error messages from Access code.
First time through, code works OK.
Second time, Outlook stops dead with
a request to send an error report to MS.
When Outlook opens, it pops another message box
"The data file 'Personal Folders' was not closed properly.
The file is being checked for further problems."

Any thoughts ?

Regards

David
============================================
Michael Bauer said:
Where do you get which error?

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
-- www.vbOffice.net --


Hi,

Config is XP SP2 / Access 2003 / Outlook 2003
Access Refs are VBA / Access 11 / SafeOutlook / DAO 3.6 / Outlook 11 /
Calendar 11

I want to add an Outlook Task from Access.
The problem is Outlook crashes (sometimes) if not open.

Any thoughts about where I'm going wrong ?
( I know just enough VB code to be a danger to myself... )
:)

Many thanks...

David

(Some Access code below has been snipped for clarity...)

'CODE ===============================================
Private Sub cmdCreateTask_Click()

On Error GoTo Err_cmdCreateTask_Click

Dim objOL As Object
Dim myItem As Object
Dim objSafeTaskItem As Redemption.SafeTaskItem
Dim myNS As NameSpace
Dim timeX As String
Dim strVia As String
Dim strReg As String

On Error Resume Next

Set objOL = GetObject(, "Outlook.Application")

'If outlook is not running, then
If objOL Is Nothing Then

Set objOL = CreateObject("Outlook.Application")
Set myNS = objOL.GetNamespace("MAPI")
myNS.Logon

End If

On Error GoTo 0

' Set up Outlook Objects.
' If there is a date set
If Len(Me!ChaseDateCalendar & "") > 0 Then

Set myItem = objOL.CreateItem(olTaskItem) 'Outlook Task
Item
Set objSafeTaskItem = CreateObject("Redemption.safeTaskItem")

objSafeTaskItem.Item = myItem

With objSafeTaskItem

.Subject = Format(Me!ChaseDate, "dd-mmm-yy") & " ChaseUp " &
Trim(Me![FirstName]) & " " & _
Trim(Me![Surname]) & " " & "Via: " & Trim(strVia) & " " & _
"Re: <" & Trim(Me![cmbRegarding]) & "> " &
Trim(Me![txtAddedNote])
Me!Memo = Me!Memo & vbCrLf & .Subject
.Body = "Add any comments about this chaseup into DATABASE -
not
here"
.ReminderSet = True
'Remind at 9AM
.ReminderTime = FormatDateTime(timeX, 4)
'Due at selected date
.DueDate = Format(Me!ChaseDate, "dd-mmm-yy")
.ReminderPlaySound = True
'Modify path.
'.ReminderSoundFile = "C:\WINNT\Media\Ding.wav"
.Save

End With

Else

MsgBox "No ChaseUp Date set?"

End If

Exit_cmdCreateTask_Click:
Set objSafeTaskItem = Nothing
Set objOL = Nothing
Exit Sub

Err_cmdCreateTask_Click:

MsgBox Err.Description
Resume Exit_cmdCreateTask_Click

End Sub
 
S

Sue Mosher [MVP-Outlook]

Try:

Set myItem =Nothing

Bottom line is that you need to dereference every Outlook object you use.

Also, if your code started Outlook, then you'll need to shut down Outlook, too, with an objOL.Quit statement.

--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003

and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers


Blogd_Node said:
No -
That now fails with "Automation error"
at line
Set objSafeTaskItem.Item=Nothing

??

===============================================


"Michael Bauer" wrote
I think you need to clean up one more ref at the end:
Set objSafeTaskItem = Nothing
Set objOL = Nothing

Should be:

Set objSafeTaskItem.Item=Nothing
Set objSafeTaskItem=Nothing

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
-- www.vbOffice.net --

Hi Michael,

Thanks for the reply.

No error messages from Access code.
First time through, code works OK.
Second time, Outlook stops dead with
a request to send an error report to MS.
When Outlook opens, it pops another message box
"The data file 'Personal Folders' was not closed properly.
The file is being checked for further problems."

Any thoughts ?

Regards

David
============================================

Where do you get which error?

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
-- www.vbOffice.net --


Hi,

Config is XP SP2 / Access 2003 / Outlook 2003
Access Refs are VBA / Access 11 / SafeOutlook / DAO 3.6 / Outlook 11 /
Calendar 11

I want to add an Outlook Task from Access.
The problem is Outlook crashes (sometimes) if not open.

Any thoughts about where I'm going wrong ?
( I know just enough VB code to be a danger to myself... )
:)

Many thanks...

David

(Some Access code below has been snipped for clarity...)

'CODE ===============================================
Private Sub cmdCreateTask_Click()

On Error GoTo Err_cmdCreateTask_Click

Dim objOL As Object
Dim myItem As Object
Dim objSafeTaskItem As Redemption.SafeTaskItem
Dim myNS As NameSpace
Dim timeX As String
Dim strVia As String
Dim strReg As String

On Error Resume Next

Set objOL = GetObject(, "Outlook.Application")

'If outlook is not running, then
If objOL Is Nothing Then

Set objOL = CreateObject("Outlook.Application")
Set myNS = objOL.GetNamespace("MAPI")
myNS.Logon

End If

On Error GoTo 0

' Set up Outlook Objects.
' If there is a date set
If Len(Me!ChaseDateCalendar & "") > 0 Then

Set myItem = objOL.CreateItem(olTaskItem) 'Outlook Task
Item
Set objSafeTaskItem = CreateObject("Redemption.safeTaskItem")

objSafeTaskItem.Item = myItem

With objSafeTaskItem

.Subject = Format(Me!ChaseDate, "dd-mmm-yy") & " ChaseUp " &
Trim(Me![FirstName]) & " " & _
Trim(Me![Surname]) & " " & "Via: " & Trim(strVia) & " " & _
"Re: <" & Trim(Me![cmbRegarding]) & "> " &
Trim(Me![txtAddedNote])
Me!Memo = Me!Memo & vbCrLf & .Subject
.Body = "Add any comments about this chaseup into DATABASE -
not
here"
.ReminderSet = True
'Remind at 9AM
.ReminderTime = FormatDateTime(timeX, 4)
'Due at selected date
.DueDate = Format(Me!ChaseDate, "dd-mmm-yy")
.ReminderPlaySound = True
'Modify path.
'.ReminderSoundFile = "C:\WINNT\Media\Ding.wav"
.Save

End With

Else

MsgBox "No ChaseUp Date set?"

End If

Exit_cmdCreateTask_Click:
Set objSafeTaskItem = Nothing
Set objOL = Nothing
Exit Sub

Err_cmdCreateTask_Click:

MsgBox Err.Description
Resume Exit_cmdCreateTask_Click

End Sub
 
B

Blogd_Node

Many thanks Sue and Michael,

Got it working OK now.

Code follows for future use of someone else...
---------------------------------------------------------
Private Sub cmdCreateTask_Click()

'JUN2006
'OUTLOOK ACCESS TASK REDEMPTION TASKITEM
'BachAndByte

On Error GoTo Err_cmdCreateTask_Click

Dim objOL As Object
Dim myItem As Object
Dim objSafeTaskItem As Object
Dim myNS As NameSpace
Dim blnOlRunning As Boolean
Dim timeX As String
Dim strVia As String
Dim strReg As String

On Error Resume Next
Set objOL = GetObject(, "Outlook.Application")

'If outlook is not running, then
If objOL Is Nothing Then

Set objOL = CreateObject("Outlook.Application")
Set myNS = objOL.GetNamespace("MAPI")
myNS.Logon

End If

On Error GoTo 0

' Set up Outlook Objects.
' If there is a date set
If Len(Me!ChaseDateCalendar & "") > 0 Then

'Set alert time
timeX = "09:00:00"
strVia = Trim(Me![cmbContactBy]) & ""

Select Case Me!cmbContactBy
Case "Home Ph"
If Len(Me![Hm Phone]) > 0 Then
strVia = Me![Hm Phone]
Else
MsgBox "No Home Phone ?"
Exit Sub
End If

Case "Work Ph"
If Len(Me![Wk Phone]) > 0 Then
strVia = Me![Wk Phone]
Else
MsgBox "No WORK Phone ?"
Exit Sub
End If

Case "Mobile Ph"
If Len(Me![Mob Phone]) > 0 Then
strVia = Me![Mob Phone]
Else
MsgBox "No MOBILE Phone ?"
Exit Sub
End If

Case "Email"
If Len(Me![E Mail address]) > 0 Then
strVia = "EMAIL"
Else
MsgBox "No EMAIL ?"
Exit Sub
End If

End Select

'check CONTACT VIA combo
If Len(strVia & "") = 0 Then
MsgBox "No Contact Via set ?"
Me!cmbContactBy.SetFocus
Exit Sub
End If

If DateDiff("d", Now, Me!ChaseDate) < 0 Then
MsgBox "Invalid date !" & vbCrLf & "Before Today !"
Exit Sub
End If

Set objSafeTaskItem = CreateObject("Redemption.safeTaskItem")
Set myItem = objOL.CreateItem(3) 'Outlook Task Item

objSafeTaskItem.Item = myItem

With objSafeTaskItem

.Subject = Format(Me!ChaseDate, "dd-mmm-yy") & " ChaseUp " &
Trim(Me![FirstName]) & " " & _
Trim(Me![Surname]) & " " & "Via: " & Trim(strVia) & " " & _
"Re: <" & Trim(Me![cmbRegarding]) & "> " & Trim(Me![txtAddedNote])

If Len(Me![Memo] & "") > 0 Then
Me!Memo = Me!Memo & vbCrLf & .Subject
Else
Me!Memo = .Subject
End If

.Body = "Add any comments about this chaseup into DATABASE - not
here"
.ReminderSet = True
'Remind at 9AM
.ReminderTime = FormatDateTime(timeX, 4)
'Due at selected date
.DueDate = Format(Me!ChaseDate, "dd-mmm-yy")
.ReminderPlaySound = True
'Modify path.
.ReminderSoundFile = "C:\WINNT\Media\Ding.wav"
.Save

End With
Me.Refresh

Set myItem = Nothing
Set objSafeTaskItem = Nothing
Set objOL = Nothing

Else

MsgBox "No ChaseUp Date set?"

End If

Exit_cmdCreateTask_Click:

Set myItem = Nothing
Set objSafeTaskItem = Nothing
Set objOL = Nothing
Exit Sub

Err_cmdCreateTask_Click:

MsgBox Err.Description
Resume Exit_cmdCreateTask_Click

End Sub
============================================
"Sue Mosher [MVP-Outlook]" wrote

Try:

Set myItem =Nothing

Bottom line is that you need to dereference every Outlook object you use.

Also, if your code started Outlook, then you'll need to shut down Outlook,
too, with an objOL.Quit statement.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top