这个还不简单,先将数据全部导入到EXCEL中,然后在EXCEL中录制一个宏,设置打印标题,就是前面两行,然后将这个宏做为程序的模块。当程序打开EXCEL文档时就调用录的宏就可以实现这个功能了

解决方案 »

  1.   

    每页都打印表头,在Excel里很好设置,你可以先建一个模板文件,然后把数据导入这个模板不就可以了?
      

  2.   

    Dim vbExcel As Object
    Dim strFileName As String
    strFileName = "C:\DataFile\Result.xls"
    Set vbExcel = CreateObject("Excel.Application")
    With vbExcel
        .Visible = True
        '打开Excel的workbook
        .Workbooks.Open FileName:=strFileName, ReadOnly:=True
        .Range("A11").Select
        .ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
        .Range("A21").Select
        .ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
    End With
    上面这段角本会在11、21行前插入分页符,你只要在每页前面显示标题即可
    Set vbExcel = Nothing
      

  3.   

    下面这段代码是我打印用的代码。不过我觉得导入Excel会比较容易打印。
    我是将表格放在Picture控件上,还包括滚动条。
    scadatab是窗体,我已经用Form1替代Private Sub print_tab_Click()
    Dim old_y As Long
    Dim old_x As Long
    Dim old_h_value As Boolean
    Dim old_v_value As Boolean
    Dim old_py As Long
    Dim old_px As LongDim my_str As String
    Dim X As Long
    Dim Y As Long
    Dim my_s_x As Long
    Dim my_s_y As Long
    Dim my_e_x As Long
    Dim my_e_y As LongOn Error Resume Nextold_y = Form1.Height
    old_x = Form1.Width
    old_v_value = VScroll1.Visible
    old_h_value = HScroll1.Visible
    old_py = Picture2.Top
    old_px = Picture2.LeftGrid1.Visible = False
    VScroll1.Visible = False
    HScroll1.Visible = FalsePicture2.Top = 0
    Picture2.Left = 0
    Y = 0
    For i = 0 To Grid1.Rows - 1
    Y = Y + Grid1.RowHeight(i) + (Screen.TwipsPerPixelY)
    Next iX = 0
    For i = 0 To Grid1.Cols - 1
    X = X + Grid1.ColWidth(i) + (Screen.TwipsPerPixelX)
    Next i
    Form1.Height = Y + 1800
    Form1.Width = X + 500my_s_x = Grid1.Left
    my_e_x = Grid1.Left + X
    my_s_y = Grid1.Top
    my_e_y = Grid1.Top + 1
    Picture2.Line ((my_s_x), (my_s_y))-((my_e_x), (my_e_y)), QBColor(0), BFmy_s_x = Grid1.Left - 1
    my_e_x = Grid1.Left
    my_s_y = Grid1.Top
    my_e_y = Grid1.Top + Y - 1
    Picture2.Line ((my_s_x), (my_s_y))-((my_e_x), (my_e_y)), QBColor(0), BFmy_s_x = Grid1.Left + X
    my_e_x = Grid1.Left + X + 1
    my_s_y = Grid1.Top
    my_e_y = Grid1.Top + Y - 1
    Picture2.Line ((my_s_x), (my_s_y))-((my_e_x), (my_e_y)), QBColor(0), BF
    my_s_x = Grid1.Left
    my_e_x = Grid1.Left + X
    my_s_y = Grid1.Top + Y
    my_e_y = Grid1.Top + Y + 1
    Picture2.Line ((my_s_x), (my_s_y))-((my_e_x), (my_e_y)), QBColor(0), BF
    my_s_x = Grid1.Left
    my_s_y = Grid1.Top
    my_e_x = Grid1.Left + X + 1
    my_e_y = Grid1.Top + Y + 1
    For i = 0 To Grid1.Cols - 1
      my_s_x = (CLng((my_s_x + Grid1.ColWidth(i) + (Screen.TwipsPerPixelX)) / 15)) * 15
      Picture2.Line ((my_s_x), (my_s_y))-((my_s_x), (my_e_y)), QBColor(0), BF
    Next imy_s_x = Grid1.LeftFor i = 0 To Grid1.Rows - 1
      my_s_y = my_s_y + Grid1.RowHeight(i) + (Screen.TwipsPerPixelY)
    Picture2.Line ((my_s_x), (my_s_y))-((my_e_x), (my_s_y)), QBColor(0), BF
    Next imy_s_y = Grid1.Top + (15 * 5)For i = 0 To Grid1.Rows - 1
    Grid1.Row = i
    my_s_x = Grid1.Left + (15 * 5)
    For j = 0 To Grid1.Cols - 1
    Grid1.Col = j
          my_str = Grid1.Text
          If Len(my_str) <> 0 Then
              Picture2.CurrentX = my_s_x
              Picture2.CurrentY = my_s_y
              Picture2.Print my_str
          Else
          End If
      
      my_s_x = my_s_x + Grid1.ColWidth(j) + (Screen.TwipsPerPixelX)
          
    Next j
      my_s_y = my_s_y + Grid1.RowHeight(i) + (Screen.TwipsPerPixelY)Next i
    Form1.PrintFormmy_s_x = Grid1.Left
    my_s_y = Grid1.Top
    my_e_x = Grid1.Left + X + 1
    my_e_y = Grid1.Top + Y + 1Picture2.Line ((my_s_x), (my_s_y))-((my_e_x), (my_e_y)), QBColor(15), BFGrid1.Visible = True
    VScroll1.Visible = old_v_value
    HScroll1.Visible = old_h_value
    Picture2.Top = old_py
    Picture2.Left = old_pxForm1.Height = old_y
    Form1.Width = old_xEnd Sub不知道你能不能用上
      

  4.   

    但是我不会设计标题啊,在VB中!!!在VB中我可以将数据从DATABASE中送到EXCEL,简单的格式化,但是其他的我就不会了,怎么将EXCEL中开始的地方设为标题行,我不晓得在那里弄啊!!(其实是在EXCEL中我也不会,会的话在VB中就会了)
     pawly(pawly) :
             你的意思是然后在每一页的开始地方插入两行标题数据吗???这样是好,但是我想,这样可能在看数据的时候突然在一个文档中间有标题信息不是很好啊!!!!
      

  5.   

    我刚刚在EXCEL里面的帮助里面学回了设置,谢谢各位的提点啊,
    现在开始给分!!!!