Option Explicit
'Add references to:
'Crystal Reports Viewer Control
'Crystal Reports 8.5 ActiveX Designer Run Time Library
'Crystal Reports 8.5 Library
'Microsoft ActiveX Data Objects 2.x Library
Private moApp As CRAXDRT.Application
Private moReport As CRAXDRT.Report
Private moCnn As ADODB.Connection
Private moRs As ADODB.Recordset
Private Sub Command1_Click()
Set moRs = New ADODB.Recordset
moRs.Open sSQL, moCnn, adOpenKeyset, adLockOptimistic, adCmdText
If moRs.BOF = True And moRs.EOF = True Then
MsgBox "No Record(s) returned!", vbOKOnly + vbExclamation
Else
Dim sUserName As String
Dim sUserName As String
Dim sUserPwd As String
Dim sServer As String
Dim sDatabase As String
Dim sPara1 As String
Dim sPara2 As String
Set moReport = New CRAXDRT.Report
Set moReport = moApp.OpenReport(App.Path & "\MyReport.rpt", 1)
sUserName = "MyUserName"
sUserPwd = "mypassword"
sServer = "ServerName"
sDatabase = "DatabaseName"
sDriver = "P2SSQL.DLL"
moApp.LogOnServer "P2SSQL.DLL", sServer, sDatabase, sUserName, sUserPwd
moReport.Database.Tables(1).SetLogOnInfo sServer, sDatabase, sUserName, sUserPwd
moReport.ParameterFields.Item(1).ClearCurrentValueAndRange
moReport.ParameterFields.Item(1).AddCurrentValue sPara1
moReport.ParameterFields.Item(2).ClearCurrentValueAndRange
moReport.ParameterFields.Item(2).AddCurrentValue sPara2
moReport.Database.SetDataSource moRs, 3, 1
CRViewer1.ReportSource = moReport
CRViewer1.ViewReport
CRViewer1.ShowFirstPage
End If
End Sub
Private Sub Form_Load()
Dim sSQL As String
Dim sDB As String
Dim sServer As String
sSQL = "SELECT * FROM Table1 WHERE Something = SomethingElse;"
sDB = "MyDatabase"
sServer = "MyServer"
Set moCnn = New ADODB.Connection
moCnn.ConnectionString = "provider=sqloledb;data source=" & sServer & ";initial catalog=" & sDB & ";integrated security=sspi;"
moCnn.Open
End Sub