Thanks for your interest. Here is the code I am using.
Private Sub Set_LogonInfo(ByRef Report As ReportDocument)
Dim crTable As Table
Dim crTables As Tables
Dim crDatabase As Database
Dim ConInfo As New ConnectionInfo()
Dim crTableLogOnInfo As TableLogOnInfo
With ConInfo
.ServerName = "DBServer" : .DatabaseName = "Betloader®"
.UserID = "sa" : .Password = "masaka"
End With
crDatabase = Report.Database
crTables = crDatabase.Tables
For Each crTable In crTables
crTableLogOnInfo = crTable.LogOnInfo
crTableLogOnInfo.ConnectionInfo = ConInfo
crTable.ApplyLogOnInfo(crTableLogOnInfo)
Next
'to handle logoninfo for subreport
Dim crSections As Sections
Dim crSection As Section
Dim crReportObjects As ReportObjects
Dim crReportObject As ReportObject
Dim crSubreportObject As SubreportObject
Dim crSubreportDocument As ReportDocument
'adds logoninfo to subreport when exists
crSections = Report.ReportDefinition.Sections
For Each crSection In crSections
crReportObjects = crSection.ReportObjects
For Each crReportObject In crReportObjects
If crReportObject.Kind = ReportObjectKind.SubreportObject Then
crSubreportObject = CType(crReportObject, SubreportObject)
crSubreportDocument = crSubreportObject.OpenSubreport(crSubreportObject.SubreportName)
crDatabase = crSubreportDocument.Database
crTables = crDatabase.Tables
For Each crTable In crTables
crTableLogOnInfo = crTable.LogOnInfo
crTableLogOnInfo.ConnectionInfo = ConInfo
crTable.ApplyLogOnInfo(crTableLogOnInfo)
Next
End If
Next
Next
End Sub
Private Sub Set_Params(ByVal Key As Short, ByRef Params() As String, ByRef Report As ReportDocument)
Dim ParamVals As ParameterValues
Dim ParamDisVal As ParameterDiscreteValue
Dim ParamField As ParameterFieldDefinition
Dim ParamFields As ParameterFieldDefinitions
Try
ParamFields = Report.DataDefinition.ParameterFields
Select Case Key
Case 0
ParamField = ParamFields.Item("@EOWDate") : ParamVals = ParamField.CurrentValues
ParamDisVal = New ParameterDiscreteValue() : ParamDisVal.Value = Params(0)
ParamVals.Add(ParamDisVal) : ParamField.ApplyCurrentValues(ParamVals)
'the subreport uses two paramaters. It is linked to the main report's @EOWDate
'and one of its fields "Region_Id"
......
End Select
Catch
Handle_Er(Err, "Set_Params")
End Try
End Sub
Private Sub RepMnu_Click(ByVal sender As Object, ByVal e As EventArgs) Handles MnuFig.Click, MnuLog.Click, MnuActiv.Click
Dim iKey As Short
Dim Frm As FrmParams
Dim iParams(3) As String
Dim SubReport As New ReportDocument()
Try
iKey = GetRepKeys(sender) 'Sets an internal indicator based on the sender
If iKey = -1 Then
Msg("An invalid selection was made!" & Chr(10) & "Please, try again.", 48, Text)
Else
Frm = New FrmParams(iKey) : Frm.ShowDialog() 'with this form the user selects the required param values
If Frm.RunReport = True Then
Cursor = Cursors.WaitCursor
iParams = Frm.iParams
Set_Document(iKey, Report) 'obtains the report's path
Set_LogonInfo(Report)
Set_Params(iKey, iParams, Report)
RepView.ReportSource = Report
Else
Msg("The report was canceled by the user!", 48, Text)
End If
End If
Catch
Handle_Er(Err, "RepMnu_Click")
Finally
Cursor = Cursors.Default
End Try
End Sub