2013-07-30 4 views
2

У меня есть подформация, заполненная различными задачами. Я хочу отфильтровать их на DUE_DT с фильтром, который происходит автоматически. В некоторых записях есть пробел DUE_DT, который я хотел бы распечатать. Я также хотел бы отфильтровать записи, чье DUE_DT прошло более 30 дней. Я пытался использовать VB, но я не смог найти соответствующий синтаксис.Фильтрация Microsoft Access Subform

ответ

0

«Я хочу отфильтровать их на DUE_DT с фильтром, который происходит автоматически».

Я не совсем уверен, что вы имеете в виду там, но мне интересно, может ли это быть обработано предложением WHERE в запросе источника записи подформы.

WHERE DUE_DT >= Date() - 30 

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

Обратите внимание, что вам не нужно добавлять другое условие, чтобы явно исключать Nulls (например, DUE_DT Is Not Null), потому что Null не >= Date() - 30.

+0

Я пробовал ваше предложение в запросе источника записи, и когда я запускаю запрос, я получаю результаты, которые мне нужны. Однако, когда я открываю форму в представлении формы, субформ выводит те же результаты, что и запрос не используется вообще. Есть ли у вас какие-либо предложения по устранению этого? – Mike

+0

Когда вы запустите этот запрос, вы получите нужные результаты. Это звучит правильно для меня, поэтому я не понимаю ... хм ... когда вы сказали запрос источника записи, вы имели в виду источник записи основной формы или подформы? Я имел в виду источник записи субформы. – HansUp

+0

К сожалению, я не вижу возможности редактировать запрос источника записи для подформы. – Mike

0

Попробуйте это в VBA, должны работать на любой форме или модуле вы положили его в:

Form_subFormName.Filter = "DUE_DT IS NOT NULL AND DUE_DT >= #" & (Date - 30) & "#" 
Form_subFormName.FilterOn = True 

Заменить subFormName в Form_subFormName с именем вашего подчиненным, но держать Form_.

+0

Я изо всех сил, чтобы сделать эту работу -Есть '[Form] и' [subFormName] 'должен быть изменен с имя этой формы/подформы? – Mike

+0

Я отредактирую сообщение, чтобы уточнить это, извините :) –

3

Вот некоторые синтаксис для appplying фильтра к югу от формы:

Forms!MyMainForm.ASubFormOnMyMainForm.Form.Filter = "whatever your filter is" 
Forms!MyMainForm.ASubFormOnMyMainForm.Form.FilterOn = True