Crystal Reports – Connector Error: ‘If tables are already linked then the join type cannot change.’

Problem

When attempting to add a data source, such as a table, view or command, to a Crystal Report you receive the following error messages as soon as you try to run the report.

Failed to retrieve data from the database.

CrystalReports-FailedToRetrieve1

 

Database Connector Error: 'If tables are already linked then the join type cannot change.'

 

CrystalReports-FailedToRetrieve2

 

Solution

This issue occurs when Crystal Reports attempts to build the links between the tables and gets it wrong. By default, when you add a new table Crystal Reports will try to look all the tables, not just the new table – even if they’ve already been linked together.

The first thing you can do is to open the database expert and very carefully inspect the links, looking for any links that shouldn’t be there.

You can use the diagram or the ‘Order Links’ window to see what links exist.

CrystalReports-FailedToRetrieve3

If this doesn’t show where the issue is, what you need to do is open a working version of the report, take not of the links then compare the links to the report that is not working – this will show the one or more links that have been automatically added and are incorrect.

For example, these are the links shown in the Order Links window before the T_Contract_Disbursements table was added

CrystalReports-FailedToRetrieve4

And these are the links after the T_Contract_Disbursements table was added

CrystalReports-FailedToRetrieve5

What this shows is that two new links have been automatically added, in addition to the correct T_Contract_Disbursements link.

What you need to do is go back to the link diagram and remove these links. You may also need to use the Order Links window to specify the order the table links occur – inner joins should be listed at the top, followed by any left or right joins.