在另一个子表单中编辑数据时禁用子表单

Posted

技术标签:

【中文标题】在另一个子表单中编辑数据时禁用子表单【英文标题】:Disable a subform while editing data in another subform 【发布时间】:2019-08-27 14:23:01 【问题描述】:

我有两个子表单,第一个是列表,第二个是第一个子表单中所选记录的详细记录。

当我在详细信息子表单中选择编辑按钮时,我想锁定列表表单。

我试过了:forms!master!subformList.enabled=false

注意:

_D 是详细的子表单。 _L 是列表子表单。 cmb_Edit 是位于详细信息子表单上的编辑/保存按钮。
Private Sub EnableFutureForm(EF)
    Select Case EF
        Case 1                  'SubForm Detail is Locked Down
            FuturePaint (False)
            Forms!FrmFutureWork!FrmFutureWork_D!cmb_Edit.Caption = "Edit"
            Forms!FrmFutureWork!FrmFutureWork_L.Form.Enabled = True

        Case 2                  'SubForm Detail is Opened up
            FuturePaint (True)
            Forms!FrmFutureWork!FrmFutureWork_D!cmb_Edit.Caption = "Save"
            Forms!FrmFutureWork!FrmFutureWork_L.Form.Enabled = False
            Forms!FrmFutureWork!FrmFutureWork_D!cmb_TRMM.SetFocus
    End Select
End Sub

我希望列表子表单不响应任何点击,而 Form_Click 继续工作。

【问题讨论】:

【参考方案1】:

您可以通过设置 forms 属性来禁用事件。 对于Form_Click,它是Form.OnClick 属性。

'disable event
Forms!FrmFutureWork!FrmFutureWork_L.Form.OnClick = vbNullString
'enable event
Forms!FrmFutureWork!FrmFutureWork_L.Form.OnClick = "[Event Procedure]"

或者您可以在事件代码中添加检查:

Private Sub Form_Click()
If Forms!FrmFutureWork!FrmFutureWork_L.Enabled then
' Actions on subform-control (not the form!) enabled
Else
' Action on subform-control disabled 
End IF
End Sub

【讨论】:

以上是关于在另一个子表单中编辑数据时禁用子表单的主要内容,如果未能解决你的问题,请参考以下文章

当从一个子调用但另一个子调用时添加控件的子工作

Ms Access:来自另一个子表单的子表单重新查询未更新

如何从位于访问中的另一个子窗体中的组合框中过滤子窗体?

如何确定哪个子窗体有焦点

访问子表单,选择下一条记录时停止自动保存到链接表

仅重新查询数据表视图表单中的一条记录 (MS Access)