【问题标题】:Update "Enabled" and "Locked" properties for a subform更新子表单的“启用”和“锁定”属性
【发布时间】:2020-07-14 16:38:50
【问题描述】:

在子表单后面的表中插入记录时,我需要启用和解锁子表单。子表单“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:应用程序定义的或对象定义的错误”在启用或解锁子表单的语句上返回。

给我带来问题的两个陈述是: “Forms.frmData.sfrmSaplingCount.Form.Enabled = True”& "Forms.frmData.sfrmSaplingCount.Form.Locked = False"

你能告诉我我做错了什么吗?

【问题讨论】:

    标签: vba ms-access


    【解决方案1】:

    据我所知,表单没有 Locked 和 Enabled 属性,控件有它们。 Subform/Subreport 容器是一个控件并且具有这些属性。建议命名容器与其持有的形式不同,例如 ctrSapling。

    Forms.frmData.ctrSapling.Enabled = True
    Forms.frmData.ctrSapling.Locked = False
    

    【讨论】:

    • 是的,没错。表单,在作为另一个表单的子表单的上下文中是控件,它具有“启用”和“锁定”作为属性。我阅读的文章指示在子窗体控件的名称后添加“.Form”以将子窗体控件定义为“窗体”类型的控件。您的答案在子表单的名称之后没有“.Form”,所以我将它从我的代码中删除并且它有效。谢谢。
    • 因为没有设置表单的属性。即使对于 Requery,也不需要它。有时需要“表单”,但代码中的 3 行不需要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-03
    • 2019-03-28
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多