Software Design & Solutions Pty Ltd.
SDSSoftware at Optusnet.com.au
Thu Jun 19 18:32:41 CDT 2003
Bob - just wondering.....do the users have a preference for the input box approach? Another idea is to have a form (bound to a report table) where the user gets to plug in the content to those fields and then click a preview button to produce the report with that data. I use that approach quite a lot - it can be very frustrating entering data into input boxes - one false move and you have to start over. With the form approach they can keep editing until they get it right and re-use common text.
Kath
----- Original Message -----
From: Bob Gajewski
To: 'accessd at databaseadvisors.com'
Sent: Friday, June 20, 2003 1:55 AM
Subject: [AccessD] Print letter from InputBox data (contains long code at bottom)
Dear Group
I have a generic letter report that uses InputBoxes to allow custom
on-the-fly paragraph data entry.
The sequence asks the user for paragraph 1. If anything was input, it asks
for paragraph 2, then 3, then 4. Finally, it asks for the signator's name
and title. The report os then displayed in preview mode. ALL OF THIS WORKS
PERFECTLY. I can see the entire letter with all data, as entered. Also,
when the preview is closed, the user is asked whether the letter printed
properly, and if they respond yes, it automatically writes a record to the
comments child table to record the event. THIS ALSO WORKS PERFECTLY.
My problem is when I try to actually print the letter (using File, Print or
clicking on the Print button), the program somehow starts over and prompts
the user for paragraph one again (et cetera). I sure don't want users
having to type their letters twice!
I'm missing something probably very obvious, and any guidance would be
greatly appreciated!
Thanks,
Bob Gajewski
**********************************************
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 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] & "'"
'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
Me.txtParagraph1 = strInput1
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
Me.txtParagraph2 = strInput2
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
Me.txtParagraph3 = strInput3
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
Me.txtParagraph4 = strInput4
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
Me.txtSignator = strInputS
Dim strMsgT As String
strMsgT = "Please enter the signator's title:"
strInputT = InputBox(Prompt:=strMsgT,
Title:="Title")
If Not (IsNull(strInputT) Or strInputT = "")
Then
Me.txtSignatorTitle = strInputT
End If
Else
Me.txtSignator = "Renaissance Siding"
End If
Else
MsgBox "There was no text entered for Paragraph 1."
Cancel = True
gvarRecordFound = False
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
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://databaseadvisors.com/pipermail/accessd/attachments/20030620/c2dd5fe1/attachment-0001.html>