access窗体中的按钮,通过触发才可以使用(就像有些软件再不可使用时,变为灰色,使其使用不了)的代码

2025-01-05 17:36:16
推荐回答(3个)
回答1:

  1. 设置按钮的启用属性为否,即:按钮.Enabled=false,

    在Text60的失去焦点事件中写:

    Private Sub Text60_lostFocus()
        If IsNull(Me.Text60) Then
            Me.Command1.Enabled = False
        Else
            Me.Command1.Enabled = True
        End If
    End Sub

  2. 在修改按钮的单击事件中写:

    Private Sub 修改_Click()
        Me.退出.Enabled = False
    End Sub

3.    在保存按钮的单击事件中写:

        Private Sub 保存_Click()
            Me.退出.Enabled = true
        End Sub

 

另外,我觉得你这样设置并不好,

一般是这样做的,比如第一个问题,通过设置Text60的有效性,或者代码检查是否为空做对应处理,代码如下:

保存按钮的点击事件:

Private Sub 保存_Click()
    If IsNull(Me.Text60) Then
        msgbox "Text60栏位不能为空,请重新输入!",vbokonly,"提醒"

        me.text60.setfocus

        exit sub

    Else
        '......保存的代码......

    End If
End Sub

第二个问题也类似,在退出的时候,检查数据是否有修改,有过有修改就提示是否需要保存,等等...

 

祝你成功!

回答2:

如果你的窗体上的工作流程很简单, 只是从头到尾, 那做按钮挨个向后触发, 进行用户动作管控是可行. 但是如果一个窗体上的工作流程有多条, 不建议这样设计, 因为流程多了以后触发链会很混乱, 给你给用户都带来困扰

所以我的建议是, 在按下按钮时先检测必要条件, 比如1, 在按钮单击事件的开头进行检测
if nz(Me!Text60,"") = "" then
msgbox ("某某信息未填写, 请填写后在试!")

exit sub

end if

2 和 3 都可以用这样的思路去设计, 但是有的用户会直接点击窗体的叉叉来退出, 那就会跳过退出按钮, 那你需要在窗体的卸载事件中进行检测和确认

回答3:

供参考,其它自己扩展吧
Private Sub Command1_Click()
Command2.Enabled = False
End Sub

Private Sub Text1_Change()

If Trim(Text1.Text) <> "" Then
Command1.Enabled = True
Else
Command1.Enabled = False
End If

End Sub