2011-07-21 2 views
1

Я разрабатываю отчет доступа на основе запроса, который имеет диапазон дат в качестве параметра, как этогопараметров печати в запросе параметров доступа

Between [Enter Start Date (mm/dd/yyyy)] And [Enter End Date (mm/dd/yyyy)] 

Как включить введенные значения для даты начала и дату окончания в отчете?

Заранее спасибо.

GRB

+1

Как вы отправляете параметры в отчет? Из формы? – Taryn

ответ

0

Вы должны выбрать входные значения в виде столбцов в запросе, используя точные имена, как и в п Where.

Ваш запрос будет, вероятно, искать что-то вроде этого:

select 
    Column1, 
    Column2, 
    DateColumn 
from 
    MyTable 
where 
    DateColumn between [Enter Start Date (mm/dd/yyyy)] 
    and [Enter End Date (mm/dd/yyyy)] 

Чтобы включить входные значения в запросе, вы должны изменить запрос, как это:

select 
    Column1, 
    Column2, 
    DateColumn, 
    [Enter Start Date (mm/dd/yyyy)] as StartDate, 
    [Enter End Date (mm/dd/yyyy)] as EndDate 
from 
    MyTable 
where 
    DateColumn between [Enter Start Date (mm/dd/yyyy)] 
    and [Enter End Date (mm/dd/yyyy)] 

Вы можете использовать любой псевдоним вы хотите использовать входные значения (я использовал StartDate и EndDate), если фактические названия колонок ([Enter Start Date (mm/dd/yyyy)] и [Enter End Date (mm/dd/yyyy)]) равны точно.

Конечно, это означает, что запрос будет содержать входные значения в каждой строке, но вам не нужно показывать их в каждой строке отчета.
Просто поместите поля в StartDate и EndDate в заголовок или в нижний колонтитул отчета, и значения будут отображаться в отчете только один раз.

+0

Параметры также должны быть определены явно до начала инструкции SELECT. –

+0

Спасибо, Кристиан, я в настоящее время использую ваш подход, и он работает очень хорошо. Еще раз спасибо за ваш своевременный ответ. – GRB

0

DoCmd.OpenReport имеет некоторые дополнительные параметры для фильтра, предложение where и, самое главное, OpenArgs. Во время события загрузки отчета вы можете захватить эти аргументы, чтобы настроить источник данных для своего отчета (EG: диапазон для выбора) и установить значение ярлыков в отчете для ввода, предоставленного до открытия отчета.

http://msdn.microsoft.com/en-us/library/bb238032%28v=office.12%29.aspx обеспечивает пересмотр этой функции.

Я представляю форму, в которой пользователь выбирает диапазон дат и нажимает OK. Отчет вызывается для открытия через событие нажатия кнопки, а диапазон дат (после подтверждения с этого конца) передается через OpenArgs.

Кроме того, вы можете просто использовать перегрузки, чтобы установить диапазон дат в параметрах where/filter и передать полный диапазон дат в OpenArgs, например «1 января - 31 января», и назначить его Label.Text для в отчете

+2

Чтобы сделать это более явным образом, разве вы не предполагаете, что в отчете нет параметров, связанных с проводником в источнике данных? Если так, я определенно соглашусь. –

+0

Да, именно это :) – Mohgeroth

+0

Thank you Mohgeroth, – GRB

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