?
Solved

Programmatically setting data source location of a Crystal Report to MS Access database

Posted on 2007-11-18
9
Medium Priority
?
1,807 Views
Last Modified: 2013-11-07
Hi Experts,

I have several Crystal Report XI reports that I automate through VB.Net.  These reports point to an Access database.  I need to store the path to the access database mdb file as a setting and then set the data source location at run-time with my VB code.

How do I do this?

Thanks
0
Comment
Question by:PantoffelSlippers
  • 5
  • 2
  • 2
9 Comments
 
LVL 4

Expert Comment

by:habibb
ID: 20310623
0
 

Author Comment

by:PantoffelSlippers
ID: 20310669
Hi Habibb,

That's not exactly what I was looking for.  That example uses VB6 with the CRXDRT DLL which I've used a lot in the past.  What I'm trying to do with Access now I can already do with SQL Server, see example below:

  Public Sub SetReportConnections(ByRef XReport As ReportDocument)
    Dim CInfo As New ConnectionInfo
    Dim t As Table
    Dim TLogonInfo As TableLogOnInfo
    Dim SubR As New ReportDocument


    'Set the connection
    CInfo.ServerName = ServerName
    CInfo.DatabaseName = DatabaseName
    CInfo.UserID = UserID
    CInfo.Password = Password

    'Set Logon details for main report and each table inside the main report
    For Each t In XReport.Database.Tables
      TLogonInfo = t.LogOnInfo
      TLogonInfo.ConnectionInfo = CInfo
      t.ApplyLogOnInfo(TLogonInfo)
    Next

    For Each SubR In XReport.Subreports
      For Each t In SubR.Database.Tables
        TLogonInfo = t.LogOnInfo
        TLogonInfo.ConnectionInfo = CInfo
        t.ApplyLogOnInfo(TLogonInfo)
      Next
    Next

  End Sub


This procedure explicitly sets the connection details for a report file that connects to SQL Server.  Now I need to do exactly the same with MS Access but I'm assuming that different objects / properties / methdos must be used.

From the example in the link I basically need to copy the following logic:
Dim CRXDatabase As CRAXDRT.Database
Set CRXDatabase = CRXReport.Database
CRXDatabase.SetDataSource rs, 3, 1

I'm not using the CRXDRT so this syntax won't work.  I can't find the syntax to perform this logic. I need to find the exact syntax for the components that I'm using.  I'm using the CrystelDecisions .Net references.

Thanks
0
 
LVL 4

Expert Comment

by:habibb
ID: 20310792
0
The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

 

Author Comment

by:PantoffelSlippers
ID: 20310917
Thanks habibb,

From the example provided I got the following:

cr1.ReportFileName = App.Path & "\reports\ot1.rpt"
cr1.DataFiles(0) = App.Path & "\otmanag.mdb"

I'm assuming that cr1 is a ReportDocument?  My reportdocument doesnt have a DataFiles property.  I assume the example also uses a different version of the Crystal API than I am.  As in the very first example, this is exactly the logic that I'm trying to perform, only the syntax doesn't fit my API.

Is there perhaps an API guide for the Crystal Reports XI R2 .Net references?

Thanks
0
 
LVL 4

Accepted Solution

by:
stcindia earned 2000 total points
ID: 20311386
Please find below information copied from http://diamond.businessobjects.com/node/134
If you are connecting to Access through OLE DB,
then set the 'ServerName':

With crConnectionInfo
.ServerName = "C:\mydatabase\mydata.mdb"
End With
0
 

Author Comment

by:PantoffelSlippers
ID: 20318432
Thanks stcindia,

I'll try this immediately
0
 

Author Closing Comment

by:PantoffelSlippers
ID: 31409789
         Dim CInfo As New ConnectionInfo
          Dim TlogonInfo As TableLogOnInfo
          Dim t As Table

          CInfo.ServerName =

          For Each t In crRepDoc.Database.Tables
            TlogonInfo = t.LogOnInfo
            TlogonInfo.ConnectionInfo = CInfo
            t.ApplyLogOnInfo(TlogonInfo)
          Next
0
 

Author Comment

by:PantoffelSlippers
ID: 20396146
Thank you stcindia
0
 
LVL 4

Expert Comment

by:stcindia
ID: 20401003
Glad I could help
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In my previous two articles we discussed Binary Serialization (http://www.experts-exchange.com/A_4362.html) and XML Serialization (http://www.experts-exchange.com/A_4425.html). In this article we will try to know more about SOAP (Simple Object Acces…
The PowerShell Core 6.0 of .NET release is just the beginning. The upcoming PowerShell Core 6.1 would have artificial intelligence and internet of things capabilities. So many things to look forward to in the upcoming release.
There may be issues when you are trying to access Outlook or send & receive emails or due to Outlook crash which leads to corrupt or damaged PST file. To eliminate the corruption from your PST file, you need to repair the corrupt Outlook PST file. U…
In this video I will demonstrate how to set up Nine, which I now consider the best alternative email app to Touchdown.
Suggested Courses

601 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question