'Query to complex' message in access 2010

wverweij

New member
Local time
Today, 09:13
Joined
Sep 12, 2011
Messages
7
Migrating from access 2003 to access 2010 I've got on 1 report the message 'Query to complex' in access 2010.

If the query is run manually than no problem and it runs ok.

Starting the query in a report (even blank) than the message shows up.

Who could help?

Already done:
- compact and repair
- delete part from UNION ALL SELECT --> then no error message but gives wrong result

Query itself:

SELECT DISTINCTROW tblBoekingen.bkBoekingID, tblBoekingen.bkBoekingdatum, tblBoekingen.bkBegindatum, tblBoekingen.bkEinddatum, tblBoekingen.bkEinddatum-tblBoekingen.bkBegindatum+1 AS bkDuration, tblFacturen.ftFactuurnr, hlpFactuurtypen.fsFactuurtype, tblFactuurregels.frAantal, tblFactuurregels.frKostenpst*frAantal AS frKostenpst, tblFactuurregels.frRegeltype, tblFacturen.ftCommissie, tblFacturen.ftFactuurID, tblFacturen.ftFactuurdatum, tblFacturen.ftFactuurtypeID, tblFactuurregels.frOmschrijving, tblFacturen.ftKlanttypeID, tblFacturen.ftVoorletters, tblFacturen.ftVoorvoegsel, tblFacturen.ftAchternaam, tblFacturen.ftAdres, tblFacturen.ftGeslacht, tblFacturen.ftBedrijfsnaam, tblFacturen.ftVakantiegarantie, tblFacturen.ftAnnuleringsvz, tblBoekingen.bkPAX, tblBoekingen.bkAnnuleringsvz, tblBoekingen.bkGefactureerd, tblBoekingen.bkVakantiegarantie, tblFactuurregels.frRegelExtraTypeID, hlpAIAantal.insaantal, hlpAssBelastingAantal.insbelaantal
FROM (((tblBoekingen INNER JOIN (hlpFactuurtypen INNER JOIN tblFacturen ON hlpFactuurtypen.fsFactuurtypeID = tblFacturen.ftFactuurtypeID) ON tblBoekingen.bkBoekingID = tblFacturen.ftBoekingID) INNER JOIN tblFactuurregels ON tblFacturen.ftFactuurID = tblFactuurregels.frFactuurID) LEFT JOIN hlpAIAantal ON tblFacturen.ftFactuurID = hlpAIAantal.frFactuurID) LEFT JOIN hlpAssBelastingAantal ON tblFacturen.ftFactuurID = hlpAssBelastingAantal.frFactuurID

WHERE (( (tblFacturen.ftFactuurdatum) Between [vul eerste factuurdatum in] And [vul laatste factuurdatum in]) AND ((tblFactuurregels.frOmschrijving) Like "*verzekering*") AND ((tblFacturen.ftKlanttypeID)<>2)) OR (( (tblFacturen.ftFactuurdatum) Between [vul eerste factuurdatum in] And [vul laatste factuurdatum in]) AND ((tblFactuurregels.frOmschrijving) Like "*poliskosten*") AND ((tblFacturen.ftKlanttypeID)<>2)) OR (( (tblFacturen.ftFactuurdatum) Between [vul eerste factuurdatum in] And [vul laatste factuurdatum in]) AND ((tblFactuurregels.frOmschrijving) Like "*assurantiebelasting*") AND ((tblFacturen.ftKlanttypeID)<>2)) OR (( (tblFacturen.ftFactuurdatum) Between [vul eerste factuurdatum in] And [vul laatste factuurdatum in]) AND ((tblFactuurregels.frOmschrijving) Like "*Doorlopende*") AND ((tblFacturen.ftKlanttypeID)<>2)) OR (( (tblFacturen.ftFactuurdatum) Between [vul eerste factuurdatum in] And [vul laatste factuurdatum in]) AND ((tblFactuurregels.frOmschrijving) Like "*camperverzekering*") AND ((tblFacturen.ftKlanttypeID)<>2)) OR (( (tblFacturen.ftFactuurdatum) Between [vul eerste factuurdatum in] And [vul laatste factuurdatum in]) AND ((tblFactuurregels.frOmschrijving) Like "*autoverzekering*") AND ((tblFacturen.ftKlanttypeID)<>2)) OR (((tblFacturen.ftFactuurdatum) Between [vul eerste factuurdatum in] And [vul laatste factuurdatum in]) AND ((tblFactuurregels.frOmschrijving) Like "*Ass.*") AND ((tblFacturen.ftKlanttypeID)<>2))

UNION ALL SELECT DISTINCTROW tblBoekingen.bkBoekingID, tblBoekingen.bkBoekingdatum, tblBoekingen.bkBegindatum, tblBoekingen.bkEinddatum, tblBoekingen.bkEinddatum-tblBoekingen.bkBegindatum+1 AS bkDuration, tblFacturen.ftFactuurnr, hlpFactuurtypen.fsFactuurtype, tblFactuurregels.frAantal, tblFactuurregels.frKostenpst*frAantal AS frKostenpst, tblFactuurregels.frRegeltype, tblFacturen.ftCommissie, tblFacturen.ftFactuurID, tblFacturen.ftFactuurdatum, tblFacturen.ftFactuurtypeID, tblFactuurregels.frOmschrijving, tblFacturen.ftKlanttypeID, tblFacturen.ftVoorletters, tblFacturen.ftVoorvoegsel, tblFacturen.ftAchternaam, tblFacturen.ftAdres, tblFacturen.ftGeslacht, tblFacturen.ftBedrijfsnaam, tblFacturen.ftVakantiegarantie, tblFacturen.ftAnnuleringsvz, tblBoekingen.bkPAX, tblBoekingen.bkAnnuleringsvz, tblBoekingen.bkGefactureerd, tblBoekingen.bkVakantiegarantie, tblFactuurregels.frRegelExtraTypeID, hlpAIAantal.insaantal, hlpAssBelastingAantal.insbelaantal
FROM (((tblBoekingen INNER JOIN (hlpFactuurtypen INNER JOIN tblFacturen ON hlpFactuurtypen.fsFactuurtypeID = tblFacturen.ftFactuurtypeID) ON tblBoekingen.bkBoekingID = tblFacturen.ftBoekingID) INNER JOIN tblFactuurregels ON tblFacturen.ftFactuurID = tblFactuurregels.frFactuurID) LEFT JOIN hlpAIAantal ON tblFacturen.ftFactuurID = hlpAIAantal.frFactuurID) LEFT JOIN hlpAssBelastingAantal ON tblFacturen.ftFactuurID = hlpAssBelastingAantal.frFactuurID
WHERE tblFacturen.ftFactuurdatum Between [vul eerste factuurdatum in] And [vul laatste factuurdatum in] AND (tblFactuurregels.frOmschrijving Like "AI *" OR tblFactuurregels.frOmschrijving like "*Ass. belasting*") AND tblFacturen.ftKlanttypeID=2;
 
Query To Complex? Wat denk je zelf?

It depends if you really want to union distinct values from the first query and distinct values from the second query or do you want to elliminate duplicate records alltogether?
If so, you might want to remove "Distinct" and change "Union All" into "Union".

If your query is still to complicated try to use a temporary table for both queries and do a select [distinct] on the table.

Your first query contains 5 betweens and a lot of Like statements. Did you notice that your query takes forever to run?

try to split the query into smaller pieces.

let me know what works. HTH.
 
Hi Guus,

Inderdaad complex maar deze heb ik zo gekregen .....

In ieder geval bedankt voor de tip want het werkt weer door de Distinctrow eruit te halen en de All weg bij Union All.

Nogmaals :) en bedankt.

Gr

Wouter
 

Users who are viewing this thread

Back
Top Bottom