2015-01-15 2 views
0

Я пытаюсь применить фильтр к столбцу [Billed] запроса, который является полем «Да/Нет», с помощью флажка в форме.

ЗДЕСЬ ОБРАТНАЯ СВЯЗЬ:
У меня есть таблица расписания (tblTimesheet), которая содержит информацию, такую ​​как [Дата], [Номер задания], [Сотрудник], [Часы], [Счет] и т. Д. Когда пришло время для выставления счета за конкретный номер задания, я создаю отчет для задания, а затем поставлю флажок в столбце [Billed] для каждой записи, включенной в счет-фактуру.

Я запросил tblTimesheet, а затем основал frmJobTime по этому запросу. Я поместил несвязанный текстовый блок в форму, чтобы отфильтровать отчет (который также основан на запросе). SO, критерии в разделе [Номер задания] в запросе выглядят следующим образом:
[Forms]! [FrmJobTime]! [TxtJobNum]
Это работает ОТЛИЧНО.

ЗДЕСЬ ФАКТИЧЕСКАЯ ПРОБЛЕМА:
Я хочу добавить подобный фильтр в столбец [Billed], добавив флажок в frmJobTime. В идеальном мире проверка поля будет означать, что в отчете отображаются только UNBILLED-записи для задания, а флажок, отмеченный флажком, означает, что в отчете отображаются ВСЕ записи, как выставленные, так и невыполненные. Я не могу заставить это работать.

У меня Googled это миллион различных способов и не подошли ближе к выяснению, как это сделать. Я даже изменил свою тактику на использование текстового поля (например, я сделал для [Job Number]), чтобы вы могли фильтровать для непроверенных записей, набрав «False» в форме. Это работает, но если текстовое поле осталось пустым (что, я думаю, означало, что фильтр NO будет применен), в отчете не появляются записи. Я также попытался записать выражения IIf() в критерии, но я должен написать формулу неправильно.

EDIT: (Хорошо, давайте попробуем это снова) Вот SQL:
ВЫБРАТЬ tblTimesheet.Date, tblTimesheet [Номер задания], tblTimesheet.Expense, tblTimesheet [Miles Путешествовал], tblTimesheet [Описание проекта], tblTimesheet... .Employee, tblTimesheet.Hours, tblTimesheet. [Объявленный?], tblTimesheet. [Ежечасно Общее], tblTimesheet. [Пробег Общее], tblTimesheet. [ОБЩИЙ ИТОГ], tblTimesheet.Rate
ОТ tblTimesheet
ГДЕ (((tblTimesheet. [Номер задания]) Подобно «*» & [Формы]! [FrmJobTimeFilter]! [TxtJobNum] & «*») AND ((tblTimesheet. [Billed?]) = [Forms]! [FrmJobTimeFilter]! [ChkUnbilledFilter])) ;

Выполнение этого способа возвращает либо все истинные значения (если я устанавливаю флажок), либо все ложные значения (снятый флажок). Как создать параметр для просмотра ВСЕХ записей?

Есть ли лучший способ сделать это? Пожалуйста помоги!! Также были бы весьма полезны ответы на вопросы неспециалиста.Применение или удаление фильтра в поле запроса доступа с флажком

+0

Не могли бы вы ИЗМЕНИТЬ свое сообщение текущим запросом, чтобы мы могли дать вам правильное решение? – PaulFrancis

+0

Простите, @PaulFrancis, я не знаю, что вы подразумеваете под этим. Но я не могу опубликовать изображение моего построителя запросов или прикрепить файл, если это то, о чем вы просите. – clb709

+0

Вы можете поместить запрос в представление SQL и можете получить свой письменный запрос прямо оттуда. – Newd

ответ

0

Вы пытались добавить столбец в вашей БД, чтобы вернуть 0, если флажок снят, и 1, если проверено ... то вы можете легко запустить запрос, где поле = 1.

+0

не все равно будет давать мне только истинные значения или только значения False? – clb709

0

http://bytes.com/topic/access/answers/905256-iif-statements-criteria-query-false-value-returning-all-records

здесь я нашел ответ, и вот мой новый SQL:

ВЫБРАТЬ tblTimesheet.Date, tblTimesheet [Номер задания], tblTimesheet.Expense, tblTimesheet [Miles Путешествовал], tblTimesheet [Описание проекта], tblTimesheet... .Employee, tblTimesheet.Hours, tblTimesheet. [Выставляется счет?], TblТехническое сообщение. [Hourly Total], tblTimesheet. [Mileage Total], tblTimesheet. . [ОБЩИЙ ИТОГ], tblTimesheet.Rate
ОТ tblTimesheet
WHERE (((tblTimesheet. [Номер задания]) Как "*" & [Forms]! [FrmJobTimeFilter]! [TxtJobNum] & "*") AND ((tblTimesheet. [Billed?]) Как IIf ([Forms]! [frmJobTimeFilter]![ChkUnbilledFilter] = True, False, "*")));

Теперь я устанавливаю флажок «Только просмотр незашифрованного времени»), и в созданном отчете будет отображаться НЕОБЫЧНОЕ время. Если флажок не установлен, отображаются все значения.

СПАСИБО, GOOGLE!

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