我是用VB通过EXCEL打印,自己做了个模板,要求每页20条记录,另外要求根据条件也能自动换页,部分代码如下:
Dim rows As Integer
 rows = 7                  从第7行开始写入
 If rs.RecordCount > 0 Then
    While Not rs.EOF
   With exlapp.Sheets(1)
   .Cells(rows, 3) = rs.Fields("种类")
   .Cells(rows, 4) = rs.Fields("号码")
   .Cells(rows, 5) = rs.Fields("姓名")
   .Cells(rows, 6) = rs.Fields("地址")
   .Cells(rows, 7) = rs.Fields("日期")
   .Cells(rows, 8) = rs.Fields("备注")
        
   rs.MoveNext
   rows = rows + 1
   
   End With不知道该怎么写代码?求教

解决方案 »

  1.   

    如数据量太多有如下方案可以解决:1、若是无限制的数据行数,那么可在EXCEL模板中设置好每页打固定打印的表头,然后直接循环在EXCEL里填充数据,打印时一页排满会自动换页打印。2、若是在EXCEL模板中已设定好了布局格式,需将数据填充到其中部分位置,那么可以考虑将RS数据集分页显示,每页显示的数据设为刚好能填满EXCEL模板中的位置即可,填满一页打印一页
      

  2.   

    Private Sub Loadcontrol(lPage As Long)
           Dim adoPrimaryRS   As ADODB.Recordset
           Dim lPageCount   As Long     '标记总共页数
           Dim nPageSize   As Integer
           Dim lCount   As Long
             
           '每页显示的纪录
           nPageSize = 10
           Set adoPrimaryRS = New ADODB.Recordset
           adoPrimaryRS.Open "select  name,password  from  sysuser", conn, adOpenStatic, adLockOptimistic
     
           adoPrimaryRS.PageSize = nPageSize
           '页数
           lPageCount = adoPrimaryRS.PageCount
           If lCurrentPage > lPageCount Then
                   lCurrentPage = lPageCount
           End If
             
           adoPrimaryRS.AbsolutePage = lCurrentPage
           '定义另一个记录集
           Dim objrs   As New ADODB.Recordset
           '添加字段名称
           For lCount = 0 To adoPrimaryRS.Fields.Count - 1
                   objrs.Fields.Append adoPrimaryRS.Fields(lCount).Name, adVarChar, adoPrimaryRS.Fields(lCount).DefinedSize
           Next
           '打开记录集
           objrs.Open
           '将指定记录数循环添加到objrs中
           For lCount = 1 To nPageSize
                   objrs.AddNew
                   'objrs!Bill_id = adoPrimaryRS!Bill_id
                   objrs!Name = adoPrimaryRS!Name
                   'objrs!Bill_num = adoPrimaryRS!Bill_num
                   objrs!Password = adoPrimaryRS!Password
                   'objrs!Cur_Date = adoPrimaryRS!Cur_Date
                   adoPrimaryRS.MoveNext
                   If adoPrimaryRS.EOF Or adoPrimaryRS.BOF Then Exit For
           Next
           '绑定
           Set DataGrid1.DataSource = objrs
             
           '显示页数
           txtPage = lPage & "/" & adoPrimaryRS.PageCount
    End Sub思路大概这样的吧!也不太懂!!
      

  3.   

    是不是(可不可以)一页创建一个excel文件然后分别打印呢??
      

  4.   

    http://www.wave12.com/web/SigCon.asp?bCate=50&sCateName=%B9%A6%C4%DC%BD%E9%C9%DC&ID=173&CateName=wsReport4.5