ник: Lukas
О как, попробуй:
Public Function GetWorkDay(CurDay As Date) As Date
Const SQLDATE As String = "\#mm\/dd\/yyyy\#"
Dim strSQL As String
Dim strOnDay As String
strOnDay = Format$(CurDay, SQLDATE)
strSQL = "SELECT TOP 1 Q1.CurDay " _
& "FROM (" _
& "SELECT OnDay + Shift AS CurDay, Shift " _
& "FROM tblShift " _
& "WHERE Month(OnDay + Shift) = Month(OnDay)" _
& ") AS Q1 " _
& "LEFT JOIN tblTabCal ON Q1.CurDay = tblTabCal.DataTabCal " _
& "WHERE (Weekday(Q1.CurDay, 2) Between 1 And 5 AND tblTabCal.BlnDay Is Null) OR (tblTabCal.BlnDay) " _
& "ORDER BY Abs(Q1.Shift), Q1.Shift;"
strSQL = Replace(strSQL, "OnDay", strOnDay)
GetWorkDay = CurrentProject.Connection.Execute(strSQL)(0)
End Function
|
+доп табличка =>
Дата входного параметра просто откидывает.
Если не нужно, что бы откидывало, добавить в спец табличку 0.