DataReport的内容不随数据库的内容变化
http://www4.netease.com/~askpro/msg19/qa74.htm    Requery方 法 ! 
    也 可 以 直 接 使 用 ADODB.Recordset!不 使 用 DataEnvironment!例 : 
    ... 
     public adoRecordsetX as ADODB.Recordset 
    ... 
     
     Private Sub DataReport_Initialize() 
     adoRecordsetX.Requery 
     Set DataReport1.DataSource = adoRecordsetX '设 置 DataReport 的 数 据 源 
     ... 
     '绑 定 某 字 段 
     Me.Sections.Item("Section1").Controls.Item("text1").DataField=adoRecordsetX.Fields.Item(0).Name 
     ... 
     End Sub 
    wuxiaoqiang的 意 见 : 
    在 你 们 有 关 上 述 问 题 的 回 答 , 我 想 再 增 加 一 种 更 简 单 的 解 决 办 法 。 
     1.在 datareport 报 表 中 设 置 datamember和 datasource为 空 。 
     2.将 以 前 绑 定 的 RptTextBox的 datamember设 为 空 , 保 留 原 来 的 datafield. 
     3.在 打 印 操 作 中 增 加 以 下 代 码 : 
     Dim db As Connection 
     Set db = New Connection 
     db.CursorLocation = adUseClient 
     db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=" + App.path + "\finance.mdb" + ";" 
     
     Set tb = New Recordset 
     tb.Open "select * from dailyfeeprint", db, adOpenStatic, adLockOptimistic 
     With tb 
     
     .AddNew 
     ![工 号 ] = Combo1(0).Text 
     ![姓 名 ] = txtFields(0).Text 
     ![交 费 日 期 ] = txtFields(1).Text 
     ......... 
     .Update 
     End With 
     
     Set data1.Recordset = tb 
     
     Set datareport1.DataSource = data1 
     datareport1.Show 
     datareport1.PrintReport 
    其 实 这 个 问 题 也 搞 得 我 很 头 疼 , 希 望 能 让 其 他 人 不 再 头 疼 。 
    herycom的 意 见 : 
    直 接 Requery 一 下 就 可 以 了 。 
    Private Sub DataReport_Initialize() 
     DataEnvironment1.rsCommand1.Requery 
    End Sub 此问题由于溪玥回答。 

解决方案 »

  1.   

    您要对DataEnvironment中的数据源关闭后重新开启,然后再看DataReport中的数据就能更新了。 我也遇到过这样的情况,现在对DataEnvironment中的数据源我用 :
        sSQL = "SHAPE {SELECT * from mytable} AS detail COMPUTE detail BY field1"
        If myData.rs_grouping.State = 1 Then myData.rs_grouping.Close
        myData.rs_grouping.Open sSQL, myData.Public, adOpenKeyset, adLockReadOnly, adCmdText
        祝您好运!