能给出代码更感谢﹗

解决方案 »

  1.   

    [email protected]谢谢了﹗顺便请问你有做datareport的资料吗?或者你教教我也可以。为什幺我总是取不到数据呢?如果我要把MSFLEXGRID中的数据用datareport做成报表该怎幺做?
      

  2.   

    DataEnvironment1.Commands("Command1").Parameters("p") = Text1.Text 
        DataReport1.Show
    这段语句应该放在哪里?
      

  3.   

    DataEnvironment1.Commands("Command1").Parameters("p") = Text1.Text 
        DataReport1.Show
    这段语句应该放在哪里?
    应该放在窗体中调用
    我是这样用的,deparam是数据环境,rptparam是报表
    deparm中的cmdparam的sql语句是Select * from orders where orderdate between ? and ?
    定义两个参数即可
    Private Sub cmdprint_Click()
       If deparam.rscmdparam.State = adStateOpen Then
          deparam.rscmdparam.Close
       End If
        deparam.cmdparam txtfrom, Txtto
        Load rptparam
        rptparam.Show
    End Sub
      

  4.   

    我现在也已经把数据取到MSFLEXGRID中了﹐怎幺样才能以报表的格式打印出来
    你是打印当前的msflexgrid还是数据如果打印数据,可以使用print对象
      

  5.   

    是以msflexgrid的格式打印出数据。
      

  6.   

    使用print对象,只打印数据,使用dao
    希望对你有帮助
    Private Sub Command1_Click()
    Const TOP_MARGIN = 1440
    Const LEFT_MARGIN = 1440Dim bottom_margin As Single
    Dim db As Database
    Dim qdef As QueryDef
    Dim rs As Recordset
    Dim dbname As String
    Dim the_year As Integer
    Dim the_value As Integer
        DoEvents
        dbname = App.Path
        If Right$(dbname, 1) <> "\" Then dbname = dbname & "\"
        dbname = dbname & "data.mdb"
        Set db = OpenDatabase(dbname)    ' Get the records.
        Set qdef = db.CreateQueryDef("", _
            "SELECT Year, Value FROM YearlyValues")
        Set rs = qdef.OpenRecordset(dbOpenSnapshot)    ' Read the data and print it.
        bottom_margin = Printer.ScaleTop + _
            Printer.ScaleHeight - 1440
        rs.MoveFirst
        
        Printer.CurrentY = TOP_MARGIN
        Do While Not rs.EOF
            Printer.CurrentX = LEFT_MARGIN
            Printer.Print _
                Format$(rs!Year, "yyyy") & _
                vbTab & _
                Format$(rs!Value, "0.0000")        ' See if we have filled the page.
            If Printer.CurrentY >= bottom_margin Then
                ' Start a new page.
                Printer.NewPage
                Printer.CurrentY = TOP_MARGIN
            End If
            
            rs.MoveNext
        Loop    rs.Close
        db.Close
        Printer.EndDoc
    End Sub
      

  7.   

    我是用activereport,自己写数据。