When using Crystal Reports 8.5 with CRViewer in VB6, and it prompts for a password when generating a report, it’s usually due to a missing database login configuration. You need to pass the database credentials programmatically to the report.
Solution: Set Database Login Credentials in VB6
Modify your VB6 code to set the database connection properly before displaying the report.
Method 1: Using SetLogOnInfo
If your report connects to an ODBC or direct database, try this:
Dim crApp As New CRAXDRT.Application Dim crReport As CRAXDRT.Report Set crReport = crApp.OpenReport("C:\YourReport.rpt") ' Set database login credentials Dim crTable As CRAXDRT.DatabaseTable For Each crTable In crReport.Database.Tables crTable.SetLogOnInfo "YourServerName", "YourDatabaseName", "YourUsername", "YourPassword" Next ' Show the report in CRViewer CRViewer1.ReportSource = crReport CRViewer1.ViewReport
Replace:
- “YourServerName” → with your database server name.
- “YourDatabaseName” → with your database name.
- “YourUsername” → with the correct database username.
- “YourPassword” → with the correct password.
Method 2: Using LogOnServer
If you are using ODBC (DSN-based connection):
crReport.Database.LogOnServer "p2sodbc.dll", "YourDSN", "YourDatabase", "YourUsername", "YourPassword"
- “p2sodbc.dll” → ODBC driver for Crystal Reports.
- “YourDSN” → Name of the ODBC Data Source Name (DSN).
Method 3: Disable Database Prompt
If you still get a prompt, force the credentials before viewing the report:
crReport.EnableParameterPrompting = False
Let me know if you need further adjustments based on your database type (SQL Server, Oracle, etc.)