Мне нужно включить и разблокировать подчиненную форму, когда запись вставляется в таблицу за подчиненной формой. Подформа «sfrmSaplingCount» является подформой «frmData». Я использую всплывающую форму, чтобы получить информацию от пользователя для создания записи, а также включить и разблокировать подчиненную форму. Подформа заблокирована и отключена до тех пор, пока в ней не появится запись, с которой пользователь может взаимодействовать.
Private Sub cmdSaveSaplingCount_Click()
Dim strSQL As String
strSQL = "INSERT INTO tblNETN_MicroplotEventSaplingCount
(MicroplotEventID, TaxonID, SaplingCount,
TaxonomicReferenceAuthority_IdentificationID, ProtectedStatusID) VALUES
(" & Me.OpenArgs & ", " & Me.cboTaxonID & ", " & Me.SaplingCount & ", " &
intTR & ", " & intPS & ")"
CurrentDb.Execute strSQL, dbFailOnError
Forms.frmData.sfrmSaplingCount.Form.Requery
Forms.frmData.sfrmSaplingCount.Form.Enabled = True
Forms.frmData.sfrmSaplingCount.Form.Locked = False
DoCmd.Close acForm, "frmNewSaplingCount"
«Ошибка времени выполнения 2465: ошибка, определяемая приложением или объектом», возвращается в операторах для включения или разблокировки подчиненной формы.
2 утверждения, вызывающие у меня проблемы: "Forms.frmData.sfrmSaplingCount.Form.Enabled = True" & "Forms.frmData.sfrmSaplingCount.Form.Locked = False"
Можете ли вы сказать мне, что я делаю неправильно?
Насколько я вижу, у форм нет свойств Locked и Enabled, у элементов управления они есть. Контейнер Subform/Subreport является элементом управления и имеет эти свойства. Рекомендуется называть контейнер иначе, чем форма, которую он содержит, например, ctrSapling.
Forms.frmData.ctrSapling.Enabled = True
Forms.frmData.ctrSapling.Locked = False
Это потому, что не задано свойство формы. И даже для Requery он не нужен. Иногда потребуется «Форма», но не для трех строк кода.
Да все верно. Формы в контексте того, что они являются подчиненными формами другой формы, являются элементами управления, которые будут иметь свойства «Включено» и «Заблокировано». В статьях, которые я читал, было указано добавить «.Form» после имени элемента управления подчиненной формы, чтобы определить элемент управления подчиненной формы как элемент управления типа «форма». В вашем ответе не было «.Form» после имени подчиненной формы, поэтому я удалил его из своего кода, и это сработало. Спасибо.