From: Eric G Eric on
I have a form with two subforms (on separate tab pages), MDB project, Access
2003.

When it initially opens, Form_Current on the active subform fires once, as
it should.

But when you move to another record (ie. from the main form), it fires
Form_Current on the active subform 4 times. Then subsequent record-moves
result in Form_Current firing 2 times. This is a pain, because the subforms
have a lot of fields that get moved and/or hidden and so it jumps around for
every Form_Current.

I am opening the form with a filter via DoCmd.OpenForm (actually it sends
the filter in via OpenArgs). FilterOn is only set once, in Form_Open on the
main form, never in the subforms. Form_Current is not called explicitly
anywhere else in the code.

When I look at the call stack when Form_Current fires moving the first time,
it looks like:
my_subform.Form_Current
[<Debug Window>]
my_subform.Form_Current

So it seems like something in Form_Current is triggering another
Form_Current event. But only on the first record move.

The code in Form_Current is somewhat complex, involving custom classes and
event callbacks, but generally does not touch the database. The only thing I
can think might be triggering a Form_Current is that it checks OldValue on
form controls - could this be causing it?

Or anything else come to mind?

Thanks.
Eric