G
Guest
I'm encountering an issue where the performance of Access slows significantly
while I'd editing the design of reports based on either cross-tab or
pass-through queries. Unless I "break" the report by renaming the record
source property, it will stop responding for up to a minute every time
*anything* changes. Change the width of a control, wait , click on a new
control, wait, click on another control, wait, wait for the cursor to change
to drag a so the section can be resized, wait... you get the idea.
It seems like Access has to constantly validate the source of the report by
constantly running the query as the design is modified. If that's the case,
is there a fix? If that not what's happening, where should I look to solve
this?
If you'd like the specifics, read on.
I'm running queries using either linked tables on a Sybase server via ODBC,
or pass-through queries directly to the same server. In many cases, the
pass-through queries are used to join and group multiple tables, and then a
regular select query will run to group data for the report. The one that
caused Access to stop responding completely today is:
Pass-through Query (Edited for brevity):
SELECT Distinct l.id, l.stat, l.idc, l.num, d.dtn, l.cd, case when /really
ugly set of conditionals to get pieces of data from strings based on the
beginning of the string/ end As Lct, o.zon, l,nbr
FROM (((idtable as l INNER JOIN doorlink as d ON ...) LEFT JOIN (pidtable as
pl INNER JOIN plink as lp ON ...) ON ...) LEFT JOIN (midtable as ml INNER
JOIN mlink as lm ON ...) ON ...) LEFT JOIN ordtable as o on ... AND ...
WHERE l.cd Not In (...) AND l.nbr=0 AND l.acd!=y and l.ack = 0
Access select query joining above with two static tables containing
descriptive text for report (Again, edited heavily):
SELECT Count(q1.id), idc, [tbld].[zdesc]
FROM q1 LEFT JOIN tbld ON ...
WHERE (((q1.lstat)=x)) OR (((nz(q1.cstat,0))=x))
GROUP BY idc, [tbld].[zdesc];
Using the pass through query to select the id's and tie them to the lct runs
considerably faster than the two separate queries I would need in Access
(because of the count(distinct x) feature that Access lacks), but I seem to
be paying for it in the report design. Any suggestions will be greatly
appreciated.
Nick
while I'd editing the design of reports based on either cross-tab or
pass-through queries. Unless I "break" the report by renaming the record
source property, it will stop responding for up to a minute every time
*anything* changes. Change the width of a control, wait , click on a new
control, wait, click on another control, wait, wait for the cursor to change
to drag a so the section can be resized, wait... you get the idea.
It seems like Access has to constantly validate the source of the report by
constantly running the query as the design is modified. If that's the case,
is there a fix? If that not what's happening, where should I look to solve
this?
If you'd like the specifics, read on.
I'm running queries using either linked tables on a Sybase server via ODBC,
or pass-through queries directly to the same server. In many cases, the
pass-through queries are used to join and group multiple tables, and then a
regular select query will run to group data for the report. The one that
caused Access to stop responding completely today is:
Pass-through Query (Edited for brevity):
SELECT Distinct l.id, l.stat, l.idc, l.num, d.dtn, l.cd, case when /really
ugly set of conditionals to get pieces of data from strings based on the
beginning of the string/ end As Lct, o.zon, l,nbr
FROM (((idtable as l INNER JOIN doorlink as d ON ...) LEFT JOIN (pidtable as
pl INNER JOIN plink as lp ON ...) ON ...) LEFT JOIN (midtable as ml INNER
JOIN mlink as lm ON ...) ON ...) LEFT JOIN ordtable as o on ... AND ...
WHERE l.cd Not In (...) AND l.nbr=0 AND l.acd!=y and l.ack = 0
Access select query joining above with two static tables containing
descriptive text for report (Again, edited heavily):
SELECT Count(q1.id), idc, [tbld].[zdesc]
FROM q1 LEFT JOIN tbld ON ...
WHERE (((q1.lstat)=x)) OR (((nz(q1.cstat,0))=x))
GROUP BY idc, [tbld].[zdesc];
Using the pass through query to select the id's and tie them to the lct runs
considerably faster than the two separate queries I would need in Access
(because of the count(distinct x) feature that Access lacks), but I seem to
be paying for it in the report design. Any suggestions will be greatly
appreciated.
Nick