Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共7 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[求助如何校验登记时的年龄的准确性?(已解决)

1楼
pc005637 发表于:2011/8/6 15:39:00
资料输入时,部分人是有身份证.部分人是没有身份证的. 如果有身份证号码的话.在输入登记日期时校验一下.登记时年龄的准确性.可以的话也最好校验下性别的准确性. 谢谢.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:校验登记时年龄.table

[此贴子已经被作者于2011-8-7 15:50:43编辑过]
2楼
druse 发表于:2011/8/6 17:57:00

http://www.foxtable.net/help/topics/1587.htm

看看这个帮助,应该对你有用

[此贴子已经被作者于2011-8-6 17:56:52编辑过]
3楼
pc005637 发表于:2011/8/6 19:42:00
只是校验部分不会做. 请高手指点.
[此贴子已经被作者于2011-8-6 23:07:18编辑过]
4楼
mr725 发表于:2011/8/6 23:33:00

年龄:e.DataRow("登记时年龄") = e.DataRow("登记日期").Year - e.DataRow("出生日期").Year 用不着再效验了;

性别:e.DataRow("性别") = ReadSex(e.DataRow("身份证号码"))   也用不着再效验···

5楼
pc005637 发表于:2011/8/7 0:17:00
上面的年龄比较只是年份比较,我要求是精确到日的。比如:生日是2010年5月1日 要到2011年5月1日才是1岁。2011年4月1日还是0岁11个月。 一楼说明了。有些资料是没身份证号码的(就不能生成“出生日期”)。如果用公式将身份证号码的内容转为年龄和性别,没号码的年龄,性别资料会出错的。 在输入资料时,做个校验,防止出错。
[此贴子已经被作者于2011-8-7 0:26:04编辑过]
6楼
狐狸爸爸 发表于:2011/8/7 7:51:00

DataColChanging使用刚刚输入的值,必须使用e.NewValue表示,如果使用e.DataRow("列名"),是输入前的值,就是旧值。

 

正确代码:

 

If e.DataCol.Name = "身份证号码" Then
        If e.NewValue IsNot Nothing Then
            Dim d As Date = ReadBirthDay(e.NewValue)
            Dim s As String = ReadSex(e.NewValue)
            If s = "" OrElse d < #1/1/1900# Then
                e.Cancel = True '取消输入
                MessageBox.Show("身份证无效输入")
            End If
        End If
End If
If e.DataCol.Name = "登记日期" Then
    If e.DataRow.IsNull("出生日期") = True OrElse e.NewValue Is Nothing Then
        Return
    Else
        Dim n As Integer = e.NewValue.Year - e.DataRow("出生日期").Year
        If e.DataRow("出生日期").AddMonths(n*12) > e.NewValue Then
            n = n -1
        End If
        If e.DataRow("登记时年龄") <> n Then
            e.Cancel = True
            MessageBox.Show("年龄与身份证不符!")
        End If
    End If
End If

 

建议仔细看看这两个事件的差别:

http://www.foxtable.net/help/topics/0624.htm

http://www.foxtable.net/help/topics/0625.htm

 

7楼
pc005637 发表于:2011/8/7 15:50:00
谢谢狐爸的帮助.完美解决.
共7 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .04297 s, 3 queries.