Я не понимаю, как может работать ваше решение, если форма отфильтрована до значения, которому отредактированная запись больше не соответствует - если вы отфильтровываете по [Dismissed] = "N", то изменяете поле Dismissed текущей записи значение Y должно привести к тому, что запрашиваемая форма исключит только что обновленную запись.
Кроме того, я бы никогда не сделал это так, как вы, поскольку Me.CurrentRecord возвращает число, представляющее позицию в записи. Поскольку запрос может привести к изменению количества записей (например, кто-то другой редактирует или добавляет или удаляет запись, в результате чего она включается / исключается из набора записей формы) и изменяется положение искомой записи, я бы использовал ПК вместо.
Dim lngPK as Long
lngPK = Me!MyPKID
Me.Requery
With Me.RecordsetClone
.FindFirst "[MyPKID]=" & lngPK
If Not .NoMatch Then
If Me.Dirty Then
Me.Dirty = False
End If
Me.Bookmark = .Bookmark
End If
End With
Это не будет иметь дело с проблемой фильтра, но я оставлю это в стороне, поскольку, как мне кажется, это не та проблема, о которой я думал, что это будет из описания исходной проблемы.