Как сделать так, чтобы запрос в Access распознавал tempvar как допустимое поле (параметр)
Я работаю, чтобы настроить макрос в Access, который будет автоматически запускать запросы на добавление. Запросы добавят новую строку в конкретную таблицу с данными для новой строки на основе даты (окончания недели). В настоящее время у меня есть, что каждый запрос запрашивает дату окончания запрашиваемых данных. Я не хочу запускать макрос, чтобы подсказка отображалась несколько раз для ввода одной и той же даты.
Из того, что я обнаружил на других досках, я смог бы добиться этого, определив tempvar с помощью действия SetTempVar в макросе, когда всплывающая переменная извлекается из поля ввода. У меня есть результат ввода поля в формате даты. Остальная часть макроса настроена на выполнение действий OpenQuery для каждого из запросов. В самих запросах я заменил точки, которые я использовал для ранее запрашиваемых параметров ([Enter End Date]), на то, что должно быть ссылкой на tempvar ([TempVars]![EndDate]).
Код для макроса:
SetTempVar
Name: EndDate
Expression: CDate(InputBox("Enter the end date of the week being added:","End Date","Enter Date"))
OpenQuery
Query Name: qryBizDByPersonAppend
View: Datasheet
Date Mode: Edit
OpenQuery
Query Name: qryBizDByTypeAppend
View: Datasheet
Date Mode: Edit
OpenQuery
Query Name: qryBizDByWhereAppend
View: Datasheet
Date Mode: Edit
Code for one of the queries:
TRANSFORM Count(tblCombined.Calendar) AS CountOfCalendar
SELECT [TempVars]![EndDate] AS [End]
FROM tblCombined
WHERE (((tblCombined.StartTime) Between #1/1/2019# And #12/31/2019#) AND ((tblCombined.Type) In ("Advisor Meeting","Advisor Training","Employee Group Presentation","Employer HR Meeting","Client Group Presentation","Client Group Webinar","Employee Group Presentation","Employee Group Webinar","Benefit Fair","Added Time")) AND ((tblCombined.Canceled) Is Null) AND ((tblCombined.DateScheduled)<=[TempVars]![EndDate]))
GROUP BY [TempVars]![EndDate]
PIVOT tblCombined.Calendar;
Когда я запускаю макрос, я получаю сообщение об ошибке, в котором говорится, что [TempVars]! [EndDate] не распознается как допустимое поле или выражение, когда он попадает в действия OpenQuery. Раньше он работал нормально с индивидуально запрошенными параметрами.
1 ответ
Причина, по которой запрос не распознал временную переменную, заключалась в том, что он нигде не был определен (в реальном поле или как "параметр"). Я смог заставить временную переменную работать как параметр, указав ее в каждом запросе. Снимок экрана temp var, определенного в запросе как параметр.