在datareport中如何来按我的SQL语句分组打印报表?

解决方案 »

  1.   

    下面是一种解决方法:
    Option 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"
        End With'设置RptTextBox控件属性
        '分组标头,注意不要设置其DataMember属性
        RptGroup.Sections("Section6").Controls("text1").DataField = "id"
        '细节标头,其中“miCmd”是分组名称
        RptGroup.Sections("Section1").Controls("text2").DataField = "iName"
        RptGroup.Sections("Section1").Controls("text2").DataMember = "miCmd"
        RptGroup.Sections("Section1").Controls("text3").DataField = "iCode"
        RptGroup.Sections("Section1").Controls("text3").DataMember = "miCmd"
        
    '查询表:
        Sql = "SELECT id,iName,iCode FROM `tb`"
        '这里注意tb不是用单引号括起来的,而是用Tab键上方的那个带~的键上的`括起来的。
        '在表名后可以加上Where子句
        
    '打开查询记录集
        strSql = "SHAPE {" & Sql & " } " & _
            "AS miCmd COMPUTE miCmd BY 'ID' "
        Set rs = New ADODB.Recordset
        rs.Open strSql, cn, adOpenStatic, adLockReadOnly    Set Me.DataSource = rsEnd Sub