I have a better example somewhere, but this may get you going in the right direction...
Let me know if this helps...Code:'The long-winded print process 'currentX and currentY used to accurately align columns 'THIS PROCESS A LITTLE SLOWER, BUT MORE EFFICIENT 'Could have used "TAB()", "SPC()",or "," , but had 'undesirable results Private Sub cmdPrint_Click() 'Reminder to User MsgBox "Please Make Sure That The Printer Is Ready...", vbCritical, "Printer Ready?" Dim TROWS, DPAGES, IPAGES, TPAGES, ENDNUM As Long 'Determines Number of Records divisible by 20 and remainder TROWS = Data2.Recordset.RecordCount DPAGES = TROWS / 20 IPAGES = Int(DPAGES) 'Determine Number of Pages for Print If DPAGES - IPAGES = 0 Then TPAGES = DPAGES Else TPAGES = IPAGES + 1 End If 'Error Handling for printer problems On Error Resume Next 'Setup Global for printer Printer.Orientation = 2 'Landscape Printer.Font = ARIAL Printer.FontSize = 6 'Begin Loop to Start Printing For X = 1 To TPAGES 'Prints "Header" Information Printer.CurrentY = 0 Printer.CurrentX = 100 Printer.Print "" Printer.Print "" Printer.CurrentX = 200 Printer.Print "PATENT PLANT SERVICES - DATA VIEWER - Listing by Plant" Printer.Print "" Printer.CurrentX = 200 Printer.Print "CURRENT SCAFFOLD LIST FOR : " & DBCombo1.Text Printer.Print "" Printer.CurrentX = 200 Printer.Print Data2.Recordset.RecordCount & " SCAFFOLDS ASSIGNED TO THIS PLANT as of " & txtDateTime.Text Printer.Print "" Printer.CurrentY = 1700 Printer.CurrentX = 200 Printer.Print "---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" Printer.CurrentY = 1900 Printer.CurrentX = 200 Printer.Print MSFlexGrid1.TextArray(0) 'Tag Printer.CurrentY = 1900 Printer.CurrentX = 1100 Printer.Print MSFlexGrid1.TextArray(1) 'Workorder No. Printer.CurrentY = 1900 Printer.CurrentX = 2600 Printer.Print MSFlexGrid1.TextArray(2) 'Location Printer.CurrentY = 1900 Printer.CurrentX = 6700 Printer.Print MSFlexGrid1.TextArray(3) 'Zone Planner Printer.CurrentY = 1900 Printer.CurrentX = 10000 Printer.Print MSFlexGrid1.TextArray(4) 'Area Supervisor Printer.CurrentY = 1900 Printer.CurrentX = 12000 Printer.Print MSFlexGrid1.TextArray(5) 'Build Date Printer.CurrentY = 1900 Printer.CurrentX = 13000 Printer.Print MSFlexGrid1.TextArray(6) 'Daily Rental Printer.CurrentY = 1900 Printer.CurrentX = 14000 Printer.Print MSFlexGrid1.TextArray(7) 'Extended Rental Printer.CurrentX = 200 Printer.Print "---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" 'Determines where to stop the loop If X = TPAGES Then ENDNUM = TROWS Else ENDNUM = 20 * X End If 'For Loop to Create Pages to Print '(20 indicates number of records to print on page) For Y = 1 + (20 * (X - 1)) To ENDNUM 'Determines where to set CurrentY Position W/ Regard to Next Sheet If X > 1 Then Nxtrow = 400 * (Y - (20 * (X - 1))) Else Nxtrow = 400 * Y End If 'Builds the Table Determined by CurrentX and CurrentY, 'along with row and sheet consideration Printer.CurrentY = 2000 + Nxtrow Printer.CurrentX = 200 Printer.Print MSFlexGrid1.TextMatrix(Y, 0) 'Tag Printer.CurrentX = 200 Printer.Print "---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" Printer.CurrentY = 2000 + Nxtrow Printer.CurrentX = 1100 Printer.Print MSFlexGrid1.TextMatrix(Y, 1) 'Workorder No. Printer.CurrentX = 200 Printer.Print "---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" Printer.CurrentY = 2000 + Nxtrow Printer.CurrentX = 2600 Printer.Print MSFlexGrid1.TextMatrix(Y, 2) 'Location Printer.CurrentX = 200 Printer.Print "---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" Printer.CurrentY = 2000 + Nxtrow Printer.CurrentX = 6700 Printer.Print MSFlexGrid1.TextMatrix(Y, 3) 'Planner Printer.CurrentX = 200 Printer.Print "---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" Printer.CurrentY = 2000 + Nxtrow Printer.CurrentX = 10000 Printer.Print MSFlexGrid1.TextMatrix(Y, 4) 'Area Supervisor Printer.CurrentX = 200 Printer.Print "---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" Printer.CurrentY = 2000 + Nxtrow Printer.CurrentX = 12000 Printer.Print Format(MSFlexGrid1.TextMatrix(Y, 5), "MM/DD/YYYY") 'Build Date Printer.CurrentX = 200 Printer.Print "---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" Printer.CurrentY = 2000 + Nxtrow Printer.CurrentX = 13000 Printer.Print Format(MSFlexGrid1.TextMatrix(Y, 6), "CURRENCY") 'Daily Rental Printer.CurrentX = 200 Printer.Print "---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" Printer.CurrentY = 2000 + Nxtrow Printer.CurrentX = 14000 Printer.Print Format(MSFlexGrid1.TextMatrix(Y, 7), "CURRENCY") 'Extended Rental Printer.CurrentX = 200 Printer.Print "---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" Next Y 'Prints "Footer" Information Printer.CurrentY = 10750 Printer.CurrentX = 200 Printer.Print "Sheet " & Printer.Page; " of " & TPAGES Printer.CurrentY = 10950 Printer.CurrentX = 200 Printer.Print "Current Daily Rental : " & txtTTLDaily.Text Printer.NewPage Next X Printer.EndDoc End Sub




Reply With Quote