2014-02-12 89 views
1

可以说我有两个数据库相同的表。我希望能够保留相同的水晶报告,但是将数据源从一个数据库更改为另一个。这甚至有可能吗?截至目前,我正在使用VB6,并通过存储在数据库中的路径访问水晶报告。有没有可以动态修改的连接字符串,这会改变特定报表正在查看的数据库?由于水晶报告长宁数据源

+0

这是可能的,这里是VB.NET的答案,演示的技术。 http://stackoverflow.com/questions/9195344/how-to-change-crystal-reports-connection-string-using-ole-db-in-vb-net – jac

+0

你知道VB6的例子吗? – Zingo

+0

发布您的代码与您的具体问题,我相信你会得到帮助。 – jac

回答

0

试着这么做:

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