Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

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

Posted on 2007-11-18
9
Medium Priority
?
1,708 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

 

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

Important Lessons on Recovering from Petya

In their most recent webinar, Skyport Systems explores ways to isolate and protect critical databases to keep the core of your company safe from harm.

Question has a verified solution.

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

Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
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…
In this video, Percona Director of Solution Engineering Jon Tobin discusses the function and features of Percona Server for MongoDB. How Percona can help Percona can help you determine if Percona Server for MongoDB is the right solution for …
Is your data getting by on basic protection measures? In today’s climate of debilitating malware and ransomware—like WannaCry—that may not be enough. You need to establish more than basics, like a recovery plan that protects both data and endpoints.…

598 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