ник: Дядя Федор
Это круто, но медленно
Вариант 2 - 3142
Вариант Osmor - 13723
На табл. из 2000 записей
Дело в том, что мне нужна функция, которая исп. в запросе, а не единичный вызов.
Функция от Osmor получилась такая
Public Function Fworkdayq(d As Date) As Date
Dim strsql As String
Dim rst As DAO.Recordset
strsql = _
"SELECT top 1 DataTabCAl FROM TblTabCal WHERE Year([DataTabCal]) = Year([d]) And BlnDay = True And Month([DataTabCal]) = Month([d]) " & _
"ORDER BY 31*(([DataTabCAl]-CDate([d]))>0)-Abs([DataTabCAl]-CDate([d])) DESC;"
strsql = Replace(strsql, "[d]", Format$(d, "\#mm\/dd\/yyyy\#"))
Set rst = CurrentDb.OpenRecordset(strsql)
Fworkdayq = rst.Fields(0)
Set rst = Nothing
End Function
|