Bob Gajewski
bob at renaissancesiding.com
Fri Jun 20 07:52:39 CDT 2003
Doris
Well, that worked - sort of.
I moved all of the InputBox code to the Report_Open module, and now the
report is being created and printing properly EXCEPT that it is printing
the letter TWICE.
I have checked all of the page setup and printer attributes; there is
nothing that would force two copies.
Any ideas on this new twist?
TIA,
Bob
On Thursday, June 19, 2003 14:44 PM, Mike and Doris Manning
[SMTP:mikedorism at ntelos.net] wrote:
> Doris
> When you print the open preview, some of the sections of the report rerun
on
> the way to the printer so that's why you are getting the second pass for
> information
>
> Try moving the Input box code to the Report's Open event instead
>
> Doris Manning
> Database Administrator
> Hargrove Inc
> www.hargroveinc.com
>
**********************************************
Option Compare Database
Option Explicit
Public gvarRecordFound As Boolean
Public strInput1 As String
Public strInput2 As String
Public strInput3 As String
Public strInput4 As String
Public strInputS As String
Public strInputT As String
Private Sub Report_NoData(Cancel As Integer)
Dim Msg, Response
Msg = "This report is not available; no records exist."
Response = MsgBox(Msg, vbInformation)
DoCmd.CancelEvent
End Sub
----------------------------------------------------------
Private Sub Report_Open(Cancel As Integer)
'Allow user to enter text for paragraphs 1-4
Dim strMsg1 As String
strMsg1 = "Please enter the text for paragraph 1:"
strInput1 = InputBox(Prompt:=strMsg1, Title:="Paragraph 1")
If Not (IsNull(strInput1) Or strInput1 = "") Then
Dim strMsg2 As String
strMsg2 = "Please enter the text for paragraph 2:"
strInput2 = InputBox(Prompt:=strMsg2, Title:="Paragraph 2")
If Not (IsNull(strInput2) Or strInput2 = "") Then
Dim strMsg3 As String
strMsg3 = "Please enter the text for paragraph 3:"
strInput3 = InputBox(Prompt:=strMsg3,
Title:="Paragraph 3")
If Not (IsNull(strInput3) Or strInput3 = "") Then
Dim strMsg4 As String
strMsg4 = "Please enter the text for
paragraph 4:"
strInput4 = InputBox(Prompt:=strMsg4,
Title:="Paragraph 4")
If Not (IsNull(strInput4) Or strInput4 =
"") Then
End If
End If
End If
'Allow user to enter text for signator and title
Dim strMsgS As String
strMsgS = "Please enter the signator's name:"
strInputS = InputBox(Prompt:=strMsgS,
Title:="Signator")
If Not (IsNull(strInputS) Or strInputS = "") Then
Dim strMsgT As String
strMsgT = "Please enter the signator's title:"
strInputT = InputBox(Prompt:=strMsgT,
Title:="Title")
If Not (IsNull(strInputT) Or strInputT = "")
Then
End If
End If
Else
MsgBox "There was no text entered for Paragraph 1."
Cancel = True
gvarRecordFound = False
End If
End Sub
----------------------------------------------------------
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
gvarRecordFound = True
Dim MyPos
MyPos = InStr(1, [txtJobHomeownerName], ",")
If MyPos > 0 Then
Me.txtLetterName = Mid([txtJobHomeownerName], MyPos + 1, 35) & " " &
Left([txtJobHomeownerName], MyPos - 1)
Me.txtSalutation = "Dear " & Mid([txtJobHomeownerName], MyPos + 1, 35)
& " " & Left([txtJobHomeownerName], MyPos - 1) & ":"
Else
Me.txtLetterName = [txtJobHomeownerName]
Me.txtSalutation = "Dear " & [txtJobHomeownerName] & ":"
End If
If Left([txtLetterName], 1) = " " Then
[txtLetterName] = Mid([txtLetterName], 2, 35)
End If
If Left([txtSalutation], 1) = " " Then
[txtSalutation] = Mid([txtSalutation], 2, 41)
End If
Me.txtLetterAddress = [txtJobAddress]
Me.txtLetterLocation = [txtJobMunicipalityName] & ", " &
[txtJobStateCode] & " " & [txtJobZipCode]
Me.txtClaimNumber = "'" & [txtJobCompanyReference] & "'"
Me.txtParagraph1 = strInput1
If Not (IsNull(strInput2) Or strInput2 = "") Then
Me.txtParagraph2 = strInput2
End If
If Not (IsNull(strInput3) Or strInput3 = "") Then
Me.txtParagraph3 = strInput3
End If
If Not (IsNull(strInput4) Or strInput4 = "") Then
Me.txtParagraph4 = strInput4
End If
If Not (IsNull(strInputS) Or strInputS = "") Then
Me.txtSignator = strInputS
Me.txtSignatorTitle = strInputT
Else
Me.txtSignator = "Renaissance Siding"
Me.txtSignatorTitle = ""
End If
End Sub
----------------------------------------------------------
Private Sub Report_Close()
If gvarRecordFound = False Then
Exit Sub
End If
Dim db As Database, rs As Recordset
Dim Response
Dim strMsgPrint As String
strMsgPrint = "Did the letter print properly?"
If vbNo = MsgBox(strMsgPrint, vbYesNo + vbQuestion, "Print Letter
Verification") Then
Response = acDataErrDisplay
Else
'Add letter subject to comments
Dim strInput As String, strMsg As String
strMsg = "What was the subject of this letter?"
strInput = InputBox(Prompt:=strMsg, Title:="Subject")
If IsNull(strInput) Or strInput = "" Then
strInput = "NOT SPECIFIED"
End If
Set db = CurrentDb
Set rs = db.OpenRecordset("tblJobComments", dbOpenDynaset)
On Error Resume Next
rs.AddNew
Dim strComment As String
strComment = "HOMEOWNER LETTER PRINTED (SUBJECT: " &
UCase(strInput) & ")."
rs!lngJobID = lngJobID
rs!txtJobComment = strComment
rs!dteJobCommentNow = Now()
rs!cboJobCommentPrivate = False
rs.Update
If Err Then
MsgBox "An error occurred, and the comments were not updated." &
vbCrLf & "Remember to add a comment to the database" & vbCrLf & "record
indicating that the letter was sent today."
Response = acDataErrContinue
Else
Response = acDataErrAdded
End If
rs.Close
End If
End Sub
**********************************************