2011-05-25 2 views
0

В настоящее время у меня реализовано поведение, которое позволяет моей MS Acess DB перейти к определенной записи в другой подформе. Однако это оставляет фильтр включенным, и когда я выключаю фильтр, субформа возвращается к первой записи в общем наборе. Есть ли способ, которым я могу перейти к этой записи, а затем выключить фильтр, но остаться в записи, которую я нашел?Microsoft Access Отключить фильтр и остаться в записи

Я пытаюсь поместить код VBA на ввод или щелчок, но я не могу понять, что делать.

ответ

0

Используйте первичный ключ вашей подформы для перехода к записи. Поместите командную кнопку на форме и в порядке событий кнопки сделать что-то вроде этого:

Dim ID as Variant 

With [SubForm].Form 
    ID=!PrimaryKey.Value 
    .FilterOn = False 
    .Recordset.FindFirst "[ID]=" & ID 
End With 

Это должно получить вас в мяч парк.

+0

спасибо, что это действительно помогло, я застрял на том, что делал что-то подобное этому в течение последних нескольких дней. Я предполагаю, что в качестве последующего вопроса я использую это в сочетании с DoCmd.gotoRecord, acNext, но на границах, очевидно, нет никаких дополнительных записей, однако я не могу написать правильную инструкцию if, чтобы переключить поведение от go to следующей записи, чтобы вернуться к первому утверждению. Сейчас я проверяю, если ID = null, но, очевидно, это неверно. – imprz

+1

@imprz Посмотрите на свойства BOF и EOF объекта Recordset. Когда вы пройдете последнюю запись - или до первого - EOF и BOF будут установлены соответственно. Я часто обертываю свой код набора записей в If Not rec.BOF, а не rec.EOF, затем ... для захвата экземпляров, где нет записей. – TheOtherTimDuncan

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