I have an answer: I post it here should anybody else ever be as
stumped as I was.
To help understand, this is what I have:-
Form:
+-------------------------
|SubForm1
|+---------------------
|| list of idStmt, sqStmt
|+-----------------
|SubForm2
|+---------------------
|| list of amEntry
||------------------
||Total (amEntry)
|+-----------------
|
|idStmtCurrent: <value echoed from SubForm1>
|sqStmt: <value echoed from SubForm1>
|amOpen: <=function(sqStmt)>
|amTotal: <=SubForm2.Total(amEntry)>
|amBalance: <=amOpen - amTotal>
|
| <Now()>
+-------------------------
I believe what is happening is that a change in SubForm 2 (which has a
subtotal) causes a control on the parent form to reset (it shows the
"total" from Subform 2).
That in turn is referenced by a control (that subtracts the value from
the "total" that comes from the Subform) from another control.
Access cascades the refresh I guess and goes back to the other control
that also supplies data into the calculation. In turn, that goes back
to another "reference" that points to the currently selected value on
SubForm 1 (which was not part of the key).
What was still strange is that other fields on the form (I set a test
field's data source to =Now()) were also getting refreshed.
I changed the reference to another field (now the "idStmt (key)" that
is also echoed back from subform1), and the cascade refreshing stopped.