access用身份证号码计算年龄 20

我不是IT专业的,我就是个有点基础的二把刀。我有个员工信息表,里面有录入身份证号码,然后我想在[员工信息表]增加年龄字段,所以我想请教大神,用“查询更新”还是在“[员工信... 我不是IT专业的,我就是个有点基础的二把刀。我有个员工信息表,里面有录入身份证号码,然后我想在[员工信息表]增加年龄字段,所以我想请教大神,用“查询更新”还是在“[员工信息表].[年龄]”用计算的方法,求优劣和具体办法。
因为我不会VBA,所以求具体代码,请详细叙述!
展开
 我来答
游戏放松小助手
高粉答主

2020-03-30 · 我是游戏小达人,乐于助人
游戏放松小助手
采纳数:32 获赞数:76897

向TA提问 私信TA
展开全部

1、首先,打开access创建空白数据库,在数据库中建表并插入数据。

2、选择菜单栏中的“创建”,选择“查询设计”按钮。弹出“显示表”窗口。

3、选中“表1”,点击“添加”按钮。

3、在查询设计网格第一列的字段行点击鼠标右键,选择“生成器”选项,打开<表达式生成器>对话框,在对话框中输入表达式“m_age: Max([年龄])-Min([年龄])”,点击“确定”按钮。

4、单击<查询工具>选项卡中<结果>命令组的“数据表视图”命令查看查询结果。

5、最终查询结果如下图。

刺友互
高粉答主

2020-03-30 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:73万
展开全部

1、首先,打开需要的Excel表格

2、在年龄输入单元格内直接输入公式“=YEAR(TODAY())-MID(A2,7,4)”。

3、按下回车键,年龄即可得出。

4、然后鼠标选择刚刚得出结果的单元格,鼠标箭头移动到单元格右下角,直到箭头变为十字符号。

5、鼠标左键向下拉动,之后的年龄就都出来了。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tjrmgs
推荐于2017-12-16 · TA获得超过5765个赞
知道大有可为答主
回答量:2161
采纳率:94%
帮助的人:1042万
展开全部
如果都是18位身份证号码,这样写:
SELECT *,
datediff("yyyy",cdate(mid(身份证号码,7,4) & "-" & mid(身份证号码,11,2) & "-" & mid(身份证号码,13,2)),date()) as 年龄
from 员工信息表;

18位和15位混用,则还要复杂些:
SELECT *,
iif(len(身份证号码)=18,datediff("yyyy",cdate(mid(身份证号码,7,4) & "-" & mid(身份证号码,11,2) & "-" & mid(身份证号码,13,2)),date()),
datediff("yyyy",cdate(mid(身份证号码,7,2) & "-" & mid(身份证号码,9,2) & "-" & mid(身份证号码,11,2)),date()))
AS 年龄 FROM 员工信息表;

注意:身份证号码必须正确才能查出准确年龄
追问
身份证号码肯定是18位的,所以就可以不用if、len语句判断位数了,我觉着是不是用: 类似year(now())-mid(身份证号码,7,4)这样的语句编写啊,能简化些吗?求语句的解释
追答
因为要考虑闰年闰月问题,用datediff 函数求年龄可以精确到一天不差,单用year计算达不到这个精度。例如年底出生的或当年出生的单按年份计算年龄误差就会比较大,所以不建议这样简化。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式