That is probably generating an error (perhaps 2501?) which you will need to
trap with error code in your function. See below for a simple example.
If the error is not 2501, then change 2501 to the error number that is reported.
Private Sub btnSendEmail_Click()
On Error GoTo Proc_Error
IF Len([Forms]![frmUpdateSiteName]![ContactE-Mail] & "") = 0 then
MsgBox "Please enter an Email Address"
ELSE
DoCmd.SendObject acSendNoObject,,,[Forms]![frmUpdateSiteName]![ContactE-Mail]
END IF
Exit Sub 'Don't run the error code
Proc_Error: 'Handle errors here
If Err.Number = 2501 Then
'Do Nothing this is the expected error
Else 'Report error number and description.
MsgBox Err.Number & ": " & err.description,,"Error Occurred"
End If
End Sub
John Spencer
Access MVP 2002-2005, 2007-2008
The Hilltop Institute
University of Maryland Baltimore County
Thanks very much for your response John, it was most helpful and works
brilliantly.
It has also gone a way toward helping me understand the IF ELSE functions. I
try not to copy and paste the code people supply me with on this site too
much as that is not learning so at the least I rewrite it and learn as I go
(hopefully).
I have come accross another problem related to this though but cannot figure
a way around it. I think it is because the way I am generating the e-mail is
as a 'send object'. After pressing the cmd button the e-mail editor opens
with the e-mail address in place, if I decide not to send this e-mail though
and hit the 'X' button to close it the debugger opens again, obviously
because the object has indeed not been sent and the code is left incomplete.
Is there a way around this?
Thanks again for your help.
John Spencer said:
Private Sub btnSendEmail_Click()
IF Len([Forms]![frmUpdateSiteName]![ContactE-Mail] & "") = 0 then
MSgBox "Please enter an Email Address"
ELSE
DoCmd.SendObject acSendNoObject,,,[Forms]![frmUpdateSiteName]![ContactE-Mail]
END IF
End Sub
John Spencer
Access MVP 2002-2005, 2007-2008
The Hilltop Institute
University of Maryland Baltimore County
Pyrite wrote:
Hi,
I have a field in a form that is 'Contact E-Mail' and have put a command
button with the following code to open a new e-mail message addressed to the
e-mail address in the current record.
The Code.
Private Sub btnSendEmail_Click()
DoCmd.SendObject acSendNoObject, , ,
[Forms]![frmUpdateSiteName]![ContactE-Mail]
End Sub
My problem comes when there is no e-mail address (i.e. if the user presses
the button by mistake when there is no e-mail present) it displays the
debugger. Instead I would like it to display an error message to the user and
do nothing else.