From: Frank H on
I'm using a db built "long ago" (probably Access 97), which is currently
being used mainly by Access 03 users. When used in Access 2007, performance
is MUCH slower. None of the posts I've found seem to be addressing the same
issue; I'm hoping someone can provide some insight.
I'm not looking to rebuild the db (multiple users enter "incident"
information). I only want to open this can of worms far enough to make
minimum modifications possible, so that its performance is acceptable when
opened with an '07 machine, without messing up it's excellent performance
when opened on an 03 machine.

The .mdb file is on our server. Tables are linked via ODBC to a SQL server
in the same room.

The form (call it frmEntry) has a query (3 joined tables) as it's
recordsource, has 2 tabs containing around 50 text boxes, check boxes, 3
combo boxes. frmEntry is opened via a button on a "main menu" form, via a
macro that opens frmEntry in Add mode (i.e., it's normal starting state is
filtered for entry of a new record). (The recordsource has nearly 89,000
records.)

Buttons on frmEntry run macros to filter the form a variety of ways, all of
the macros use the OpenForm action with the FilterName argument referring to
a named query; each FilterName query is a parameter query with an expression
such as ...Like [Enter the first few letters of the company] & "*"... . This
has worked great in versions up through 2003: although the form is open, the
macro "reopens" the form, causing the parameter query to prompt for user
entry. Performance is less than 1 second.

When the same .mdb is opened with Access 2007 and the users attempts to use
the buttons, the parameter message box does not display, allowing no user
input, causing all 89,000 records to be selected. Some users get it to work
once, but then not a second time. Apparently, 2007 handles this "reopening"
differentlly. And, in general does not seem to filter as quickly.

I've tried:
tweaking the macro:
....added a requery action (causes the parameter to pop up, but generates run
time error when you cancel the message box, and is really slow);
....added an OnError action to catch the runtime error (probably won't work
in 03, and is still really slow);
....tried the Where argument instead of the FilterName. (doesn't pop the user
input box, ergo no worky)
Tested converting a copy of the .mdb to .accdb (no performance improvement)

I can't seem to find any info that would explain this. Anybody got any
insight?

--
Frank H
Rockford, IL
From: S.Clark on
Rather than the hokey parameter query with a form reopening, build a search
form to capture the input. When the user clicks the go button, open the form
using the criteria. Form would have a textbox and a button at minimum.

docmd.openform "formname", wherecondition = "[Company Name] Like " & [field
from search form] & "*" (The * may need to be a % for SQL Server.)

"Frank H" wrote:

> I'm using a db built "long ago" (probably Access 97), which is currently
> being used mainly by Access 03 users. When used in Access 2007, performance
> is MUCH slower. None of the posts I've found seem to be addressing the same
> issue; I'm hoping someone can provide some insight.
> I'm not looking to rebuild the db (multiple users enter "incident"
> information). I only want to open this can of worms far enough to make
> minimum modifications possible, so that its performance is acceptable when
> opened with an '07 machine, without messing up it's excellent performance
> when opened on an 03 machine.
>
> The .mdb file is on our server. Tables are linked via ODBC to a SQL server
> in the same room.
>
> The form (call it frmEntry) has a query (3 joined tables) as it's
> recordsource, has 2 tabs containing around 50 text boxes, check boxes, 3
> combo boxes. frmEntry is opened via a button on a "main menu" form, via a
> macro that opens frmEntry in Add mode (i.e., it's normal starting state is
> filtered for entry of a new record). (The recordsource has nearly 89,000
> records.)
>
> Buttons on frmEntry run macros to filter the form a variety of ways, all of
> the macros use the OpenForm action with the FilterName argument referring to
> a named query; each FilterName query is a parameter query with an expression
> such as ...Like [Enter the first few letters of the company] & "*"... . This
> has worked great in versions up through 2003: although the form is open, the
> macro "reopens" the form, causing the parameter query to prompt for user
> entry. Performance is less than 1 second.
>
> When the same .mdb is opened with Access 2007 and the users attempts to use
> the buttons, the parameter message box does not display, allowing no user
> input, causing all 89,000 records to be selected. Some users get it to work
> once, but then not a second time. Apparently, 2007 handles this "reopening"
> differentlly. And, in general does not seem to filter as quickly.
>
> I've tried:
> tweaking the macro:
> ...added a requery action (causes the parameter to pop up, but generates run
> time error when you cancel the message box, and is really slow);
> ...added an OnError action to catch the runtime error (probably won't work
> in 03, and is still really slow);
> ...tried the Where argument instead of the FilterName. (doesn't pop the user
> input box, ergo no worky)
> Tested converting a copy of the .mdb to .accdb (no performance improvement)
>
> I can't seem to find any info that would explain this. Anybody got any
> insight?
>
> --
> Frank H
> Rockford, IL