一个表。包含多个组多人工作情况的内容。想通过报表打印出来。要求按照每一个人一个月的数据打印,也要每个组每个月的打印。请问怎么解决??

解决方案 »

  1.   

    字段 日期    姓名     组别      数量
        08/09   李四      ER       200      
        08/09   张三      GT       300
        08/10   李四      ER       150
        08/10   张三      GT       350现在我想如果就拿张三,和李四的各用一张纸打印出来
     08/09     张三      ER      300
     08/10     张三      ER      350另一个
     08/10   李四      GT       200
     08/10   李四      GT       150
    也用一张纸打印出来..
    应该怎么实现???
      

  2.   

    sql="select * from TableName where 姓名= '" & text1.text & "'"
    'text1.text='張三' rs.open sql,conn,1,3
    set datarepord.datasource=rs
      

  3.   

    '简单一点,如下:Private Sub Command1_Click()
    On Error GoTo errHandlerr
    '每一个人的数据打一张报表
    Dim adoCnn As New ADODB.Connection
    Dim adoRst1 As New ADODB.Recordset
    Dim adoRst2 As New ADODB.RecordsetDim cSql As String
    Dim ii As Integer'连接数据库 cSql = "SELECT DISTINCT 姓名 FROM 表 ORDER BY 姓名"
    With adoRst1
         If .State = adStateOpen Then .Close
        .Open cSql, adoCnn, 1, 3
         If .RecordCount <> 0 Then
            .MoveLast
            .MoveFirst
            For ii = 1 To .RecordCount
                 cSql = "SELECT * FROM 表 WHERE 姓名='" + Trim(.Fields(姓名)) + "' ORDER BY 日期"
                 With adoRst2
                      If .State = adStateOpen Then .Close
                     .Open cSql, adoCnn, 1, 3
                      If .RecordCount <> 0 Then Set DataRepord.DataSource = adoRst2
                 End With
                .MoveNext
                If .EOF Then .MoveFirst
            Next
         End If
    End With
    Exit Sub
    errHandlerr:
    MsgBox Err.Description + ":" + CStr(Err.Number), vbCritical, "有错误发生 . . ."
    End SubPrivate Sub Command2_Click()
    On Error GoTo errHandlerr
    '所有人的数据打一张报表
    Dim adoCnn As New ADODB.Connection
    Dim adoRst As New ADODB.RecordsetDim cSql As String
    Dim ii As Integer'连接数据库 cSql = "SELECT * FROM 表 ORDER BY 姓名,日期"
    With adoRst1
         If .State = adStateOpen Then .Close
        .Open cSql, adoCnn, 1, 3
         If .RecordCount <> 0 Then Set DataRepord.DataSource = adoRst2
    End WithExit Sub
    errHandlerr:
    MsgBox Err.Description + ":" + CStr(Err.Number), vbCritical, "有错误发生 . . ."
    End Sub'复杂一点,你可在 SQL 语句中加入 GROUP BY 和 HAVING 进行按条件(姓名、时间、组别等)分组打印
      

  4.   

    '上面第二个有书写错误,应为:
    Private Sub Command2_Click()
    On Error GoTo errHandlerr
    '所有人的数据打一张报表
    Dim adoCnn As New ADODB.Connection
    Dim adoRst As New ADODB.RecordsetDim cSql As String
    Dim ii As Integer'连接数据库 cSql = "SELECT * FROM 表 ORDER BY 姓名,日期"
    With adoRst
         If .State = adStateOpen Then .Close
        .Open cSql, adoCnn, 1, 3
         If .RecordCount <> 0 Then Set DataRepord.DataSource = adoRst
    End WithExit Sub
    errHandlerr:
    MsgBox Err.Description + ":" + CStr(Err.Number), vbCritical, "有错误发生 . . ."
    End Sub