Link to home
Start Free TrialLog in
Avatar of Mike Rudolph
Mike RudolphFlag for United States of America

asked on

Continuation Access Freezes with email is not sent on second iteration

Dear Experts,

This is a follow on question to the one posted here:
https://www.experts-exchange.com/questions/28966302/Access-freezes-when-user-does-not-send-email.html

Seems that when the user attempts to send an email but closes the email dialogue box the first time no problem! This was the initial fix I was looking for. However, if the user (an this happened) attempts to send an email (once and the closes) and then again attempts to send an email then closes the dialogue box again I get the same error and the application freezes.

In fact, the user sends an email successfully then attempts send another one but closes the dialogue box the application freezes. So for whatever reason the error capture works the first time but not subsequent times. In fact, I pressed on the onclick event, then close the mail dialogue box without sending. Then I close the form to see if this would reset things but when I attempted to send another email message but instead closed the mail MS outlook dialogue box the application once again freezes.

I must need to 'reset' something after the first attempt but not certain what that needs to be. Attached are screenshots of the errors I am getting.

When i close the ms outlook dialogue box for the second time
User generated image
When I try to close the application after the error message
User generated image
ASKER CERTIFIED SOLUTION
Avatar of bfuchs
bfuchs
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Mike Rudolph

ASKER

Yeah....I think I am doing this right. If you look at the link above I used the code provided in the previous discussion block:

Public Sub SendEmail(pName As String)

  On Local Error GoTo LocalError
              
  Dim School As String
  Dim mailto As String
  Dim ccto As String
  Dim bccto As String
  Dim TeacherName As String
  Dim mailsub As String
  
  School = Nz(DLookup("tblSettingsSchool", "tblSettings"), 0)
  TeacherName = Nz(DLookup("teacherName", "tblTeacher"), 0)
  mailto = Me.studentParentEmail
  ccto = ""
  bccto = ""
  mailsub = "Recent Student Report from " & TeacherName & " at " & School
  emailmsg = _
    "Hello " & pName & "!" & vbNewLine & vbNewLine & _
    "Please find your child's student report from " & TeacherName & " at " & School & " attached!" & vbNewLine & vbNewLine & _
    "Thank you!"
  
  DoCmd.SetWarnings (False)
  DoCmd.OpenReport "rptStudentReport", acViewPreview, , "[studentID] = '" & [studentID] & "'"
  DoCmd.SendObject acSendReport, , acFormatPDF, mailto, ccto, bccto, mailsub, emailmsg, True
  DoCmd.Close acReport, "rptStudentReport", acSaveNo
  DoCmd.SetWarnings (True)
  Exit Sub
  
ProcExit:
  DoCmd.Close acReport, "rptStudentReport", acSaveNo
  DoCmd.SetWarnings (True)
  Exit Sub
  
LocalError:
    If Err.Number = 2501 Then
        Resume Next
    Else
        MsgBox Err.Description
        Resume ProcExit
    End If
        
End Sub

Private Sub cmdEmailParent_Click()
  
  Dim pName As String
  
  pName = InputBox("Enter the parent's name", "SEND EMAIL TO PARENT")
  If pName <> vbNullString Then
    SendEmail pName
  End If
         
End Sub

Open in new window


And even with I can the error ONLY on the second and subseqent cancellations. If I close the MS Outlook dialogue box the first time the error is trapped and all is good. But if I try it again then the application freezes. There must be a 'reset' somehow so the trapping works over and over again.
Thanks! So you the trap works but in this case the solution was actually to take the form out of popup mode and keep modal. Once I did that the erorr when away on the second and subsequnt cancellations. Thanks again!