我从网上找了如下代码打印dbgrid的内容:
Private Sub Command1_Click()
Dim I As Long, J As Long, K As Long
Dim PrintString As String
For I = 0 To Data1.Recordset.RecordCount - 1
If K = DBGrid1.VisibleRows Then
DBGrid1.Scroll 0, DBGrid1.VisibleRows
K = 0
End If
For J = 0 To DBGrid1.Columns.Count - 1
PrintString = PrintString &
DBGrid1.Columns(J).CellText(DBGrid1.RowBook(K)) & "/"
Next
Printer.Print PrintString
PrintString = ""
K = K + 1
DoEvents
Next
End Sub
经过实验发现,经常出现某行多打印一次,或者少打印一行的情况
请问是怎么回事啊?
Private Sub Command1_Click()
Dim I As Long, J As Long, K As Long
Dim PrintString As String
For I = 0 To Data1.Recordset.RecordCount - 1
If K = DBGrid1.VisibleRows Then
DBGrid1.Scroll 0, DBGrid1.VisibleRows
K = 0
End If
For J = 0 To DBGrid1.Columns.Count - 1
PrintString = PrintString &
DBGrid1.Columns(J).CellText(DBGrid1.RowBook(K)) & "/"
Next
Printer.Print PrintString
PrintString = ""
K = K + 1
DoEvents
Next
End Sub
经过实验发现,经常出现某行多打印一次,或者少打印一行的情况
请问是怎么回事啊?
http://www.anylib.com
If K = DBGrid1.VisibleRows Then
DBGrid1.Scroll 0, DBGrid1.VisibleRows
K = 0
End If
请大家帮帮忙啊,多谢了
Private Sub Form_Activate()
Data1.Recordset.MoveLast
Data1.Recordset.MoveFirst
End Sub
这个过程是做什么用的?PS:怎么没人理啊...
Data1.Recordset.MoveFirst是下一步的具体操作最好由表头开始
如果用ado和datagrid,会不会好一些?
打印位置好像可以用tab(宽度的值)来定位,你可以试一下