I am calling the following procedure in a module to print
a report and save it but it always runs the DoCmd even if
the user chooses vbNo. Any suggestions?
Public Function printoptions()
'This functions provides the user with the option to print
and save the report
MsgBox "Do you want to print the letter?", vbYesNo
If vbYes Then
DoCmd.PrintOut acPrintAll
End If
MsgBox "Do you want to save the letter?", vbYesNo
If vbYes Then
DoCmd.OutputTo acOutputReport, , acFormatRTF
Else
DoCmd.Close
End If
End Function
Thanks for your help.
Bart
Duane Hookom - 19 Feb 2004 01:39 GMT
If you want to return a value with MsgBox, use the function rather than the
command.
Select Case MsgBox("Do you want to print the letter?", vbYesNo+
vbQuestion,"Print Letter")
Case vbYes
'your code
Case vbNo
'Your code
End Select

Signature
Duane Hookom
MS Access MVP
> I am calling the following procedure in a module to print
> a report and save it but it always runs the DoCmd even if
[quoted text clipped - 21 lines]
>
> Bart
John Nurick - 19 Feb 2004 07:30 GMT
Hi Bart,
vbYes has the value 6 and is therefore always true. You need to use
MsgBox as a function, e.g. like this:
If MsgBox("Do you want to print the letter?", _
vbQuery + vbYesNo) = vbYes Then
DoCmd.Printout......
>I am calling the following procedure in a module to print
>a report and save it but it always runs the DoCmd even if
[quoted text clipped - 21 lines]
>
>Bart
--
John Nurick [Microsoft Access MVP]
Please respond in the newgroup and not by email.