2015-10-05 2 views
0

У меня есть форма навигации с 3 вкладками. Дома, заказчики, Декор.Как фильтровать при загрузке с помощью форм доступа Microsoft Access

В навигационной форме у меня есть свободное поле LOTNUMSELECT.

На подформе в каждой вкладке есть поле под названием LOT_NUMBER.

Поскольку отношения между мастером и ребенком не представляется возможным с помощью форм навигации, я ищу подформацию для фильтрации при загрузке.

Пользователь вводит много # в LOTNUMSELECT, затем нажимает на вкладку. Когда вкладка становится текущей, отображается конкретная партия # (запись).

Я делаю это из формы «панель управления», открывая другую форму со следующим кодом.

Dim stDocName As String 
Dim stLinkCriteria As String 

stDocName = "Decor" 

If IsNull(LotNumberSelect.Value) = True Then 

MsgBox "Please enter a lot number first." 

Else 
stLinkCriteria = "[Lot_Number]=" & "'" & Me![LotNumberSelect] & "'" 
DoCmd.OpenForm stDocName, , , stLinkCriteria 
End If 

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

ответ

-1

PART2

Я был еще несколько мыслей, сделав несколько экспериментов.

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

Думаю, вам будет проще использовать «управление вкладками», с которым в этом случае работать легче.

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

Вот ссылка на видео об использовании вкладок: video 1 Video 2

Вот несколько ссылок на видео об использовании управления навигацией: video 1 video 2 video 3

Вот некоторые замечания, которые я сделал примыкать навигационное управление:

Навигационное управление имеет «навигационное подчинение» rm ", который не имеет полей ссылок на основные/дочерние данные. Однако эта подформа не является нормальной подчиненной формой.

С помощью элемента управления навигацией вы должны установить свойство «Навигационное имя цели» кнопки навигации (в меню навигации) в форме, которую вы хотите отобразить в навигационной форме при нажатии кнопки.

Кроме того, кнопка имеет свойство «Предложение Where Where», которое, как я полагаю, будет использоваться для фильтрации строк, показанных КОГДА загружена форма. Там не отображаются события, которые позволят вам изменить этот фильтр, когда элемент управления используется в основной форме. ,

+0

Вы полностью потеряли меня. Мои навыки VB не соответствуют вашим стандартам. – NewbieVBA

+0

См. Часть 2 моего ответа – HarveyFrench

+0

Раньше я использовал элементы управления вкладками, но проблема в том, что он загружает все данные, как только форма открыта. Поскольку мы, эта база данных на дороге (подключенная к mysql через MYODBC), нецелесообразно загружать сразу все данные. Вот почему я думал, что форма навигации лучше всего, так как она «выгружает» данные при переключении вкладок. – NewbieVBA

0

Навигационное управление состоит из двух частей. Меню навигации и навигационный блок. Каждая кнопка навигации (aka tab) загружает целевую форму в элемент управления навигации. Одновременно может быть загружена только одна форма в навигационную форму. Поскольку навигационная структура открывает вашу целевую форму, вы можете использовать стандартный метод «form_open», чтобы настроить фильтр или установить соответствующий набор записей. Все, что вам нужно сделать, нажмите на формах открытого события и в этом случае вы можете получить доступ к родительскому контролю просто

dim lotno as long 
Lotno = nz(me.Parent!controlname.value,0) 
If lotno <> 0 the 
' do your filter or recordset operation 
End if 

Вы также можете использовать событие Form_Load. Поскольку вы собираетесь выполнять фильтр после загрузки, лучше установить его на form_open. Это увеличит вашу производительность.

+0

Я получаю ваш ответ и добавил к нему текст. Мой главный вопрос: лучше ли работать с помощью элемента управления с вкладками. Кажется, что многие подформы связаны с элементом управления основной формой и что для изменения этого элемента управления необходимо задействовать все источники данных подформ. Включение вкладок и возврат к предыдущей вкладке без изменения элемента управления LOTNUMSELECT приведет к большему количеству запросов, если вместо элемента управления табуляции используется элемент управления навигации. – HarveyFrench

+0

Изменение номера партии в вашей основной форме потребует повторного запроса в навигационном режиме. так как ваши формы всегда будут запрашивать загрузку, вам не нужно добавлять дополнительные коды. но это, конечно, зависит от вас, как вы идете. –

+0

@HarveyFrench извините, не вижу ваших изменений, его отклонили модераторы –

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