The following is the code that i have... please let me know where i hv gone wrong...

Set Application = CreateObject("crystal.crpe.application")
Set Report = Application.OpenReport("d:\swati\mahalaxmi\reports\ClientList.rpt")
Report.Preview "Client List", 0, 0, 1200, 1200

from
swati

Dani AI

Generated

Short diagnosis and what most threads with the same symptom end up showing: the report preview opens and then immediately closes because the Crystal automation/viewer objects are being released when your procedure exits or because the wrong viewer/engine is being used for the properties you set. later moved the report/engine objects to module-level scope, which is exactly the right idea — the COM objects must live as long as the preview window does.

Other common causes to check (these tie back to earlier replies): the VB control you put on the form must match the Crystal runtime you built against, and the property you set must accept the data type you pass (file path vs report object vs connection string). If you see "Type Mismatch" or "Assignment to constant not permitted", that usually means a viewer/control mismatch or a wrong property type. 's approach can work, but only when the correct ActiveX control and runtime for that Crystal version are installed and referenced.

Database/logon issues and subreports frequently hide as "preview problems" — confirm the report runs correctly inside the Crystal designer on the same machine, and make sure any tables and subreports receive programmatic logon (or use a consistent OLE DB connection). Also confirm the runtime components are registered on the developer and target machines, and that you are running the process in the same bitness the CR runtime expects (older CR runtimes are 32-bit).

Practical checklist to take now:

  1. Make a tiny test VB6 EXE that only opens the report and leaves the objects at module scope.
  2. Verify the report runs from the Crystal designer on that PC.
  3. Confirm the exact viewer/engine ActiveX you added in Project -> Components and the matching References.
  4. Register required runtime OCX/DLLs on the machine if missing.
  5. If deploying on modern 64-bit Windows, run the app as a 32-bit process or consider upgrading the Crystal runtime.

Following those steps will narrow the cause quickly; the scope/persistence and control-version mismatch are the places to focus first.

Recommended Answers

All 7 Replies

CrystalReport1.ReportFileName = "c:\arif\r1.rpt" ' file location
CrystalReport1.Connect = "Provider=MSDAORA,1;UserID=scott;PWD=tiger;dsn=arif"
CrystalReport1.PrintReport

that code u can use but u need to use crystal report 8 or 8.5. a components will require that is crystal32.ocx. when u installed crystal report it will automatically in ur components list or system32 directory.
ok use it and fun.
bye.
reply me

Hi!
I tried with ur code but it didn't work..

When i try the debugger mode (in VB) i can see the window but it closes in a sec... are there some kind of settings to be done in crystal reports.

I am using Crystal Reports 8.5

Regards

Swati

CrystalReport1.ReportFileName = "c:\arif\r1.rpt" ' file location
CrystalReport1.Connect = "Provider=MSDAORA,1;UserID=scott;PWD=tiger;dsn=arif"
CrystalReport1.PrintReport

that code u can use but u need to use crystal report 8 or 8.5. a components will require that is crystal32.ocx. when u installed crystal report it will automatically in ur components list or system32 directory.
ok use it and fun.
bye.
reply me

hello swatirao,
from where did u download crystal report 8.5? plz let me know. i've been searching for it since a very long time. plz reply soon.

CrystalReport1.ReportFileName = "c:\arif\r1.rpt" ' file location
CrystalReport1.Connect = "Provider=MSDAORA,1;UserID=scott;PWD=tiger;dsn=arif"
CrystalReport1.PrintReport

that code u can use but u need to use crystal report 8 or 8.5. a components will require that is crystal32.ocx. when u installed crystal report it will automatically in ur components list or system32 directory.
ok use it and fun.
bye.
reply me

Thanks for posting this info but this does not work when I applied over to my application. It does not recognise the "connect" and "reportfilename" objects. instead I used

CRViewer91.ReportSource = "c:\crystalreport.rpt" ' file location
CRViewer91.Container = "Provider=MSDASQL.1;Persist Security Info=False;User ID=test;Data Source=develop"
CrystalReport1.PrintReport

but still it doesnt work, it says Type Mismatch. Then I changed the value from ReportSource to ViewReport - Still now luck came up with an error message "Assignment to Constant not Permitted". I am not sure where I should be able to find crystal32.ocx as I have searched for it on my pc and I could not find it, although I have added number of coms into vb such as "CRviewer" "OCX".

Could you please help me and explain where should I put the code and how to get the ocx file? Where am I doing wrong?

Many Thanks

I am using jet oledb provider which removes the dependancy on the DSN...
The following lines are in the module.

Public Application As New CRPEAuto.Application
Public Report As New CRPEAuto.Report

Public Sub ConInit()
Dim hh As String
' hh = App.Path + "\MIS"
hh = "d:\MIS\CommonDB.mdb"
If CN.State = adStateClosed Then
CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & hh & ""
CN.Open
End If
End Sub

Coninit is called wherever I need to access the database..

The following lines... where u call the report...
Screen.MousePointer = 11
Set Application = CreateObject("crystal.crpe.application")
Set Report = Application.OpenReport("d:\mis\reports\PrintQuotation.rpt")
'' Report.ParameterFields("mArea").SetCurrentValue mArea
Report.Preview "Quotation", 100, 100, 800, 500
Screen.MousePointer = 0

U need to include the following Crystal Reports components in ur project..

controls :
crystal report control
crystal report viewer control

designer :
crystal report 8.5

include references as follows :
crystal report viewer control
crystal report engine 8 object library
crystal report 8.5 activex designer runtime library
crystal report 8.5 activex designer design & runtime library
crystal data object
crystal reports 8.5 library

Try this if it works

best of luck

swati

Thanks for posting this info but this does not work when I applied over to my application. It does not recognise the "connect" and "reportfilename" objects. instead I used

CRViewer91.ReportSource = "c:\crystalreport.rpt" ' file location
CRViewer91.Container = "Provider=MSDASQL.1;Persist Security Info=False;User ID=test;Data Source=develop"
CrystalReport1.PrintReport

but still it doesnt work, it says Type Mismatch. Then I changed the value from ReportSource to ViewReport - Still now luck came up with an error message "Assignment to Constant not Permitted". I am not sure where I should be able to find crystal32.ocx as I have searched for it on my pc and I could not find it, although I have added number of coms into vb such as "CRviewer" "OCX".

Could you please help me and explain where should I put the code and how to get the ocx file? Where am I doing wrong?

Many Thanks

I am using jet oledb provider which removes the dependancy on the DSN...
The following lines are in the module.

Public Application As New CRPEAuto.Application
Public Report As New CRPEAuto.Report

Public Sub ConInit()
Dim hh As String
' hh = App.Path + "\MIS"
hh = "d:\MIS\CommonDB.mdb"
If CN.State = adStateClosed Then
CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & hh & ""
CN.Open
End If
End Sub

Coninit is called wherever I need to access the database..

The following lines... where u call the report...
Screen.MousePointer = 11
Set Application = CreateObject("crystal.crpe.application")
Set Report = Application.OpenReport("d:\mis\reports\PrintQuotation.rpt")
'' Report.ParameterFields("mArea").SetCurrentValue mArea
Report.Preview "Quotation", 100, 100, 800, 500
Screen.MousePointer = 0

U need to include the following Crystal Reports components in ur project..

controls :
crystal report control
crystal report viewer control

designer :
crystal report 8.5

include references as follows :
crystal report viewer control
crystal report engine 8 object library
crystal report 8.5 activex designer runtime library
crystal report 8.5 activex designer design & runtime library
crystal data object
crystal reports 8.5 library

Try this if it works

best of luck

swati

Hello and Morning Swati,

Thanks for your kind help, I have managed to create the crystal report. Now I want to create an application where different department staff members can choose different catagerories to create their own reports. This way our IT department wouldn't have to create reports for them.

Have you done anything like that before? or you simply create reports yourself?

Many thanks for the help once more:D

Kind Regards

Jay

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.