Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions

How to clear a previous form from the screen?

Posted on 2006-10-29
Last Modified: 2008-03-10
I have an Access system that has been around for a number of years.  It was designed when users used 800x600 screen resolution.  Now many users prefer higher resolutions and one user even has an LSD monitor that doesn't have 800x600.  I'm trying to clean things up so that everything looks ok in both lower and higher resolutions.  One problem with higher resolution is that if a form whose length is quite long is closed and a form with a shorter length is then opened, the bottom half of the previous long form continues to appear at the bottom of the screen.  I've used a Docmd.Close.  How do I get the screen cleared?  There's probably some syntax somewhere, but I've had no luck finding it.  (A2003)
Question by:WFBweb
LVL 84
ID: 17829250
This shouldn't be happening. When a form closes, everything should be gone and if you're seeing "ghost" images of the old form, you may be experiencing the beginnings of corruption.

Make a copy of your db first, then perform a compact/repair (tools - Database utilities - Compact & Repair). See if this takes care of the problem.

You should also explicitly call the form in DoCmd.Close:

DoCmd.Close acForm, "YourFormName"

LVL 77

Expert Comment

ID: 17829267
Hi WFBweb,
That sounds like a display driver issue, not an Access issue.


Author Comment

ID: 17829323
I do explicity call the form in Do.Cmd.Close.  And...I did the compact/repair.  The system is set up to automatically do this on closing too.

Re the driver issue......I'll go over there (a notforprofit I do volunteer work for) and double-check.  Possibly the prob is only on my own home pc where I do all the development work.  There aren't a lot of users over there who do not use 800x600 and I may not have noticed if the prob did not occur for them.
U.S. Department of Agriculture and Acronis Access

With the new era of mobile computing, smartphones and tablets, wireless communications and cloud services, the USDA sought to take advantage of a mobilized workforce and the blurring lines between personal and corporate computing resources.

LVL 26

Expert Comment

ID: 17829440
>>That sounds like a display driver issue
I'd hasten to agree.

You can also get this problem intermittently if your CPU usage is particularly high.
The result is that the previous application screen stays on screen and looks like the new screen has sort of cut out part of it.

LVL 44

Accepted Solution

Leigh Purvis earned 125 total points
ID: 17829541
You don't have any code that prevents screen updates do you?
Possibly Echo or, since you're closing the form, the Painting property of the form - so perhaps
Application.Echo = False
Docmd.Echo False
Me.Painting = False

Before calling your form close - perhaps insert a line
Docmd.Echo True
Me.Painting = True

Just to be sure on that score?

Author Comment

ID: 17830202
The same situation does occur over at the notforprofit.  I even upped the resolution of one of the 800x600 pc's and it had same prob.

Re Echo.  I did not realize that echo false stopped the actual updating of screens.  I have presumed that it merely did not show any ongoing changes to the user until the echo true was applied.  I frequently use it to stop minor movement/jumping reflected in closing and opening forms when it is not used.

To make the situation even more complex, I have a couple of 'short' forms that are, except for the data, exactly like the ones that show part of the previous form below them.  They do not show it.  They are all treated the same and basically have the same properties.....at least my sleuthing so far indicates that they do.

I'll do some experimenting with the echo.

LVL 44

Expert Comment

by:Leigh Purvis
ID: 17830237
If you use Echo at all (let alone a lot) it's imperative that you have good error handling - so that it is *never* allowed to persist.
Since you do use it - I'd certainly suspect this is the cause, however plugging in a switch of it back on in the form closing event would merely be patching over the cracks.
You need to determine where in your code it is being used and not set back on again.
And make sure that this never happens.

Author Comment

ID: 17831714
I haven't read the ten commandments in many years.....forgot all about the one that said 'thou shalt not echo'.
LVL 44

Expert Comment

by:Leigh Purvis
ID: 17831877
Apparently it's OK - as long as you're not a duck!
(I read somewhere once that a duck's quack doesn't echo).

And of course you're free to use Echo in your applications.
Just as long as you're sooo careful to turn it back on again. :-)

Author Comment

ID: 17832995
I still haven't run down a culprit echo, but will keep at it.
LVL 44

Expert Comment

by:Leigh Purvis
ID: 17833005
Does switching echo back on before closing the form make it behave though?

Author Comment

ID: 17833911
These forms are unbound main forms with at least one subform.  The main forms had echo on logic, but the forms that did not work had OrderBy code in the subform with no echo on.  The forms that worked properly had the OrderBy code for the subforms in the main form where the echo on was applied.  I moved the OrderBy logic of all the subforms to the main forms and everything works fine.  I believe that subforms are processed before mainforms so the echo off was in place causing the problem.

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Experts-Exchange is a great place to come for help with solutions for your database issues, and many problems are resolved within minutes of being posted.  Others take a little more time and effort and often providing a sample database is very helpf…
Phishing attempts can come in all forms, shapes and sizes. No matter how familiar you think you are with them, always remember to take extra precaution when opening an email with attachments or links.
Familiarize people with the process of utilizing SQL Server functions from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Ac…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

860 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question