MS Access 计算字段更改为“#Error”
Posted
技术标签:
【中文标题】MS Access 计算字段更改为“#Error”【英文标题】:MS Access calculated fields changing to "#Error" 【发布时间】:2015-06-04 13:01:45 【问题描述】:我目前有一个表单,它通过查询运行,并且一切正常,或者至少它出现了。我有三个有问题的字段:一个 ID 字段、一个客户名称字段和一个年龄字段。年龄字段实际上是客户在签署报价单时的年龄,因此它是使用报价单的日期和客户的出生日期计算得出的字段。
第一眼就可以完美地计算年龄。 ID 和 name 字段存在问题的原因是,当我双击它们时,它会打开一个表单,它又可以正常工作。问题是当我退出这些表单并返回到原始表单时。
我所在记录的年龄字段更改为“#Error”,而不是显示的内容。如果我单击表单中的不同记录,则该年龄字段也会更改为“#Error”。这似乎每次都会发生,我不知道为什么。
有没有人解决过类似的问题或有解决方法的想法?
提前致谢!
更新:我将其更改为打开报告而不是表单,但问题仍然存在。
有问题的计算:Int(([effectiveDate]-[dateOfBirth])/365.25)
【问题讨论】:
当您说计算字段时,您的意思是您的表单或报表上有计算字段吗?还是表格中的计算字段?你能发布实际的计算吗? 没有任何代码让我们猜测...... 该字段在查询中计算。这是代码。抱歉没有提供足够的信息! Int(([effectiveDate]-[dateOfBirth])/365.25) 听起来你的子表单/第二表单中的某些东西正在破坏你的主表单/第一个表单的结果。您可以同时查看两个表单并单步执行第二个表单上的代码以查看哪个步骤触发了更改? 【参考方案1】:尝试这样计算年龄:
DateDiff("yyyy", [dateOfBirth], [effectiveDate]) + ([effectiveDate] < DateSerial(Year([effectiveDate]), Month([dateOfBirth]), Day([dateOfBirth])))
使用此方法会计算您的出生日期与生效日期之间的年差,同时考虑到此人的生日可能在该日期之前还没有过去。
基本上,第一部分获取年份,第二部分要么加 0 表示假,要么加 -1 表示真,如果生效日期小于生效年份的生日(意味着它还没有过去)
【讨论】:
那行不通。它实际上返回了所有错误,因为与其他方法不同的是,它从未显示正确的数据:/以上是关于MS Access 计算字段更改为“#Error”的主要内容,如果未能解决你的问题,请参考以下文章
MS Access 将链接表更改为 AWS MySQL Db 会减慢表单/报告的速度