Я бы установил под-форму, позволяющую редактировать = нет.
Я бы тогда на главной форме имел кнопку для запуска другой формы, основанной на той же таблице, что и подформа.
Таким образом, пользователь может нажать на эту кнопку, добавить запись, а затем, когда он закроет запись, вы обновите форму, чтобы отключить эту новую запись.
Другими словами, вы довольно много утверждаете, что существующие reocrds в под-форме предназначены ТОЛЬКО для отображения, а не для дальнейшего редактирования или изменения.
Таким образом, за кнопкой (вы помещаете ее в основную форму), вы можете иметь этот код:
Dim f As String
If Me.Dirty = True Then Me.Dirty = False ' force data save
f = "frmFoodAdd"
DoCmd.OpenForm f, , , , acFormAdd
Forms(f)!tblHotels_ID = me.id
DoCmd.OpenForm f, , , , , acDialog ' change form to "wait" for user
Me.MySubForm.Requery
Конечно выше, вы меняете f = "созданную вами форму, чтобы добавить одну строку"
tblHotels_ID = me.id
Вверху измените tblHotels_ID на столбец, используемый для привязки дочерней таблицы к основной форме. Субформы «устанавливают» это значение автоматически, но запуск отдельной формы НЕ ДАЕТ