Office中国论坛/Access中国论坛
标题:
窗体的字段录入有效性设置问题
[打印本页]
作者:
成功
时间:
2013-9-24 09:55
标题:
窗体的字段录入有效性设置问题
请教各位老师,窗体字段在录入结束时如何自动检测全部字段已录入?即要求全部字段要有相应内容,不能有不填的空字段,如未填写某字段会有提示出现那一字段没有录入,请填写!先谢谢各位长期对我的支持!
作者:
access学习交流
时间:
2013-9-24 10:06
在字段属性设置不为空即可!
作者:
Henry D. Sy
时间:
2013-9-24 11:31
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim ctl As Control
For Each ctl In Me.Controls
If TypeOf ctl Is TextBox Or TypeOf ctl Is ComboBox Then
If IsNull(ctl) Then
MsgBox ctl.Name & "不可为空!"
ctl.SetFocus
Exit Sub
End If
End If
Next
End Sub
复制代码
作者:
Henry D. Sy
时间:
2013-9-24 11:35
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim ctl As Control
For Each ctl In Me.Controls
If TypeOf ctl Is TextBox Or TypeOf ctl Is ComboBox Then
If IsNull(ctl) Then
MsgBox ctl.Name & "不可为空!"
ctl.SetFocus
Cancel = True
Exit Sub
End If
End If
Next
End Sub
复制代码
作者:
成功
时间:
2013-9-25 16:15
Henry D. Sy 发表于 2013-9-24 11:35
非常感谢“苹果”头老师!问题搞定了!谢谢!
作者:
成功
时间:
2013-9-25 16:16
access学习交流 发表于 2013-9-24 10:06
在字段属性设置不为空即可!
谢谢!没找到呀!模糊!
作者:
smilingkiss
时间:
2013-9-30 09:32
本帖最后由 smilingkiss 于 2013-9-30 09:37 编辑
Henry D. Sy 发表于 2013-9-24 11:35
Henry老师,想请教一下,我的窗体设置了:
Me.AllowEdits = Me.NewRecord,
如果不是新增记录,只是修改,那么文本框需要双击才能编辑,实现方法如下:
设置一个复选框check32,然后在窗体成为当前的事件上:
Private Sub Form_Current()
Me.AllowEdits = Me.NewRecord
Me.Check32 = False
If Me.NewRecord Then
Me.Check32 = True
End If
End Sub
然后在文本框的控件上通过双击调用如下函数:
Private Sub DoubleClick_for_Edit()
If Not Me.NewRecord Then
Me.AllowEdits = True
End If
End Sub
编辑完毕退出文本框,则有一下函数确保重新锁定:Private Sub Combo10_Exit(Cancel As Integer)
If Me.Check32 = False Then
Call Exit_for_Edit
End If
End Sub
Private Sub Exit_for_Edit()
If (Not Me.NewRecord) And Me.AllowEdits = True Then
Me.AllowEdits = Me.NewRecord
Me.Refresh
End If
End Sub
以上功能一旦在窗体的“更新前”事件作出了“cancel=true”,则全部失效,
所以特意请教Henry老师是什么回事,如果确实有必要运行窗体的“更新前”事件,并且有“cancel=true”,应该如何恢复之前需要双击才能编辑的功能呢?谢谢!
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3