设置按钮的启用属性为否,即:按钮.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
在修改按钮的单击事件中写:
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
第二个问题也类似,在退出的时候,检查数据是否有修改,有过有修改就提示是否需要保存,等等...
祝你成功!
如果你的窗体上的工作流程很简单, 只是从头到尾, 那做按钮挨个向后触发, 进行用户动作管控是可行. 但是如果一个窗体上的工作流程有多条, 不建议这样设计, 因为流程多了以后触发链会很混乱, 给你给用户都带来困扰
所以我的建议是, 在按下按钮时先检测必要条件, 比如1, 在按钮单击事件的开头进行检测
if nz(Me!Text60,"") = "" then
msgbox ("某某信息未填写, 请填写后在试!")
exit sub
end if
2 和 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