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>