Я работаю над созданием параметров фильтрации myReport , содержащихся в контейнере подчиненной формы.Я использовал решение, описанное в этом вопросе: Отчет о фильтрации
от HansUp.Используя описанный код, фильтр успешно создается, сохраняется и применяется с событием OnClick объекта apllyFilterButton.
Затем я создаю disableFilterButton и в событии OnClick помещаю предложенный код в ранее упомянутый поток.Во время тестирования я получаю эту ошибку:
«Ошибка времени выполнения» -2147417848 (80010108) ':
Ошибка метода «FilterOn» объекта «_Report_myReport» *
Если я включаю / отключаю фильтр с помощью ленты доступа (кнопка включения / выключения фильтра), все работает без ошибок.Так что моя ошибка может быть простой, даже в синтаксисе, но я не могу найти источник.
Код:
Private Sub disableFilterButton_Click()
Forms![myForm]![myReport].Report.FilterOn = False
Forms![myForm]![myReport].Report.Filter = ""
Forms![myForm]![myReport].Requery
End Sub
После сбоя, используя опцию «Отладка», первая строка кода вышевыделеноМое исследование здесь и вокруг сети предложило добавить строку «пустой фильтр», а также проблему с реестром или существующий цикл в коде, который создает сбой.Но так как с помощью кнопок ленты все работает, я думаю, что-то простое, что мне не хватает.Я все еще новичок.
Код, используемый в myFilterButton для создания фильтра, не полностью завершен, но должен работать:
Private Sub applyFilterButton_Click()
Dim ctl As Control
Dim varVyber As Variant
Dim filtrVolba As String
Dim filtrUplny As String
'Criteria creation for filter SQL
Set ctl = Forms![myForm]![filterOptionOne]
If ctl.ItemsSelected.Count <> 0 Then
For Each varVyber In ctl.ItemsSelected
filtrVolba = filtrVolba & ctl.Column(0, varVyber) & """ OR (sourceQuery.sourceColumn) = """
Next varVyber
filtrVolba = Left$(filtrVolba, Len(filtrVolba) - Len(" OR (qry_sourceQuery.sourceColumn) = "))
Forms![myForm]![myReport].Report.Filter = "(((sourceQuery.fieldBoundToMyReport)=[Forms]![myForm]![TextBoxBoundToMyReport]) AND ((sourceQuery.filterOptionOneSourceField) = """ & filtrVolba & "))"
Forms![myForm]![myReport].Report.FilterOn = True
Else
MsgBox "Not yet"
End If
End Sub
Помощь будет высоко оценена!Thomas