我这里没有打印机,只是随便写了几句代码,如有问题,请提出 Dim db As Connection Dim WithEvents adoPrimaryRS As Recordset Set db = New Connection
Dim RecordWidth As Double Dim ThisRowY As Double Dim ThisColX As Double Dim ThisPageRecordID As Integer Dim i As Integer db.CursorLocation = adUseClient db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=D:\Program Files\Microsoft Visual Studio\VB98\Biblio.mdb;"
Set adoPrimaryRS = New Recordset adoPrimaryRS.Open "select Au_ID,Author,[Year Born] from Authors", db, adOpenStatic, adLockOptimistic Printer.ScaleMode = 7 Printer.ScaleLeft = 0 Printer.ScaleTop = 0 RecordWidth = 2 ThisPageRecordID = 0 Do While THISPAGEREOCRDID < adoPrimaryRS.RecordCount For i = 0 To adoPrimaryRS.Fields.Count - 1 If adoPrimaryRS.RecordCount > 0 Then adoPrimaryRS.MoveFirst adoPrimaryRS.Move ThisPageRecordID End If Printer.CurrentX = 0 ThisRowY = Printer.CurrentY ThisColX = 0 Printer.Print adoPrimaryRS.Fields(i).Name Do While Not adoPrimaryRS.EOF And ThisColX + RecordWidth < Printer.ScaleWidth Printer.CurrentY = ThisRowY ThisColX = ThisColX + RecordWidth Printer.CurrentX = ThisColX Printer.Print adoPrimaryRS.Fields(i).Value adoPrimaryRS.MoveNext ThisPageRecordID = ThisPageRecordID + 1 Loop Next i Printer.NewPage Loop Printer.EndDoc
Dim db As Connection
Dim WithEvents adoPrimaryRS As Recordset
Set db = New Connection
Dim RecordWidth As Double
Dim ThisRowY As Double
Dim ThisColX As Double
Dim ThisPageRecordID As Integer
Dim i As Integer
db.CursorLocation = adUseClient
db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=D:\Program Files\Microsoft Visual Studio\VB98\Biblio.mdb;"
Set adoPrimaryRS = New Recordset
adoPrimaryRS.Open "select Au_ID,Author,[Year Born] from Authors", db, adOpenStatic, adLockOptimistic
Printer.ScaleMode = 7
Printer.ScaleLeft = 0
Printer.ScaleTop = 0
RecordWidth = 2
ThisPageRecordID = 0
Do While THISPAGEREOCRDID < adoPrimaryRS.RecordCount
For i = 0 To adoPrimaryRS.Fields.Count - 1
If adoPrimaryRS.RecordCount > 0 Then
adoPrimaryRS.MoveFirst
adoPrimaryRS.Move ThisPageRecordID
End If
Printer.CurrentX = 0
ThisRowY = Printer.CurrentY
ThisColX = 0
Printer.Print adoPrimaryRS.Fields(i).Name
Do While Not adoPrimaryRS.EOF And ThisColX + RecordWidth < Printer.ScaleWidth
Printer.CurrentY = ThisRowY
ThisColX = ThisColX + RecordWidth
Printer.CurrentX = ThisColX
Printer.Print adoPrimaryRS.Fields(i).Value
adoPrimaryRS.MoveNext
ThisPageRecordID = ThisPageRecordID + 1
Loop
Next i
Printer.NewPage
Loop
Printer.EndDoc