0

Summary

I have various forms in an Access front end database with several drop-down lists. These populate from queries, which take data from tables in a back end Access database (via linked tables).

On opening the front end and clicking the first drop-down combo box, there is a wait of several seconds (often accompanied by a "Not responding" message) while the table data from the back end (on a server) is downloaded.

It strikes me that this loading could be initiated as soon as the front end opens, and before the user clicks the first combo box. Is there any way to pre-load the table -- preferably with no "not responding" message?

Mark Butler
  • 895
  • 1
  • 5
  • 18

1 Answers1

1

According to my experience, filling the drop-downs initially will require to alter the whole form component structure. I.e. the drop-downs would read their items not from queries but from VBA lists. The lists could be created automatically after the Access startup process.

But I have once successfully increased the performance by opening the whole forms at startup and make them invisible. Then, if somebody needs a form and choses e.g. a menu point, the form will just become visible. People told me they accept a waiting time at startup well as they know of it and do some other work or go grab a coffee.

To maintain this whole form preloading, you would need to disable the form close buttons (and probably add an alternative button), as this buttons would destroy the performance boost. Further, maybe the dialogs should be able to reload the attributes somehow. But if the properties in the drop-downs don't alter too much, customer could probably life with an occasional application restart. Last, if Access crashes (one not caught VBA error is enough to reset Access' runtime status), the next dialog to be opened will be loaded again. You need to write some intelligent GetForm() factory method to deal with this.

But as a plus, loading a dialog invisible at the startup is easy :-)

Now you have at least two scenarios - I hope you'll find a good way.

peter_the_oak
  • 3,529
  • 3
  • 23
  • 37
  • The time taken for the forms themselves to load is insignificant so I don't think I'd gain any benefit from preloading those. Using VBA to populate a list from table data on startup is a good thought, I might try that. – Mark Butler Aug 19 '14 at 13:32
  • As fas as I understand, all the drop-downs are loaded when the forms are loaded. That's why it should save time. – peter_the_oak Aug 19 '14 at 13:45