Как ВЫБРАТЬ все записи, где дата события - выходные, и экспортировать в другую таблицу - PullRequest
0 голосов
/ 22 мая 2019

Я новичок в MS Access VBA. Я импортировал файл журнала в таблицу и хотел бы извлечь его в другую таблицу.1) все журналы / записи, где DATE_Field = Weekend.2) все журналы / записи, где DATE_Field - это день недели, а Time_Field - с 22:00 до 05:00

. Я пробовал Query и пытался преобразовать поле даты, используя «datename», но ошибка говорит, что с этой функцией не существует действительной функции.name

DoW: datename ([LogFile] .Date)

Я хотел бы извлечь все журналы, которые являются 1) все журналы / записи, где DATE_Field = Weekend.2) все журналы / записи, где DATE_Field - день недели, а Time_Field - с 22:00 до 05:00

Ответы [ 2 ]

1 голос
/ 22 мая 2019

Видимо доступ имеет функцию weekday ():

https://support.office.com/en-gb/article/weekday-function-05d360d7-2c3f-4691-9448-c96ea0351940

Я рекомендую использовать параметр, который фиксирует начало недели, чтобы избежать региональных различий, влияющих на ваш запрос

WHERE weekday(datefield, 1) IN (1,7)

Ваш запрос на будний день будет аналогичным;используйте NOT IN в сочетании с проверкой, что ваше поле времени равно <= '05: 00 'OR> = '22: 00', предполагая, что время - строка.Для правильной работы потребуется начальный ноль.Не забывайте использовать скобки при использовании ИЛИ.

WHERE ... NOT IN (1,7) ANd (timefield <= '05:00' OR timefield >= '22:00')
0 голосов
/ 22 мая 2019

Первое, что вы можете получить, отфильтровав день недели, в котором для второго аргумента установлено значение 2 для vbMonday :

Select * From YourTable
Where Weekday([DATE_Field], 2) > 5

Для второго задания:используйте расширенный критерий:

Select * From YourTable
Where 
    Weekday([DATE_Field], 2) <= 5
    And
    [TIME_Field] Not Between #05:00:00# And #22:00:00#

Значения даты / времени в Access заключены в октоторпы (#).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...