检查现在的截止日期

时间:2017-07-11 21:47:48

标签: vba ms-access access-vba ms-access-2016

我有一个包含患者相关信息的数据库,必须每12小时更新一次。执行更新有两个班次(天和夜),每个班次必须每个班次每班一次执行任务。我的目标是让任何在轮班期间查看数据库的用户都能够知道该任务是否已经对该患者进行过。

由于每个班次的每个班次都要执行一次任务,因此白班(上午6:30 - 下午6:30)的用户需要能够查看子表格并查看任务是否完成的指示所以他们知道这样做。在下午6:30,应该重置指示器,指示夜班时尚未完成任务,当然,一旦任务完成,指示器将被解决。

** For example: The current date/time is 7/12/2017 14:00 

Patient                Last timestamp           Due
Patient A             7/12/2017 03:40          True
Patient B             7/12/2017 10:40          False
Patient c             7/12/2017 11:40          False

Then, when the next shift arrives at 6:30PM, those same patients will reset

Patient                Last timestamp           Due
Patient A             7/12/2017 03:40          True
Patient B             7/12/2017 10:40          True
Patient c             7/12/2017 11:40          True

** During the night, as they perform the task

Patient                Last timestamp           Due
Patient A             7/12/2017 21:20          False
Patient B             7/12/2017 23:40          False
Patient c             7/13/2017 03:58          False

我认为提供每位患者最新时间戳的查询可以帮助我确定这个问题的部分答案。

SELECT [Pt-VAP_1].IntubationIDNumber, Max([Pt-VAP_1].VapDateTimeStamp) AS 
MaxOfVapDateTimeStamp, Last([Pt-VAP_1].VapIDNumber) AS LastOfVapIDNumber
FROM [Pt-VAP] INNER JOIN [Pt-VAP] AS [Pt-VAP_1] ON [Pt-VAP].VapIDNumber = 
[Pt-VAP_1].VapIDNumber
GROUP BY [Pt-VAP_1].IntubationIDNumber;

我遇到的问题是找到一种方法在晚上7点到早上7点之间正确地给出这个答案。有没有办法做到这一点?

希望我对该问题的编辑提供了一些帮助我解决方案所需的更多信息。如果需要,我将非常乐意更新这篇文章。我也使用以下Dlookup公式来获取值,以提供我认为需要的一些信息。

非常感谢任何帮助。

vapCK = DLookup("[VapCharted]", "[03-LastVapCharting]", "[IntubationIDNumber]=" & [IntIDNo])
vapDTStamp = DLookup("[MaxOfVapDateTimeStamp]", "[03-MaxDateVap]", "[IntubationIDNumber]=" & [IntIDNo])
vapLastRCP = DLookup("[Last RCP]", "[03-LastVapCharting]", "[IntubationIDNumber]=" & [IntIDNo])

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你可以尝试这样的事情。

获取上次更新的日期时间,通过将12小时添加到上次更新来计算下一次更新,并将其与Now()进行比较。

Public Function IsUpdateRequired() As Boolean

    Dim lastUpdatedOn As Date
        lastUpdatedOn = #7/11/2017 6:30:00 AM#  'DLookup("DateLastUpdated", "TableName")

    Dim nextUpdateOn As Date
        nextUpdateOn = DateAdd("h", 12, lastUpdatedOn)

    IsUpdateRequired = (nextUpdateOn <= Now())
End Function

以紧凑的形式:

Public Function IsUpdateRequired() As Boolean
    IsUpdateRequired = (DateAdd("h", 12, DLookup("DateLastUpdated", "TableName")) <= Now())
End Function