If you are using .net, this will work as I use it and it runs fine. Since you are using OLE.
Dim reportDoc As New CrystalDecisions.CrystalReports.Engine.ReportDocument
reportDoc.Load(strReportPath, CrystalDecisions.Shared.OpenReportMethod.OpenReportByTempCopy)
Try
''fb1888 RT 3/26/08 dynamically sets the datasource
Dim myDataSourceConnections As CrystalDecisions.Shared.DataSourceConnections = reportDoc.DataSourceConnections
Dim myConnectInfo As CrystalDecisions.Shared.IConnectionInfo = myDataSourceConnections(0)
myConnectInfo.SetConnection(SQLServer, Database, DatabaseUser, DatabasePassword)
CRViewer.ReportSource = reportDoc
CRViewer.Refresh()
Unfortunately, it requires knowledge of how the connection to the database is made...username, password, server, and database.
Hope this helps