Rss & SiteMap

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

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

标题:筛选条件问题

1楼
lrh9537 发表于:2024/2/28 9:48:00
如下筛选条件:监测对象家中有义务教育阶段适龄儿童少年失学辍学(6(包含)-15岁(包含)无原因
怎么能简化些?如下代码还得在表上增加出生日期列和年龄列,想不增加这两列,通过一个函数从身份证号获取年龄

If e.DataCol.Name = "身份证号码" Then '如果更改的是身份证号码列

    If e.DataRow.IsNull("身份证号码") Then '身份证号码是否为空
        e.
DataRow("出生日期") = Nothing '如果为空,则清除出生日期
   
Else
   
    '否则从身份证号码列中提取出生日期
        e.
DataRow("出生日期") = ReadBirthday(e.DataRow("身份证号码"))
    End
If
End
If


If e.DataCol.Name = "出生日期" Then
    If
e.DataRow.IsNull("出生日期") Then '如果没有输入出生日期
       
e.DataRow("年龄") = Nothing '则清空年龄
    Else
   
    '否则计算年龄
       
e.DataRow("年龄") = Date.Today.Year - e.DataRow("出生日期").Year

    End If
End If


Filter = "易返贫致贫户监测对象类型 = '突发严重困难户' Or '边缘易致贫户' Or '脱贫不稳定户'  And 年龄 > 6 And 年龄< 15 在校生状况 not(小学 or 七年级 or 八年级 or 九年级) And 失学辍学原因 Is null"


2楼
有点蓝 发表于:2024/2/28 9:54:00
表达式没有办法直接取年龄,只能增加辅助列。

Filter = "易返贫致贫户监测对象类型 in ('突发严重困难户','边缘易致贫户','脱贫不稳定户')  And 年龄 > 6 And 年龄< 15 and  在校生状况 not in('小学' ,'七年级','八年级','九年级') And 失学辍学原因 Is null"
3楼
lrh9537 发表于:2024/2/28 15:51:00
用代码增加出生日期列和年龄列怎么写,把这两段代码怎么合并到一起?
4楼
有点蓝 发表于:2024/2/28 16:11:00
If e.DataCol.Name = "身份证号码" Then '如果更改的是身份证号码列

    If e.DataRow.IsNull("身份证号码"Then '身份证号码是否为空
        e.
DataRow("出生日期") = Nothing '如果为空,则清除出生日期

e.DataRow("年龄") = Nothing '则清空年龄
    
Else
    
    '否则从身份证号码列中提取出生日期
        e.
DataRow("出生日期") = ReadBirthday(e.DataRow("身份证号码"))

e.DataRow("年龄") = Date.Today.Year - e.DataRow("出生日期").Year
    End
 If
End
 
If


5楼
lrh9537 发表于:2024/2/28 16:31:00
写在DataColChanged事件中可以,想把代码写在按钮Click上怎么改?
6楼
有点蓝 发表于:2024/2/28 16:47:00
dim r as row = tables("某表").current
if r isnot nothing then

    If r.IsNull("身份证号码"Then '身份证号码是否为空
        r
("出生日期") = Nothing '如果为空,则清除出生日期

r("年龄") = Nothing '则清空年龄
    
Else
    
    '否则从身份证号码列中提取出生日期
        r
("出生日期") = ReadBirthday(r("身份证号码"))

r("年龄") = Date.Today.Year - r("出生日期").Year
    End
 If

end if
共6 条记录, 每页显示 10 条, 页签: [1]

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

Powered By Dvbbs Version 8.3.0
Processed in .02930 s, 2 queries.