我正在编辑数据库模板,以便跟踪同一个人的不同年龄的患者测试差异。
我改编了#34;学生数据库"模板以利用已创建的表单和宏。
我有一张患者表,其中存储了初次入院时收集的所有数据:姓名,出生日期(DOB)等,以及第二张表,用于跟踪访问中的测试分数,包括:姓名,访问日期(DOV)和得分信息。这些是配对的,因此我可以从一位患者中提取信息,并在访问中查看他们的分数。
我现在需要做的是创建一个查询,在那里我可以计算他们参加测试时的年龄。
为此,我使用了表达式构建器并输入了Calculated:([Visit Date]-[DOB])/365
仅当我在患者访问表的新栏中重新输入DOB时,这适用于计算年龄
我已尝试使用DateDiff
并使用[Patient]![DOB]
从另一个表中调用数据,但我得到了相同的错误。
(Calculated age: ([Patient Visit]![Visit Date]-[Patients]![DOB])/365)
Calculated age: (DateDiff("yyyy",[Patients]![DOB],[Patient Visit]![Visit Date]))
两者都吐出错误:Enter Parameter Value 'Patients!DOB'
如果我输入日期,则所有数据点和患者计算得到的DOB与我输入的相同。
如何让Access知道我需要它来计算同一患者DOB的就诊日期?
?:我是否需要为患者ID创建一个与DOB匹配的查找表,然后使用该字段进行计算?
如果我能修复的表达式有问题,那将是理想的。如果不是,那么计算年龄的最佳方法是什么,而不必多次手动输入患者DOB(一次初次摄取,每次就诊时再次)。
提前谢谢你。
答案 0 :(得分:0)
我找到了解决方案!
我使用'查询'错了。而不是试图强制它识别另一个表,我需要在创建查询时将表添加到查询中。 即: 1_选择'查询设计' 2_选择了包含所需信息的表格(通过表格输入) 3_使用`
Patient Name: IIf(IsNull([Last Name]),IIf(IsNull([First Name]),[First Name]),IIf(IsNull([First Name]),[Last Name],[First Name] & " " & [Last Name]))
` 对于第一个字段和
Patient Visit.*
表示第二个字段。通过添加“患者访问。*”,查询将把表中的所有字段添加到查询中。
第三个字段我从Patients表中选择了DOB(它可供选择,因为我最初在布局中选择了两个表)。
我现在可以使用原来的
了 Calculated:([Visit Date]-[DOB])/365
年龄计算没有任何错误。我在属性>下完成了格式化格式>固定。
的Wooo!