A Microsoft Office (Excel, Word) forum. OfficeFrustration

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » OfficeFrustration forum » Microsoft Access » Using Forms
Site Map Home Register Authors List Search Today's Posts Mark Forums Read  

Access 2000: No events when hiding & reopening dialog box-a glitch in attempt to speed up app



 
 
Thread Tools Display Modes
  #1  
Old June 10th, 2004, 02:36 AM
Matt Jaffey
external usenet poster
 
Posts: n/a
Default Access 2000: No events when hiding & reopening dialog box-a glitch in attempt to speed up app

I have a question about hiding dialog boxes in Access 2000. I am
working on an application in which there is a form that is maximized
on the screen. On this form, there is a button which brings up a
dialog box on which some data entry can be done. The records that come
up in the dialog box are based on information found on the form behind
it.

For some reason, the dialog box opens very slowly (unacceptably
slowly) in some circumstances. I'm looking for ways to speed this up.
I'd be interested in any suggestions about this, but my question has
to do with one specific approach that I've tried:

Originally, the Close button on the dialog box closed the form. I've
been trying instead to simply hide the form by setting its visible
property to false. Then, the next time someone clicks on the button on
the main form, the DoCmd.OpenForm command opens the dialog box without
delay. There are a couple of problems though:

a) When the dialog box is hidden, it doesn't cause any events to take
place, so if the user was in the middle of editing a record in the
dialog box, hiding it doesn't cause the record to save. This is a
problem because the main form needs to do a requery that will show
changes made in the dialog box.

b) When the dialog box is made visible again, it doesn't cause any
events to take place. Suppose that after closing (hiding) the dialog
box, the user changes to another set of data on the main form, and
then returns to the dialog box - the data displaying in the dialog box
needs to change to correspond to the new data set on the main form. A
simple requery within the dialog box would do this, but since no
events take place, I haven't found a place to put the requery.

These problems don't occur if I don't use the modal and popup settings
and don't use "acDialog" as the window mode in the DoCmd.OpenForm
command. However, the modal and popup features are important to this
application. Also, it is important that the code in the on click event
for the button that opens the dialog box be suspended while the dialog
box is open (or visible). So it looks like I need to open this form as
a dialog box.

Does anyone have any ideas about this?

Thanks,
Matt
  #2  
Old June 10th, 2004, 02:53 AM
Ken Snell
external usenet poster
 
Posts: n/a
Default Access 2000: No events when hiding & reopening dialog box-a glitch in attempt to speed up app

Likely the slowness is because the form contains a combo box whose Row
Source query needs to be run (to fill the dropdown box), or the form's
Record Source query needs to be run. If either of these is true, then you
might look at trying to rewrite the queries so that they run faster (not
always possible, or may require the populating of a temporary table with
appropriate indices).

Actually, the Activate event will occur if the dialog box is made visible
again and it becomes the form on which the user must interact. The
Deactivate event occurs when you make the dialog box invisible.


--

Ken Snell
MS ACCESS MVP

"Matt Jaffey" wrote in message
om...
I have a question about hiding dialog boxes in Access 2000. I am
working on an application in which there is a form that is maximized
on the screen. On this form, there is a button which brings up a
dialog box on which some data entry can be done. The records that come
up in the dialog box are based on information found on the form behind
it.

For some reason, the dialog box opens very slowly (unacceptably
slowly) in some circumstances. I'm looking for ways to speed this up.
I'd be interested in any suggestions about this, but my question has
to do with one specific approach that I've tried:

Originally, the Close button on the dialog box closed the form. I've
been trying instead to simply hide the form by setting its visible
property to false. Then, the next time someone clicks on the button on
the main form, the DoCmd.OpenForm command opens the dialog box without
delay. There are a couple of problems though:

a) When the dialog box is hidden, it doesn't cause any events to take
place, so if the user was in the middle of editing a record in the
dialog box, hiding it doesn't cause the record to save. This is a
problem because the main form needs to do a requery that will show
changes made in the dialog box.

b) When the dialog box is made visible again, it doesn't cause any
events to take place. Suppose that after closing (hiding) the dialog
box, the user changes to another set of data on the main form, and
then returns to the dialog box - the data displaying in the dialog box
needs to change to correspond to the new data set on the main form. A
simple requery within the dialog box would do this, but since no
events take place, I haven't found a place to put the requery.

These problems don't occur if I don't use the modal and popup settings
and don't use "acDialog" as the window mode in the DoCmd.OpenForm
command. However, the modal and popup features are important to this
application. Also, it is important that the code in the on click event
for the button that opens the dialog box be suspended while the dialog
box is open (or visible). So it looks like I need to open this form as
a dialog box.

Does anyone have any ideas about this?

Thanks,
Matt



  #3  
Old June 10th, 2004, 05:58 PM
Matt Jaffey
external usenet poster
 
Posts: n/a
Default Access 2000: No events when hiding & reopening dialog box-a glitch in attempt to speed up app

Ken,

Thanks for your idea about checking the combo box row source - that
might be fruitful. I think the form's Record Source is not the
problem.

Your comments about the Activate and Deactivate events make logical
sense, but they have me puzzled, because I tested for these events by
putting message boxes in them, and they definitely didn't run. The
behavior seems to be different when the form is opened as a dialog box
and then hidden than if it is opened as a "normal" form and then
hidden. What, if anything, was wrong with the test that I did?

Matt

"Ken Snell" wrote in message ...
Likely the slowness is because the form contains a combo box whose Row
Source query needs to be run (to fill the dropdown box), or the form's
Record Source query needs to be run. If either of these is true, then you
might look at trying to rewrite the queries so that they run faster (not
always possible, or may require the populating of a temporary table with
appropriate indices).

Actually, the Activate event will occur if the dialog box is made visible
again and it becomes the form on which the user must interact. The
Deactivate event occurs when you make the dialog box invisible.


--

Ken Snell
MS ACCESS MVP

  #4  
Old June 10th, 2004, 06:13 PM
Ken Snell
external usenet poster
 
Posts: n/a
Default Access 2000: No events when hiding & reopening dialog box-a glitch in attempt to speed up app

Hard to say what's different, as I don't know what you tested. Activate and
Deactivate will occur whenever a form is "activated" or "deactivated" ....
whether the form is opened in dialog mode or normal mode.

--

Ken Snell
MS ACCESS MVP

"Matt Jaffey" wrote in message
om...
Ken,

Thanks for your idea about checking the combo box row source - that
might be fruitful. I think the form's Record Source is not the
problem.

Your comments about the Activate and Deactivate events make logical
sense, but they have me puzzled, because I tested for these events by
putting message boxes in them, and they definitely didn't run. The
behavior seems to be different when the form is opened as a dialog box
and then hidden than if it is opened as a "normal" form and then
hidden. What, if anything, was wrong with the test that I did?

Matt

"Ken Snell" wrote in message

...
Likely the slowness is because the form contains a combo box whose Row
Source query needs to be run (to fill the dropdown box), or the form's
Record Source query needs to be run. If either of these is true, then

you
might look at trying to rewrite the queries so that they run faster (not
always possible, or may require the populating of a temporary table with
appropriate indices).

Actually, the Activate event will occur if the dialog box is made

visible
again and it becomes the form on which the user must interact. The
Deactivate event occurs when you make the dialog box invisible.


--

Ken Snell
MS ACCESS MVP



  #5  
Old June 10th, 2004, 06:35 PM
Dirk Goldgar
external usenet poster
 
Posts: n/a
Default Access 2000: No events when hiding & reopening dialog box-a glitch in attempt to speed up app

"Ken Snell" wrote in message

Hard to say what's different, as I don't know what you tested.
Activate and Deactivate will occur whenever a form is "activated" or
"deactivated" .... whether the form is opened in dialog mode or
normal mode.


Ken, I get the same behavior Matt reports when I use

DoCmd.OpenForm "frmDialog", WindowMode:=acDialog

--
Dirk Goldgar, MS Access MVP
www.datagnostics.com

(please reply to the newsgroup)


  #6  
Old June 10th, 2004, 06:38 PM
Ken Snell
external usenet poster
 
Posts: n/a
Default Access 2000: No events when hiding & reopening dialog box-a glitch in attempt to speed up app

Hmmm...working ok here in A2K2 for me. I tested it and the activate and
deactive events both occurred as expected.

--

Ken Snell
MS ACCESS MVP

"Dirk Goldgar" wrote in message
...
"Ken Snell" wrote in message

Hard to say what's different, as I don't know what you tested.
Activate and Deactivate will occur whenever a form is "activated" or
"deactivated" .... whether the form is opened in dialog mode or
normal mode.


Ken, I get the same behavior Matt reports when I use

DoCmd.OpenForm "frmDialog", WindowMode:=acDialog

--
Dirk Goldgar, MS Access MVP
www.datagnostics.com

(please reply to the newsgroup)




  #7  
Old June 10th, 2004, 06:51 PM
Ken Snell
external usenet poster
 
Posts: n/a
Default Access 2000: No events when hiding & reopening dialog box-a glitch in attempt to speed up app

My error, it seems.... You're right..it's doing this in A2K2 as well.

I thought I'd tested it in dialog mode, but I apparently tested it in
regular mode.

So....in the absence of an event, Matt, you will need to explicitly put the
desired code in the various actions that you know will happen. Essentially,
in the Close button (which hides the form), put a line of code in that will
explicitly save the current record:
If Me.Dirty = True Then Me.Dirty = False

And in the code that you run to make the form visible again, put a line of
code in to have the requery done for the form.

Perhaps another alternative (though I don't think it's a great one) would be
to set up a timer event on the form that checks the Visible status of the
dialog form, and to take actions accordingly. But seems a bit of an overkill
in this situation.
--

Ken Snell
MS ACCESS MVP



"Dirk Goldgar" wrote in message
...
"Ken Snell" wrote in message

Hard to say what's different, as I don't know what you tested.
Activate and Deactivate will occur whenever a form is "activated" or
"deactivated" .... whether the form is opened in dialog mode or
normal mode.


Ken, I get the same behavior Matt reports when I use

DoCmd.OpenForm "frmDialog", WindowMode:=acDialog

--
Dirk Goldgar, MS Access MVP
www.datagnostics.com

(please reply to the newsgroup)




  #8  
Old June 11th, 2004, 06:40 PM
Matt Jaffey
external usenet poster
 
Posts: n/a
Default Access 2000: No events when hiding & reopening dialog box-a gl

Thanks for your help Ken. Both of these ideas worked.
1) playing with row source of a combo box
2) hiding dialog box instead of closing

Matt

"Ken Snell" wrote:
snip
Likely the slowness is because the form contains a combo box whose Row
Source query needs to be run (to fill the dropdown box)

snip

"Ken Snell" wrote:
snip
So....in the absence of an event, Matt, you will need to explicitly put the
desired code in the various actions that you know will happen. Essentially,
in the Close button (which hides the form), put a line of code in that will
explicitly save the current record:
If Me.Dirty = True Then Me.Dirty = False

And in the code that you run to make the form visible again, put a line of
code in to have the requery done for the form.

snip
  #9  
Old June 11th, 2004, 06:43 PM
Matt Jaffey
external usenet poster
 
Posts: n/a
Default Access 2000: No events when hiding & reopening dialog box-a gl

Ken,

Thanks for your help. Both of these approaches worked. So I can use either one:
1) Play with the combo box row source
2) Hide the dialog box instead of closing it

Matt

"Ken Snell" wrote:
Likely the slowness is because the form contains a combo box whose Row
Source query needs to be run (to fill the dropdown box)

Snip
So....in the absence of an event, Matt, you will need to explicitly put the
desired code in the various actions that you know will happen. Essentially,
in the Close button (which hides the form), put a line of code in that will
explicitly save the current record:
If Me.Dirty = True Then Me.Dirty = False

And in the code that you run to make the form visible again, put a line of
code in to have the requery done for the form.

Snip
  #10  
Old June 11th, 2004, 06:44 PM
Matt Jaffey
external usenet poster
 
Posts: n/a
Default Access 2000: No events when hiding & reopening dialog box-a glitch in attempt to speed up app

Ken,

Thanks for your help. Both of these approaches worked. So I can use either one:
1) Play with the combo box row source
2) Hide the dialog box instead of closing it

Matt

"Ken Snell" wrote:
Likely the slowness is because the form contains a combo box whose Row
Source query needs to be run (to fill the dropdown box)

Snip
So....in the absence of an event, Matt, you will need to explicitly put the
desired code in the various actions that you know will happen. Essentially,
in the Close button (which hides the form), put a line of code in that will
explicitly save the current record:
If Me.Dirty = True Then Me.Dirty = False

And in the code that you run to make the form visible again, put a line of
code in to have the requery done for the form.

Snip
 




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Forum Jump


All times are GMT +1. The time now is 12:53 PM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 OfficeFrustration.
The comments are property of their posters.