2011-02-15 75 views
0

我有一個vb6應用程序使用水晶報表8.5和sql server 2005.我的問題是,當我打印報告我得到服務器尚未打開。這裏是我的代碼在vb :Crystal Report查看器 - 服務器尚未打開

Option Explicit 
Dim ctr As Integer 
Dim cn As New ADODB.Connection--Provider=SQLOLEDB.1;Password=password;Persist Security Info=True;User ID=user ID;Initial Catalog=database Name;Data Source=server Name 
Dim crApp As CRAXDRT.Application 
Dim crReport As CRAXDRT.Report 
Dim crtable As CRAXDRT.DatabaseTable 

Private Sub prin_Click() 
    Dim rs As New ADODB.Recordset 
    Set cn = New ADODB.Connection 
    cn.ConnectionString = MDI1.txtado 
    cn.Open 
    Set rs = New ADODB.Recordset 
    rs.Open "select * from temp_abs_yes", cn, adOpenKeyset, adLockOptimistic 
    Set crApp = New CRAXDRT.Application 
    Set crReport = crApp.OpenReport("C:\Users\user1.dom\Desktop\ANP\abs_yes.rpt") 
    crReport.Database.Tables.Item(1).SetLogOnInfo "servername", "databasename", "user", "password" 
    crReport.Database.Tables.Item(1).SetDataSource rs, 3 
    crReport.DiscardSavedData 
    Viewer.ReportSource = crReport 
    Viewer.ViewReport 
    rs.close 
    Set rs = Nothing 
    Set crReport = Nothing 
    Set crApp = Nothing 
End Sub 

回答

0

我覺得做「SetLogOnInfo」就是在這種情況下innecesary,因爲你是分配數據報告

可能不是你的情況,但對於別人的幫助。

當我錯誤地指定了servername參數時,出現了該錯誤。

正確參數I用於登錄(對於Oracle DB):

[...](1)項.SetLogOnInfo 「[TNSNAMES]」, 「」,「[分貝用戶]「,」[db密碼]

+0

我解決了它通過創建一個dsn,然後把它放在我的代碼setlogon信息和它wrok – Monshine 2011-05-19 10:44:52