This code works for me. Hope this helps someone...
Code:
Dim myreport As New ReportDocument
Dim strDSN As System.String
Dim strDB As System.String
Dim strUID As System.String
Dim strPWD As System.String
Private Sub frmMain_Load(ByVal sender........
CrystalReportViewer1.ReportSource = "ZTab.rpt"
End Sub
Private Sub btnChangeDataBase_Click(ByVal sender ........
strNewPath = "C:\Projects\Employee.mdb"
myreport.Load("ZTab.rpt")
SetupReport(myreport)
End Sub
Private Function SetupReport(ByRef objCrystalReportDocument As CrystalDecisions.CrystalReports.Engine.ReportDocument) As System.Boolean
Dim crTableLogOnInfo As CrystalDecisions.Shared.TableLogOnInfo
Dim crDatabase As CrystalDecisions.CrystalReports.Engine.Database
Dim crTables As CrystalDecisions.CrystalReports.Engine.Tables
Dim aTable As CrystalDecisions.CrystalReports.Engine.Table
Dim bTable As CrystalDecisions.CrystalReports.Engine.Table
Dim blnTest As System.Boolean
Dim strLocation As System.String
crDatabase = objCrystalReportDocument.Database
crTables = crDatabase.Tables
For Each aTable In crTables
crTableLogOnInfo = aTable.LogOnInfo
strDSN = crTableLogOnInfo.ConnectionInfo.ServerName
strDB = crTableLogOnInfo.ConnectionInfo.DatabaseName
strUID = crTableLogOnInfo.ConnectionInfo.UserID
strPWD = crTableLogOnInfo.ConnectionInfo.Password
OutputDebugLine("BEFORE")
OutputDebugLine("TABLE NAME: " & aTable.Name)
OutputDebugLine("TABLE LOC: " & aTable.Location)
OutputDebugLine("SERVER: " & strDSN)
OutputDebugLine("DB: " & strDB)
OutputDebugLine("UID: " & strUID)
OutputDebugLine("PWD: " & strPWD)
OutputDebugLine("REPORT NAME: " & crTableLogOnInfo.ReportName)
OutputDebugLine("Table Name: " & crTableLogOnInfo.TableName)
aTable.ApplyLogOnInfo(crTableLogOnInfo)
strLocation = strNewPath 'pass new mdb name
OutputDebugLine("New Location: " & strLocation)
Try
aTable.Location = strLocation
Catch ex As Exception
OutputDebugLine("Set Location Error: " & ex.ToString)
End Try
OutputDebugLine("AFTER")
OutputDebugLine("TABLE NAME: " & aTable.Name)
OutputDebugLine("TABLE LOC: " & aTable.Location)
OutputDebugLine("SERVER: " & strDSN)
OutputDebugLine("DB: " & strDB)
OutputDebugLine("UID: " & strUID)
OutputDebugLine("PWD: " & strPWD)
OutputDebugLine("REPORT NAME: " & crTableLogOnInfo.ReportName)
OutputDebugLine("Table Name: " & crTableLogOnInfo.TableName)
Try
blnTest = aTable.TestConnectivity()
OutputDebugLine("CONNECTED? " & blnTest.ToString())
Catch ex As Exception
OutputDebugLine("CONNECTED? NO")
OutputDebugLine(ex.ToString)
End Try
Next aTable
myWrite.Close()
myWrite = Nothing
myFile = Nothing
CrystalReportViewer1.ReportSource = myreport
End Function
|