师兄们:
      您们好!数据库有以下关系:
   
id    姓名       学号
1     张三       2001
2     李四       2002
3     王五       2003
4     谢六       2004
5     刘七       2005
6     陈八       2006现在我想把这些数据导入到Excel里并打印,但一旦记录大于5条时,就把最后的条数自动打印到Excel的第二页!(注:Excel模板只有一个的!)
各位师兄们,求助了!!!
一句提醒,一段代码,都对我有天大的感激···,谢谢!

解决方案 »

  1.   

    i=0
    '初始化excel环境,打开sheet
    Set ex = CreateObject("excel.application")
    ex.Visible = False
        
    Set exWBook = ex.Workbooks.Open(模版文件名)
    Set exSheet = exWBook.Worksheets(模版表名)Do While not rs.eof
        i=i+1
        if i>5 then
             i = 1
             exSheet.PrintOut
             exWBook.Saved = false
             exWBook.Close False
        else
             '读取数据库并添加入excel表    end if
        rs.movenext
    loopexSheet.PrintOut
    exWBook.Saved = false
    exWBook.Close False
    ex.Quit
    Set exSheet = Nothing
    Set exWBook = Nothing
    Set ex = Nothing
      

  2.   

    疾风之狼师兄:
       历害!有一点不明白:
             if i>5 then
             i = 1
             exSheet.PrintOut
             exWBook.Saved = false
             exWBook.Close False
       这样就能自动打印全部六条记录吗?对了,这样不是要按两次按钮?理想中希望是这样的只要按一下按钮,如果五条记录以内就在用一张纸打印出来,超过五条的就打印两张纸出来!
       疾风之狼师兄,现只能看你了,谢谢!
      

  3.   

    exSheet.Rows(Val(sRowNo) + 1).PageBreak = xlPageBreakManual '插入分页符
      

  4.   

    哦,那个地方是我写错了,应该这样:
        if i>5 then
             i = 1
             exSheet.PrintOut
             exWBook.Saved = false
             exWBook.Close False
             Set exWBook = ex.Workbooks.Open(模版文件名)
             Set exSheet = exWBook.Worksheets(模版表名)
         end if
         '读取数据库并添加入excel表这样的效果是每页5条数据
      

  5.   

    粉红女郎师兄:
             PageBreak  ‘估计应是换页的,那属性sRowNo做是什么的?在线!
      

  6.   

    Val(sRowNo) + 1就是第几行,程序没改就拷贝过来了,你只需放行数就行了