Hm...
Not sure exactly what the problem is, but I must say it sounds like a bad idea to unload a form and then show it again, from
within the form. At a guess, this could be causing VB some confusion. The unload command is supposed to entirely remove the form (including all code) from memory. Not sure how things work if you're still "in" the form executing code afterward. You're effectively telling VB "erase this code which I'm executing". Ugh.
As a general rule, I'd advise against using the statement
Unload Me unless it's the last one executed by "Me".
Best I can think of right now is to either:
- do this process from outside the form, or
- create a sub that clears all the data, and call that instead of reloading the form.
Oh, one more thing you might try first, since it's quicker and easier. Try fiddling with the form's
ClipControls and
AutoRedraw properties (just in the editor I mean, not your code), to see whether they make a difference. But make sure you make a note of what they are beforehand, so you can put them back afterward.