Dynamic 水晶报告长安数据源

Dynamic 水晶报告长安数据源,dynamic,vb6,crystal-reports,datasource,Dynamic,Vb6,Crystal Reports,Datasource,假设我有两个具有相同表的数据库。我希望能够保持相同的crystal报表,但可以动态地将数据源从一个数据库更改为另一个数据库。这可能吗?到目前为止,im使用VB6和crystal报表通过存储在数据库中的路径进行访问。是否存在可以动态更改的连接字符串,该字符串将更改特定报表所查看的数据库?谢谢试试以下方法: Dim ObjApp as new Craxdrt.application Dim ObjRep as new Craxdrt.report Dim Con as new ADODB.Conn

假设我有两个具有相同表的数据库。我希望能够保持相同的crystal报表,但可以动态地将数据源从一个数据库更改为另一个数据库。这可能吗?到目前为止,im使用VB6和crystal报表通过存储在数据库中的路径进行访问。是否存在可以动态更改的连接字符串,该字符串将更改特定报表所查看的数据库?谢谢

试试以下方法:

Dim ObjApp as new Craxdrt.application 
Dim ObjRep as new Craxdrt.report
Dim Con as new ADODB.Connection 
Dim Rs as new ADODB.Recordset


Private sub form_Load() 'Or try to put it in a onClick() event, too

  Dim ds as string

  'Here you can change the datasource. Replace C:\Data.mdb
  if SomethingYouNeed=True
    ds="C:\Data.mdb"
  else
    ds="C:\AnotherData.mdb"
  end if
  Con.Open "Provider=Microsoft.Jet.Oledb.4.0; Datasource=" & ds
  Rs.open "Select * from Client Where ClientName = 'Alfred'",con,AdopenStatic,AdlockOPtimistic

  set objrep = objapp.open("C:\client.rpt")
  objrep.Database.SetDatasource Rs

  CrViewer.reportsource = objrep
  CrViewer.ViewReport

End sub

这是可能的,下面是VB.NET的一个答案,演示了该技术。你知道VB6的一个例子吗?把你的代码和你的具体问题贴在一起,我相信你会得到帮助的。