У меня нет собственного "синтаксиса сценария" для моего приложения. Он предназначен для создания простых отчетов из базы данных Microsoft Access с использованием JET. Вот простой пример:
REQUIRES "Min number of away talks:" AS $iMinNumAwayTalks
LOOP FROM "Home Talks" NODATERANGE WHERE "Last Given" ISMOREOREQUAL "$Today" SORTBY "Last Given"
SHORTDATE_FIELD "Last Given"
TAB =5>
TEXT "Week: "
VARIABLE_FIELD "Last Given" "$iWeekNo#CUSTOMDATE[%W]"
TEXT "$iWeekNo"
$iAwayTalkCount = 0
LOOP FROM "Away Talks" NODATERANGE WHERE "Talk Date" ISMOREOREQUAL "$Today" SORTBY "Talk Date"
VARIABLE_FIELD "Talk Date" "$iAwayWeekNo#CUSTOMDATE[%W]"
IF "$iAwayWeekNo" IS "$iWeekNo"
$iAwayTalkCount = $iAwayTalkCount + 1
END_IF
END_LOOP
TAB =10>
TEXT "# Away: "
TEXT "$iAwayTalkCount"
TAB =15>
TEXT "$iMinNumAwayTalks"
TEXT " Exceed? "
IF "$iAwayTalkCount" ISMORE "$iMinNumAwayTalks"
TEXT "Yes"
END_IF
IF "$iAwayTalkCount" ISLESSOREQUAL "$iMinNumAwayTalks"
TEXT "No"
END_IF
EOL
END_LOOP
По сути, это две таблицы, чтобы определить, сколько записей имеют одинаковые Номер недели (начало Понедельник ) для указанных полей.
Мой вопрос относится к этому запросу, который я использовал:
LOOP FROM "Away Talks" NODATERANGE WHERE "Talk Date" ISMOREOREQUAL "$Today" SORTBY "Talk Date"
Недостатком этого запроса является то, что он выбирает все записи, превышающие сегодняшний, и затем я должен изучить каждую запись, чтобы узнать, имеет ли поле «Дата разговора» тот же номер недели.
Теперь мой синтаксис сценария также поддерживает циклы raw SQL. Так можно ли с помощью необработанного SQL-запроса Microsoft Access JET:
Выбрать все Выездные переговоры , где Дата разговора - Неделя X (где Неделя начинается с недели Понедельник )?
Я пытался выполнить ручной тест в Access 2016 с критериями:
SELECT [Away Talks].[Talk Date]
FROM [Away Talks]
WHERE ((DatePart('ww',[Talk Date],'vbMonday')=45));
Но у меня есть ошибка:
Что я делаю не так?