Solved

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

Posted on 2007-11-18
9
1,551 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
 

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
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 
LVL 4

Accepted Solution

by:
stcindia earned 500 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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
This tutorial demonstrates a quick way of adding group price to multiple Magento products.
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

932 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now