我需要根据用户选择的条件来打印,也就是按用户设定条件出报表.
例如:   打印2005年的张三的相关记录,
        或者2004年李四的相关纪录
请帮忙,急!

解决方案 »

  1.   

    我是这个意思,用户可以在a窗体上选责要打印的条件,然后按打印按钮,则调用用datareport 窗体,显示打印预览,并能打印
      

  2.   

    根据设定条件,生成不同的dataset
      

  3.   

    '引用Excel("工程"/"引用"/Microsoft Excel Object X.0 Library)
    Private Sub Command1_Click()
        Dim AdoCon As New ADODB.Connection
        Dim AdoRec As New ADODB.Recordset
        Dim ctl As Object
        
        AdoCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.xls;Extended Properties=""Excel 8.0;HDR=YES;IMEX=1"""    '根据用户输入的姓名,查找对应的记录
        AdoRec.Open "select 姓名,年龄,学历,性别 from [Sheet1$] where 姓名='" & Text1.Text & "' ", AdoCon, adOpenDynamic, adLockReadOnly    With DataReport1
            Set .DataSource = AdoRec
            For Each ctl In .Sections.Item("Section1").Controls
                If TypeName(ctl) = "RptTextBox" Then
                    Select Case ctl.Name
                    Case "Text1"
                        ctl.DataField = AdoRec.Fields("姓名").Name
                    Case "Text2"
                        ctl.DataField = AdoRec.Fields("年龄").Name
                    Case "Text3"
                        ctl.DataField = AdoRec.Fields("学历").Name
                    Case "Text4"
                        ctl.DataField = AdoRec.Fields("性别").Name
                    End Select
                End If
            Next
        End With
        DataReport1.Show
    End Sub
      

  4.   

    to :faysky2() 
    ===================
    您的那段代码是一个按钮的单击事件,关键是记录集如何释入呀?如何关闭呀?否则无法释放内存呀?
      

  5.   

    to :wycfgq() 关键是记录集如何释入呀?如何关闭呀?否则无法释放内存呀?
    ---------------------------
    可以把cn和rs定义为全局变量,在退出程序时把他们释放,不过得注意一下,打开cn或rs前,先判断他们的状态:
        AdoCon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.xls;Extended Properties=""Excel 8.0;HDR=YES;IMEX=1"""
        If AdoCon.State <> adStateOpen Then AdoCon.Open     If AdoRec.State <> adStateClosed Then AdoRec.Close
        '根据用户输入的姓名,查找对应的记录
        AdoRec.Open "select 姓名,年龄,学历,性别 from [Sheet1$] where 姓名='" & Text1.Text & "' ", AdoCon, adOpenDynamic, adLockReadOnly
      

  6.   

    晕,引用ADO写成了引用Excel!!
    引用ADO("工程"/"引用"/Microsoft ActiveX Data Object 2.X Library)