I have a program that I wrote that uses CR for Visual Studio .Net with a report in it. Everything works great on the development PC.
However when I Build the program for deployment to other PCs. It retains the path to the database on my PC. How do I change the path for the report to be something like:
Application.StartupPath & "\Database\Mydatabase.mdb
I've changed the report source to point at it, (crystalReportViewer1.ReportSource = " & Application.StartupPath & "MyReport"), but it still is trying to log on to c:\
VB\Myproject\bin\Debug\Mydatabase.mdb.
Bill
After many attempts and internet searches I finally found some code that works. I'd like to Credit Imran A Momin with solving my problem. Here is the code:
Imports System.Data.OleDb
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Public Class Form1
Dim rpt As New CrystalReport1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim path1 As String = My.Application.Info.DirectoryPath '' path
' OLEDB Connection
Dim Conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; " & _
"Data Source=|DataDirectory|\General.mdb;")
' SQL Command
Dim Cmd As New OleDbCommand("SELECT * from ACCUM")
Cmd.CommandType = CommandType.Text '' command type
Cmd.Connection = Conn '' give connection to command
Dim adp As New OleDbDataAdapter '' declare adapter
adp.SelectCommand = Cmd '' select command for adpapter to work on
Dim ds As New DataSet '' delcare dataset
adp.Fill(ds, "Crystal") '' fill the dataset through adapter
Try
' change the path of the database
rpt.DataSourceConnections.Item(0).SetConnection("" , "" & path1 & "\General.mdb", False)
Catch exp As Exception
MsgBox(exp.Message)
End Try
rpt.SetDataSource(ds) ' set the Dataset for the report
CRV.ReportSource = rpt ' Load the report into the viewer
End Sub
:)
End Class