Access 2000 - Multi-Paged Form Problem

C

Cascot

I have an application originally designed in Access 97 which I recently
converted to Access 2000. Some forms have two pages using a pagebreak.
Everything worked as expected in Access 97, however since converting to
2000 there now seems to be a problem related to the use of
[ObjectName].SetFocus

On clicking the Update button I carry out validation to ensure certain
fields contains values. if they do not I display a messagebox, set the
focus to the appropriate object then exit the sub procedure. Within
Access 2000 it now seems that, even though I am solidly on (say) page 2
(as are the objects I am validating) setting the focus to any of these
objects now messes up the pages. I end up with page 2 covering only the
bottom 25% of the screen with the other 75% taken up by the lower
sections of page 1.

I can get around the problem by ensuring that before exiting any code
within which an [ObjectName].SetFocus has been executed, I do a
Me.GoToPage 2 (say). The problem is that it requires many such
instances where nothing was required under Access 97 and it causes the
form to flicker slightly (using DoCmd.Echo False/True doesn't help)

Has anyone come across this problem before? Any suggestions anyone?
 
L

Larry Linson

I haven't experienced the problem, but have found it better to avoid
multi-paged forms because, even when they are "on their best behavior", they
can be confusing to users. I try to figure a different approach to whatever
problem was being "solved" by multi-page forms that doesn't have the quirks
and drawbacks.

One approach that my users have found more intuitive is to have a Tab
Control that allows switching from Page to Page. Sometimes it is convenient
to use Subform Controls on the Pages, with Forms embedded that correspond to
the Pages on a multi-paged Form.

As to your current problem, check the About Box in Help to ensure that you
have all three Service Packs for Access 2000 installed. I would personally
prefer using Access 2002 or 2003, each with all its Service Packs installed,
but am not sure that would actually solve the problem you describe.

Larry Linson
Microsoft Access MVP
 
C

Cascot

Thanks for your reply Larry.

I do have all the service packs installed, so it would seem to be yet
another unsolved bug in Access 2000 where any use of
[ObjectName].SetFocus on a form containing Page Breaks will mess things
up and leave you part way between one page and the other.

Ultimately I had to find another solution and decided to maintain the
current layout (so no change from the users perspective), but when the
page navigation buttons are clicked, rather than moving to the
appropriate page as defined by the Page Break I now have only one
"page" and simply control the visible property of the "Page 1" and
"Page 2" objects.

It seems to work well.
 
Top