假设我有两个包含相同表的数据库。我希望能够保持相同的水晶报告,但在飞行中改变DataSource从一个数据库到另一个。这有可能吗?到目前为止,使用VB6的即时通信工具和水晶报表都是通过存储在数据库中的路径访问的。有没有可以动态更改的连接字符串,可以更改特定报表正在查看的数据库?谢谢
发布于 2015-10-28 21:14:11
尝试如下所示:
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 subhttps://stackoverflow.com/questions/21740370
复制相似问题