Доступ — форма навигации изменяет источник записи на целевое имя и отменяет привязку элементов управления

У меня есть ряд форм, отфильтрованных с помощью VBA, и все они работают нормально, пока формы не будут добавлены в форму навигации, а затем возвращается ошибка, говорящая: «Действие или метод недействительны, поскольку форма или отчет не привязаны к таблице или запросу».

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

В исходной форме источником записи свойства является tblAvailableHours2.

В форме навигации свойство имеет целевое имя Frm_Available_Capacity_Hours.

Это простой фильтр даты,

Private Sub ApplyDtFilt_Click()

    On Error GoTo ApplyDtFilt_Click_Err
    
     DoCmd.ApplyFilter , "[Start Date] Between #" & Format([AVstrtdt], "yyyy/mm/dd") & "# And #" & Format([AVEnDt], "yyyy/mm/dd") & "#"
     
    ApplyDtFilt_Click_Exit:
        Exit Sub
    ApplyDtFilt_Click_Err:
        MsgBox Error$
        Resume ApplyDtFilt_Click_Exit
    
End Sub

Есть ли способ связать вышеуказанный фильтр обратно с исходной таблицей tblAvailableHours2 в VBA или манипулировать именем источника/цели записи формы навигации в листе свойств, чтобы заставить его снова работать?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
170
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

Private Sub ApplyDtFilt_Click()

    On Error GoTo ApplyDtFilt_Click_Err

    With Me!NameOfSubformControlHoldingFrm_Available_Capacity_Hours.Form
        .Filter = "[Start Date] Between #" & Format([AVstrtdt], "yyyy/mm/dd") & "# And #" & Format([AVEnDt], "yyyy/mm/dd") & "#"
        .FilterOn = True
    End With
     
    ApplyDtFilt_Click_Exit:
        Exit Sub
    ApplyDtFilt_Click_Err:
        MsgBox Error$
        Resume ApplyDtFilt_Click_Exit
    
End Sub

Кажется, Густав снова меня выручает... Ваш ответ направил меня в правильном направлении... большое спасибо! Это ошибка, так как не удалось найти подчиненную форму Frm_Available_Capacity_Hours, однако, исследуя этот подход, правильный способ сделать это с помощью навигационной формы - вызвать имя навигационной формы. В данном случае это был EPM-V2... С формами![EPM-V2]![NavigationSubform].Form..... (Я опубликую окончательный код ниже, если кто-то еще ищет) Спасибо за помощь ;-) Время для кофе!

sambob_628 21.12.2020 12:45
Private Sub ApplyDtFilt_Click()
On Error GoTo ApplyDtFilt_Click_Err
     
     With Forms![EPM-V2]![NavigationSubform].Form
     Filter = "[Start Date] Between #" & Format([AVstrtdt], "yyyy/mm/dd") & "# And #" & Format([AVEnDt], "yyyy/mm/dd") & "#"
    .FilterOn = True
    End With

ApplyDtFilt_Click_Exit:
    Exit Sub
ApplyDtFilt_Click_Err:
    MsgBox Error$
    Resume ApplyDtFilt_Click_Exit
End Sub

Другие вопросы по теме