访问:VBA代码按钮可见性无效

时间:2015-07-01 11:51:57

标签: vba ms-access access-vba visibility

我在隐藏我的按钮时遇到了问题而且主要不工作是当按钮本身被点击时,它应该被隐藏。 我的一个按钮下面有一个代码,但大多数按钮可见性代码都不起作用。我试着添加:

DoEvents

但仍然没有工作。我不知道问题是什么。一些启用属性正在运行,但有些不是。

Private Sub cmdSave_Click()

If MsgBox("Are you sure to save record?", vbYesNo, "Save Record") = vbYes Then

DoEvents

    imgPic.Enabled = False
    txtLRN.Enabled = False
    txtLN.Enabled = False
    txtFN.Enabled = False
    txtMN.Enabled = False
    txtS.Enabled = False
    txtA.Enabled = False
    txtBD.Enabled = False
    txtBP.Enabled = False
    txtMT.Enabled = False
    txtIP.Enabled = False
    txtRG.Enabled = False
    txtAH.Enabled = False
    txtAB.Enabled = False
    txtAM.Enabled = False
    txtAP.Enabled = False
    txtF.Enabled = False
    txtM.Enabled = False
    txtGN.Enabled = False
    txtGR.Enabled = False
    txtCN.Enabled = False
    txtR.Enabled = False

DoEvents
    cmdSearch.Visible = True
    cmdFirst.Visible = True
    cmdPrev.Visible = True
    cmdNext.Visible = True
    cmdNext.Visible = True
    cmdLast.Visible = True
    cmdNew.Visible = True
    cmdDelete.Visible = True
    cmdEdit.Visible = True


DoEvents
    cmdSave.Visible = False
    cmdCancel.Visible = False

DoEvents

End if

End Sub

2 个答案:

答案 0 :(得分:2)

此过程的简化版本将触发错误#2165,“您无法隐藏具有焦点的控件。”

if (typeof subject.current === "undefined" || subject.current == true)

cmdSave_Click 期间, cmdSave 具有焦点,因此如果不先将焦点移动到另一个未隐藏的控件,则无法隐藏它。此版本将避免该错误:

Private Sub cmdSave_Click()
    Me.cmdSave.Visible = False
End Sub

答案 1 :(得分:0)

在类似的情况下,我发现你需要指定表格参考(“我。”)。

所以试试(例如)

    Me.cmdCancel.Visible = True

换句话说,指定“我”。在控制名称前面。