Have you ever wanted to call your own Crystal Report from a custom user form? Here is how…
In this example I have a UserForm, a button, a text field for the constituent id and a Crystal Report Control. You will need to go to the control toolbox and add this control before it can be added to your form. All of the constants (variables in upper case) have been previously defined somewhere in the code.
Private Sub cmdReport_Click() Dim sMsg As String CrystalReport1.Connect = "DSN = " + ODBCSource + ";UID = " + DBUID + ";PWD = " + DBPWD CrystalReport1.ReportFileName = REPORT_LOC CrystalReport1.Formulas(0) = "CurrentConstituent=" & txtConstituentId.text CrystalReport1.Destination = crptToWindow CrystalReport1.PrintReport sMsg = CrystalReport1.LastErrorString If Not sMsg = "" Then MsgBox sMsg End If End Sub
Many of the parameters for the Crystal Report control can be entered into the parameters box in the IDE but for the greatest flexibility it is possible to steer everything in the code too.
The most useful is the formulas collection. In my Crystal Report I have parameter called “CurrentConstituent”. I use this parameter to filter the records to be shown. In this case it will only show the specific constituent’s details. You can decide where the Crystal should appear using the Destination parameter. Most commonly you will want this to go the the screen but you may want it to be printed directly.
If there is an error in displaying the report then the LastErrorString will let you know what it is and is a good way of debugging the link to Crystal.