я использую
DoCmd.RunCommand acCmdSaveRecord
чтобы сохранить, но я не уверен, как это на самом деле работает. Сохраняет ли он каждое несохраненное изменение? Или сохраняет все независимо от того, меняли это или нет? Или сохраняет только текущую форму? Что насчет выпущенных несохраненных изменений в других формах? Или он как-то работает? Есть ли официальная документация по этой функции?





Сохраняет текущую запись активная форма. Это то же самое, что щелкнуть селектор записи.
Если текущая запись в данный момент не редактируется (не «Грязная»), то ничего не происходит.
Если вам нужен лучший контроль, особенно при работе с подчиненными формами, я предлагаю вместо этого использовать Form.Dirty недвижимость. С его помощью вы можете явно указать форму, которую хотите сохранить.
Чтобы сохранить текущую запись в модуле формы (сохранять только при необходимости):
If Me.Dirty Then
Me.Dirty = False
End If
Сохранить запись в любом виде
With Forms!myForm
If .Dirty Then
.Dirty = False
End If
End With
Или подчиненная форма
Forms!mainForm!SubFormControl.Form.Dirty = False
Это намного яснее и лучше, ИМО. Я полностью перестал использовать DoCmd.RunCommand acCmdSaveRecord.