【access小品】画地为牢--动态控制有效性规则-煮江品茶
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-窗体/数据页


【access小品】画地为牢--动态控制有效性规则

发表时间:2010/10/22 16:32:39 评论(0) 浏览(6836)  评论 | 加入收藏 | 复制
   
摘 要:动态控制有效性规则
正 文:

  xyh2732 同志问如何将若干相加的控件值都控制在一定范围内,使得其合计限制为万元以下。这是一个动态控制有效性规则的问题,可以通过控件的获得焦点事件加以解决。如果控件比较多的话,需要在窗体的加载事件中,将一个有效性规则设置的函数,赋值给各个控件的获得焦点事件。这样可以省去逐个写控件的焦点事件。在此例中由于控件名称有一定的规律性,因此加载事件可以写的比较简单。如果控件的名称没有规律性,则需要在加载事件中,加入对控件名称筛选的判断语句。

点击下载此附件

 

Private Sub Form_Load()
Dim ctls As Controls
Dim ctl As Control
Set ctls = Me.Form.Controls
For Each ctl In ctls
    If Asc(ctl.Name) >= Asc("A") And Asc(ctl.Name) <= Asc("F") Then
        ctl.OnGotFocus = "=AllOnGotFocus('" & ctl.Name & "')"
    End If
Next ctl
End Sub

Function AllOnGotFocus(ctlName As String)
Dim ctls As Controls
Dim ctl As Control
Dim S As Single
Set ctls = Me.Form.Controls
For Each ctl In ctls
    If Asc(ctl.Name) >= Asc("A") And Asc(ctl.Name) <= Asc("F") Then
        If ctl.Name <> ctlName Then
            S = S + Nz(ctl.Value, 0)
        End If
     End If
Next ctl
S = 10000 - S
ctls(ctlName).ValidationRule = "<" & S
End Function

 


Access软件网交流QQ群(群号:198465573)
 
 相关文章
创建Excel数据有效性的动态数据源  【纵云梯  2012/8/21】
VB程序中用ADO对象动态创建数据库和表  【ihcn  2012/8/25】
动态设置交叉报表  【薛武元  2012/9/17】
组合动态图表  【收藏示例  2012/9/20】
网络动态管理系统(链接网站)  【lmqlt  2013/3/15】
常见问答
技术分类
相关资源
文章搜索
关于作者

煮江品茶

文章分类

文章存档

友情链接