我想动态改变数据环境的数据源,如我在设计时连接的为sql server 服务器为A,数据库为data1,然后在代码里我把它改为服务器为B,数据库为data2,但是报表还是去连接A的data1,不知是怎么回事?
代码如下:
在系统设计时Bbconn连道A上的data1
然后在启动后:
DataEnvironment1.Bbconn.ConnectionString = "Provider=SQLOLEDB.1;Password=;Persist Security Info=True;User ID=sa;Initial Catalog=data2;Data Source=B"
但最后打开报表时却还是连接A上的data1,问题在哪?

解决方案 »

  1.   

    rs.Open "select * from inwh where indate1 >=#" & frmInWhereT.dtp1.Value & "# and indate1 <=#" & frmInWhereT.dtp2.Value & "#", Conn
    Report.Database.SetDataSource rs, ado
    Report.DiscardSavedData
      

  2.   

    问题应该在你调用DataEnvironment1的地方
      

  3.   

    在程序中直接指定报表数据源,不要用DataEnvironment.如报表名为Report:
    dim rs as new adodb.recordset
    rs.open “select * from table1”,cn,1,1 (cn为连接字符串)
    set  Report.datasource=rs
    Report.show
    这样你可以动态的来指定报表的数据源.如果要从别的数据库取数据时,你也只要更改cn连接字符串就可.