Ms access 在ms access查询中查找在上午8点到下午5点工作日内的运行时间

Ms access 在ms access查询中查找在上午8点到下午5点工作日内的运行时间,ms-access,vba,Ms Access,Vba,我正在使用这个功能 Public Function ElapsedTime(Start As Date, Finish As Date) As String 'Calculates elapsed time between 2 date/times and 'parses it out into Hours-Minutes-Seconds in HH:MM:SS format Dim HoursLapsed, SecondsLeft, MinutesLapsed

我正在使用这个功能

Public Function ElapsedTime(Start As Date, Finish As Date) As String
    'Calculates elapsed time between 2 date/times and
    'parses it out into Hours-Minutes-Seconds in HH:MM:SS format
    
    Dim HoursLapsed, SecondsLeft, MinutesLapsed, SecondsLapsed, TotalSeconds As Long

    TotalSeconds = DateDiff("s", Start, Finish)
    HoursLapsed = Int(TotalSeconds / 3600)
    SecondsLeft = TotalSeconds Mod 3600
    MinutesLapsed = Int(SecondsLeft / 60)
    SecondsLapsed = SecondsLeft Mod 60

    ElapsedTime = Format(HoursLapsed, "00") & ":" & Format(MinutesLapsed, "00") & ":" & Format(SecondsLapsed, "00")
End Function
这是我的问题

SELECT
    ElapsedTime([Date_Faxed],[Date_Found]) AS Duration, 
    dbo_yard_request.Salesman, 
    dbo_yard_request.Make, 
    dbo_yard_request.Model, 
    dbo_yard_request.ID, 
    dbo_yard_request.Found2
FROM 
    dbo_yard_request
WHERE 
    (((dbo_yard_request.Found2)=True));
它运行良好,除了我需要在下午5点考虑一天的结束,在上午8点考虑新的一天的开始

比如说

传真日期=2015年1月22日下午4:45:22

发现日期=2015年1月23日上午8:55:13


经过的时间应该是1小时10分钟,而不是16小时

您是否可以执行类似于
TotalDays*15
的操作,以获得每个时间段要减去的小时数?(我只是在想一个快速解决办法)如果两天相隔怎么办?或者是在周末?还是工作时间以外?