Okay, like a week later. I switched to forms. It still jumps on update. But I also figured out a way to move it back to where it needs to go.
The data on my form is set to a query, which can't be edited from a form, so I had to continue using "update table set value = whatever" in vba and then updating the RecordSource.
After updating the table, I run this code.
Code:
Dim intCurrentRecord As Integer
Dim intOffset As Integer
Dim intTopRecord As Integer
intCurrentRecord = Me.CurrentRecord
intOffset = (Me.CurrentSectionTop - 1058) / 300
intTopRecord = intCurrentRecord - intOffset
Forms!frmGUI!fsubSchedule.Form!Child0.Form.RecordSource = Forms!frmGUI!fsubSchedule.Form!Child0.Form.RecordSource
DoCmd.GoToRecord acActiveDataObject, , acLast
DoCmd.GoToRecord acActiveDataObject, , acGoTo, intTopRecord
It works. The only issue I have with it is there's a real quick flicker.