1
可以說我有兩個數據庫相同的表。我希望能夠保留相同的水晶報告,但是將數據源從一個數據庫更改爲另一個。這甚至有可能嗎?截至目前,我正在使用VB6,並通過存儲在數據庫中的路徑訪問水晶報告。有沒有可以動態修改的連接字符串,這會改變特定報表正在查看的數據庫?由於水晶報告長寧數據源
可以說我有兩個數據庫相同的表。我希望能夠保留相同的水晶報告,但是將數據源從一個數據庫更改爲另一個。這甚至有可能嗎?截至目前,我正在使用VB6,並通過存儲在數據庫中的路徑訪問水晶報告。有沒有可以動態修改的連接字符串,這會改變特定報表正在查看的數據庫?由於水晶報告長寧數據源
試着這麼做:
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的答案,演示的技術。 http://stackoverflow.com/questions/9195344/how-to-change-crystal-reports-connection-string-using-ole-db-in-vb-net – jac
你知道VB6的例子嗎? – Zingo
發佈您的代碼與您的具體問題,我相信你會得到幫助。 – jac