dim Db As Database DataReport1.DataSource=Db.OpenRecordset(Sqlstr) ,报错类型不匹配,可是用adodb.Recordset赋值是结果是对的,不知知怎么将Db.OpenRecordset(Sqlstr)的记录赋值给DataReport?

解决方案 »

  1.   

    用Recordset.add 
     rs.fields("字段名")=db.recordset.fields("字段名")
      

  2.   

    dim i as integer
    for  i=0 to  100
        rs.fiels(i)=db.recordset.fields(i)
    next
      

  3.   

    Dim rs As New ADODB.Recordset
    Private Sub DataReport_Initialize()
        
        Dim Sql As String
        Dim Sqltable As String
        Sqltable = Trim$(Fsettle.Ttableno.Text)
    '连接数据库(Access)'打开记录集( 根据frmMain窗体上Text1中的日期查询 )
        Sql = "select food.foodname,choicemenu.qty from food,choicemenu " & _
                "where choicemenu.tableno='" & Sqltable & "'and food.foodno=choicemenu.foodno"
        rs.Open Sql, P_cnn, adOpenKeyset, adLockOptimistic
        
    '设置text控件属性
        DataReport1.Sections("Section1").Controls("text1").DataField = "foodname"
        DataReport1.Sections("Section1").Controls("text2").DataField = "qty"
        DataReport1.Sections("Section1").Controls("Label2").Caption = CStr(DataReport1.Width)
        DataReport1.BottomMargin = 1440
        DataReport1.LeftMargin = 70
        'DataReport1.RightMargin = 7000
        DataReport1.TopMargin = 70
        Set DataReport1.DataSource = rs
        DataReport1.ReportWidth = 700
    End SubPrivate Sub DataReport_QueryClose(Cancel As Integer, CloseMode As Integer)
       rs.Close
    End Sub