I found a solution and it's very simple to do. Just add connection info and apply it. Now every time when reports loads it will apply the connection info provided.
Private Sub frmreportviewer_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim CrTables As Tables
Dim crtableLogoninfo As New TableLogOnInfo
Dim crConnectionInfo As New ConnectionInfo
Try
Dim cryRpt As New ReportDocument
cryRpt.Load(My.Application.Info.DirectoryPath.ToString() & "\Report1.rpt")
With crConnectionInfo
.ServerName = My.Application.Info.DirectoryPath.ToString() & "\abc.mdb"
.Password = "password"
End With
CrTables = cryRpt.Database.Tables
For Each CrTable In CrTables
crtableLogoninfo = CrTable.LogOnInfo
crtableLogoninfo.ConnectionInfo = crConnectionInfo
CrTable.ApplyLogOnInfo(crtableLogoninfo)
Next
CrystalReportViewer1.ReportSource = cryRpt
CrystalReportViewer1.Refresh()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub