gpt4 book ai didi

sql - Access 查询中的错误处理 #Error

转载 作者:行者123 更新时间:2023-12-03 20:22:48 25 4
gpt4 key购买 nike

我正在 Access 中处理出勤表,其中有 InTimeOutTime .这些字段是日期/时间字段。
有些记录只包含时间,如 11:40:00 ,有些包含日期和时间,如 21-07-2015 11:45:00 .因此使用了下面的代码来获得工作时间。

HrsPresent: Round(DateDiff("n",TimeValue(TimeSerial(Hour([TimeIn]),Minute([TimeIn]),Second([TimeIn]))),TimeValue(TimeSerial(Hour([TimeOut]),Minute([TimeOut]),Second([TimeOut]))))/60,2)

使用上面的代码,在查询的列中给出正确的工作小时数,但如果任何字段为空,我得到 #error结果。

我试过使用 Nz , IsError , IsNumeric但一切都是徒劳的。
  • 那是什么,我做错了吗?
  • 是否有其他方式获得工作时间?
  • 最佳答案

    在执行计算之前,您基本上只需要确保两个所需的字段都不为空。您可以使用两个 IIF 来做到这一点。声明。如果一个字段为空,那么您只需分配一个默认值或按照您想要的方式处理它。

    在我的示例中,默认值为零,我必须警告您,尽管这是徒手完成的,而且我对我的括号正确排列并不十分有信心。也很抱歉,这一切都在一条线上,我想不出一种合乎逻辑的方法来分解它。

    HrsPresent: IIF(Nz([TimeIn],"") = "", 0, IIF(Nz([TimeOut],"") = "", 0, Round(DateDiff("n",TimeValue(TimeSerial(Hour([TimeIn]),Minute([TimeIn]),Second([TimeIn]))),TimeValue(TimeSerial(Hour([TimeOut]),Minute([TimeOut]),Second([TimeOut]))))/60,2)))

    更多信息 IIF您可以使用的语句 Access 这里: http://www.techonthenet.com/access/functions/advanced/iif.php

    关于sql - Access 查询中的错误处理 #Error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31190616/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com