2009-07-21 2 views

ответ

1
monday = DateAdd("d", 1 - Weekday(Date, vbMonday), Date) 
0

Использование

DateAdd("d", Weekday(Date(), 3) * -1, Date()) 
+0

Не протестировали его, но я бы предположил, что это ... он просто попытался бы добавить 0 дней (0 * -1) –

+0

Когда вызывается в понедельник, он возвращает предыдущий понедельник. –

+0

Weekday (Date(), 3) возвращает 7 для понедельника –

0

Я знаю, что вы сказали, VBA, но вот как это можно сделать в Access движок базы данных SQL и работает «самостоятельная», т.е. не требующий доступ или VBA (конечно, логика могут быть переведены на VBA):

Неделя начала воскресенье: если запустить в воскресенье будет возвращать текущую дату:

SELECT DATEADD('WW', DATEDIFF('WW', #1990-01-07 00:00:00#, NOW()), #1990-01-07 00:00:00#) 

Начало недели воскресенье: если запустить в воскресенье вернется в предыдущее воскресенье:

SELECT DATEADD('D', (DATEDIFF('D', #1990-01-08 00:00:00#, NOW()) \ 7) * 7, #1990-01-07 00:00:00#) 

Подсказка: 1990-01-07 00:00:00 произвольная дата известно, воскресенье.

Смежные вопросы