access窗体中的按钮,通过触发才可以使用(就像有些软件再不可使用时,变为灰色,使其使用不了)的代码
1.我需要一个触发按钮为:当Text60中有数据时,按钮自动由灰色变为正常色,并且此时可以点击。(平常(或Text60中无数据时)该按钮为不能使用的状态,且为灰色)
2.我还需要一个触发按钮为:当”修改“按钮按下时,将”退出“按钮自动由正常色变为灰色,并且此时不可以点击。(平常这两个按钮都为正常色,处于可使用的状态)
3.我还需要一个触发按钮为:当”保存“按钮按下时,将”退出“按钮自动由灰色变为正常色,并且此时可以点击。(平常该按钮为不能使用的状态,且为灰色。只有当修改按钮按下时,才可触发该按钮使用)
请高手按顺序告之代码,十分感谢!! 展开
设置按钮的启用属性为否,即:按钮.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