如何在 Microsoft Access 表单上计算年龄? [复制]

Posted

技术标签:

【中文标题】如何在 Microsoft Access 表单上计算年龄? [复制]【英文标题】:How to calculate age on a Microsoft Access form? [duplicate] 【发布时间】:2015-01-23 18:41:41 【问题描述】:

在我为医院的患者数据创建的 Microsoft Access 表单上,我想使用字段 DATE OF BIRTH 和字段 DATE OF FORM(当前日期)来计算三个字段

年龄(岁) 年龄(月)和 年龄(天)。

只给了两个日期就可以做到这一点吗?

【问题讨论】:

是的,有可能。不,我们不会为您完成所有工作。做一些研究。做一些尝试。回来就具体问题提出具体问题。 @KevenDenen:我希望是这样。不幸的是,太多的人愿意为了几个支持而出卖自己的灵魂。 【参考方案1】:

是的,这两个日期足以计算年龄。因此,您可以在 Age 文本框的 Expression builder 中使用 DateDiff 函数。

下面,我假设 Age(yr) 用年表示年龄,Age(mo) 用月表示年龄,Age(days) 用天表示年龄。

在 Age(yr) 文本框的控件源中使用:

=DateDiff("yyyy",[DateOfBirth],Date())

年龄(月):

=DateDiff("m",[DateOfBirth],Date())

年龄(天):

=DateDiff("d",[DateOfBirth],Date())

【讨论】:

这种方法可能会为“Year”和“Month”值产生不正确的结果,因为DateDiff() 函数的行为与您想象的不同。对于DateOfBirth=#2014-12-31#DateToday=#2015-01-01#,婴儿只有一天大,但DateDiff("yyyy",DateOfBirth,DateToday) 返回1(因为这两个日期在不同的年份)。 感谢 Gord,你的观点很好。因此,如果将等式除以 365,Age(days) DateDiff 公式可能是更准确的年龄函数。我们的婴儿示例将分别为 0.065 和 0.063 岁。最初,我将 Age(mos) 除以 12,Age(days) 除以 365,因为我们通常以年为单位来衡量 Age,但 KevenDenen 已将其删除。我不确定SO的规则。我确实希望 OP 能够回应并指出他/她的具体需求。 如果您认为您对问题的理解是他们想要所有三个人的年龄,请随时重新编辑这些内容。我假设当他们说他们想要以天为单位的年龄时,他们的意思是他们有多少天,而不是他们的年龄,以他们的年龄为单位计算。这就是回答这样一个蹩脚的问题的问题。 OP 没有发布足够的信息来获得一个体面的答案。

以上是关于如何在 Microsoft Access 表单上计算年龄? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将表单绑定到 Microsoft Access 中的 SQL 语句

如何在 Microsoft Access 中创建/更新具有复杂表关系的表单中的记录集

Microsoft Access 如何检索当前表单 ID 以进行打印

如何根据 Microsoft Access 中的组合框选择导航到表单

如何将 Microsoft Access 表单中的单个记录打印到报表中

如何在 Microsoft Access 中通过 VBA 设置 INSERT SQL 查询的参数值?