Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-窗体/数据页

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

时 间:2010-10-22 16:32:39
作 者:todaynew   ID:10802  城市:武汉
摘 要:动态控制有效性规则
正 文:

  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交流群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助