Экспорт в текст с использованием запроса доступа с параметрами - PullRequest
2 голосов
/ 29 мая 2009

Привет,

У меня есть запрос доступа, который использует встроенные параметры (например, [дата начала]), чтобы предложить пользователю ввести параметр даты при выполнении запроса.

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

Слишком мало параметров. Ожидаемый 2.

Это имеет смысл, так как в запросе есть два параметра [дата начала] и [дата окончания], причина ошибок в том, что мне никогда не предлагается указывать значение.

Если я экспортирую в Excel, все будет хорошо, только не в текстовые файлы.

Любые предложения о том, как обойти эту проблему или разрешить мне экспортировать запрос в текстовый файл?

Спасибо,

Brett

Пример запроса доступа:

SELECT PR_EARN.Emp_No, PR_EARN.Pay_Code, PR_EARN.Hours, PR_EARN.Rate, PR_EARN.Pay_Amt, PR_EARN.Pay_Date
FROM PR_EARN
WHERE (((PR_EARN.Pay_Date) Between [Start Date] And [End Date]));

Ответы [ 3 ]

2 голосов
/ 29 мая 2009

Еще пара методов:

  • В Microsoft есть * обходной путь KB269671 .
    . По сути, вы должны использовать промежуточный запрос со специальным синтаксисом.

  • Вы также можете изменить запрос на Создать таблицу и затем экспортировать его данные.

  • Использование и промежуточная форма невидимой таблицы данных, для которой RecordSource задано для запроса, а затем событие FormLoad экспортирует форму в текст и закрывает форму.
    Простое открытие формы предложит пользователю ввести параметры и затем автоматически сохранить их.

Ответ Роберта все еще может быть самым простым, хотя.

1 голос
/ 29 мая 2009

Создайте новую форму под названием Экспорт. Поместите два текстовых поля в форму и назовите их StartDate и EndDate. Сохраните форму. Измените свой запрос, чтобы прочитать следующее:

SELECT PR_EARN.Emp_No, PR_EARN.Pay_Code, PR_EARN.Hours, PR_EARN.Rate, PR_EARN.Pay_Amt, PR_EARN.Pay_Date
FROM PR_EARN
WHERE (((PR_EARN.Pay_Date) Between Forms!Export!StartDate And Forms!Export!EndDate));

Откройте форму, дважды щелкнув по ней. Заполните два поля даты и оставьте форму запущенной. Экспортируйте ваш запрос обычным способом.

0 голосов
/ 17 октября 2015

Мне удалось обойти это с помощью функции eval. Так что вместо:

Between [Forms]![Reporting Import and Export]![date_exportstart] And [Forms]![Reporting Import and Export]![date_exportend]

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

Between Eval("[Forms]![Reporting Import and Export]![date_exportstart]") And Eval("[Forms]![Reporting Import and Export]![date_exportend]")
...