1
votes

I Have a vb6 application using crystal report 8.5 and sql server 2005.My issue is that when I print report i get Server has not yet been opened.Here is my code in vb.:

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
2

2 Answers

0
votes

I think doing "SetLogOnInfo" is innecesary in that case, as you are assigning the data to report

Probably is not your case, but for the help of someone else.

I got that error when I assigned the servername parameter incorrectly.

The correct parameters I used for logon (for an oracle DB):

[...]Item(1).SetLogOnInfo "[tnsnames]", "", "[db user]", "[db password]"

0
votes

I resolved by updating dll

p2soledb.dll

in c:\Windows\Crystal I got the details from here