我想按照班机打印报表,但是每个班级要从新的一页开始打印,如何在datareport中实现?谢谢!!!

解决方案 »

  1.   

    按班级分组,然后设置“分组标头”强制分页(ForcePageBreak = 1 - rptPageBreakBefore)
      

  2.   

    大虾,具体一些么,我一分组,就过滤掉重复的数据呀.表单结构
    ID 主键 int aoto+1
    考号 vchar
    学号 vchar
    班级 vchar
      

  3.   

    而且分组语句提示XXX字段不在聚合函数中
      

  4.   

    试试:
    '运行VB,选择“工程_引用”命令,引用 Microsoft ActiveX Data Objects 2.5 LibraryOption ExplicitPrivate Sub DataReport_Initialize()
        Dim cn As ADODB.Connection
        Dim rs As ADODB.Recordset
        Dim Sql, strSql As String
        
    '连接数据库(Access)
       Set cn = New ADODB.Connection
        With cn
            .Provider = "MSDataShape.1"     '一定要这句
            .Open "Data Provider=Microsoft.Jet.OLEDB.4.0 ;" & _
                "Data Source=" & App.Path & "\db1.mdb;" & _
                "Persist Security Info=False"
            '用数据源连接(SQL数据库可以这样连接)
            '.Open "ODBCName", "sa", "Password"
        End With'添加RptTextBox控件,设置属性    '分组标头,注意不要设置其DataMember属性
        RptGroup.Sections("Section6").Controls("text1").DataField = "班级"
      同时在属性窗口,设置“分组标头”强制分页(ForcePageBreak = 1 - rptPageBreakBefore)    '细节标头,其中“miCmd”是自定义的分组名称
        RptGroup.Sections("Section1").Controls("text2").DataField = "id"
        RptGroup.Sections("Section1").Controls("text2").DataMember = "miCmd"
        RptGroup.Sections("Section1").Controls("text3").DataField = "考号"
        RptGroup.Sections("Section1").Controls("text3").DataMember = "miCmd"
      RptGroup.Sections("Section1").Controls("text4").DataField = "学号"
        RptGroup.Sections("Section1").Controls("text4").DataMember = "miCmd"
        
    '查询表:
        Sql = "SELECT * FROM `tb`"
        '这里注意tb不是用单引号括起来的,而是用Tab键上方的那个带~的键上的`括起来的。
        'SQL数据库用数据源的话,可以不用这个`号
        '在表名后可以加上Where子句
        
    '分组纪录集:
        strSql = "SHAPE {" & Sql & " } " & _
            "AS miCmd COMPUTE miCmd BY '班级' "
        Set rs = New ADODB.Recordset
        rs.Open strSql, cn, adOpenStatic, adLockReadOnly    Set Me.DataSource = rs
    End Sub
      

  5.   

    我用SQL Server呀,provider必须是SQLOLEDB.1呀,怎么办?
      

  6.   

    SQL Server的我调试好了,但是预览的时候还是不分页
        strConn = "Provider=MSDataShape;Data Provider=SQLOLEDB;Password=" & frmLogin.txtPWD.Text & ";Persist Security Info=True;User ID=" & frmLogin.txtUID.Text & ";Initial Catalog=学籍管理;Data Source=" & frmLogin.txtServer.Text    Conn.Open strConn, "", "", -1
      

  7.   

    谢谢 vbman2003,我有点急躁,还有点懒,呵呵,给你加分