2016-11-22 8 views
0

Я несколько недель бил головой об этом, предлагал google каждую перестановку вопроса, о котором я могу думать, и до сих пор не получил нигде, поэтому любая помощь была бы действительно оценили.MS Access 2010 входная дата один раз для нескольких вспомогательных отчетов

ЧТО Я НУЖДАЮ: Мне нужно создать отчет, который выводит резюме наших рефералов из базы данных. У меня есть два доклада, в которых используются следующие запросы в качестве источника записи:

SELECT referrals.origin_country, Count(*) AS ['number'] 
FROM referrals 
WHERE (((referrals.referral_date) Between [Enter Start Date] And [Enter End Date:])) 
GROUP BY referrals.origin_country; 

И

SELECT referrals.first_language, Count(*) AS ['number'] 
FROM referrals 
WHERE (((referrals.referral_date) Between [Enter Start Date:] And [Enter End Date:])) 
GROUP BY referrals.first_language; 

Запросы почти идентичны, и диапазон дат является одинаковым для каждого из них. Проблема заключается в том, что когда я создаю отчет, который использует эти два отчета в качестве подписок, я должен дважды вводить диапазон дат для вложенных отчетов (один раз для Subreport страны происхождения и один раз для Subreport для первого языка). My Access навыки не столь значительным, как хотелось бы, и мне интересно, если кто-нибудь может сказать мне, как убедиться, что пользователь имеет только ввести диапазон дат один раз? Я попытался

  • Использование VBA для создания переменная onLoad, но потом не могла решить, как использовать эту переменную в запросе источника записи ...
  • Использование VBA для создания функции, которая устанавливает переменную onLoad, но затем не могла решить, как использовать е unction in my Record Исходный запрос ...

Любые предложения были бы весьма признательны!

+1

Вместо [ввести дату], используйте небольшую форму. Затем у вас будут формы! SmallForm! StartDate и т. Д. Обратите внимание: если вы используете форму с VBA, вы должны отформатировать дату на год, месяц, день. – Fionnuala

+1

Можете ли вы сохранить значение даты в поле отчета, а затем просто обратиться к этому полю в своем запросе? то есть ваши поля отчета будут равны параметрам start/end, а затем ваши запросы будут ссылаться на это поле. '... между отчетами! [Подчиненный исходный текст]! StartDate и отчеты! [Subreport для первого языка]! EndDate' В противном случае решение малой формы - это путь. – geeFlo

+0

Итак, просто для того, чтобы уточнить, введите форму с полями ввода, чтобы пользователь мог ввести дату начала и окончания ввода, а затем вызвать их в исходных запросах Subreport следующим образом: 'SELECT referrals.first_language, Count (*) AS ['number '] От рефералов WHERE (((referrals.referral_date) Между [Отчеты]! [Подчиненный исходный текст]! [StartDate] И [Отчеты]! [Подтверждение первого языка]! [EndDate])) GROUP BY referrals.first_language ; ' Спасибо за совет! –

ответ

0

Создайте форму с полями для даты начала и окончания и кнопкой на ней, которая запускает вашу основную форму. Используйте мастер «Встроенный макрос», чтобы открыть выбранный отчет по щелчку.

Затем используйте [Формы] [FORM NAME] [FIELD NAME] в запросе, чтобы получить доступ к дате, например:!

SELECT referrals.origin_country, Count(*) AS ['number'] 
FROM referrals 
WHERE (((referrals.referral_date) Between [Forms]![EAL Referral Search Form]![dat_termly_report_start] And [Forms]![EAL Referral Search Form]![dat_termly_report_end])) 
GROUP BY referrals.origin_country; 

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

  • Нет связанных вопросов^_^