|
|
|
| Вот код, в котором ввожу нужные зна4ения в фильтр. Но при первом открытии репорта, всё равно выскакивает окошко с требованием ввести данные по которым будет производится фильтрация... Как етот "глюк" убрать?
Private Sub REPORT_Click()
Dim strRegNo As String
Dim strADSB As String
Dim strFilter As String
DoCmd.OpenReport "ADSB REG", acViewPreview
If IsNull(Me.Text0.Value) Then
strRegNo = "Like '*'"
Else
strRegNo = "='" & Me.Text0.Value & "'"
End If
If IsNull(Me.Text2.Value) Then
strADSB = "Like '*'"
Else
strADSB = "='" & Me.Text2.Value & "'"
End If
strFilter = "[RegNo] " & strRegNo & " AND [AD/MSB NO] " & strADSB
With Reports![ADSB REG]
.Filter = strFilter
.FilterOn = True
End With
Me.Text0.Value = Null
Me.Text2.Value = Null
End Sub
|
| |
|
| |
|
|
|
| а так?
Private Sub REPORT_Click()
Dim strRegNo As String
Dim strADSB As String
Dim strFilter As String
If IsNull(Me.Text0.Value) Then
strRegNo = "Like '*'"
Else
strRegNo = "='" & Me.Text0.Value & "'"
End If
If IsNull(Me.Text2.Value) Then
strADSB = "Like '*'"
Else
strADSB = "='" & Me.Text2.Value & "'"
End If
strFilter = "[RegNo] " & strRegNo & " AND [AD/MSB NO] " & strADSB
' With Reports![ADSB REG]
' .Filter = strFilter
' .FilterOn = True
' End With
DoCmd.OpenReport "ADSB REG", acViewPreview,,strFilter
Me.Text0.Value = Null
Me.Text2.Value = Null
End Sub
|
или если перенести формирование и применение фильтра на событие Open отчета? | |
|
| |
|
|
|
| Да, проблема была именно тут.
Только для работы, закрытый вами кусок кода всёже нужен, и стоять они должни в следующем порядке:
If IsNull(Me.Text0.Value) Then
strRegNo = "Like '*'"
Else
strRegNo = "='" & Me.Text0.Value & "'"
End If
If IsNull(Me.Text2.Value) Then
strADSB = "Like '*'"
Else
strADSB = "='" & Me.Text2.Value & "'"
End If
strFilter = "[REG NO] " & strRegNo & " AND [AD/MSB NO] " & strADSB
DoCmd.OpenReport "ADSB REG", acViewPreview, , strFilter
With Reports![ADSB REG]
.Filter = strFilter
.FilterOn = True
End With
|
или на открытие репорта...как вариант - тоже работает. | |
|
| |
|
|
|
| "Только для работы, закрытый вами кусок кода всёже нужен, и стоять они должни в следующем порядке:"
Зачем? Фильтр и так применяется
DoCmd.OpenReport "ADSB REG", acViewPreview, , strFilter | |
|
| |
|
|
|
| Я то вижу, что применяетя... только вот програмка иначе не работает. | |
|
| |
|
|
|
| вам виднее | |
|
| |
|
|
|
| Знаете, всё же тут чтото не чисто... один репорт нормалйно по етому фильтру работает... а вот другой.... хоть бы хны!
В коде всё описывается верно. Но при запуске - требует еще раз ввести в фильтр данные(тут получается опять дублированние) и ни4его не находит! Хотя если зайти в пропертис, после того как он уже открылся - в фiльтре всё более 4ем 4етко и верно описанно...
Тоесть код то всё верно делает.... а вот 4то с остальным творитса - непонятно. | |
|
| |
|
|
|
| посмотрите источник данных отчета | |
|
| |
|
|
|
| Посмотрела уже в какой 20ый раз - то что надо. Если в фильтре заменить "и" на "или", то он показывает в репорте 1ую запись - но это всё 4его смогла от него добиться.... | |
|
| |
|
|
|
| откройте отчет в режиме конструктора
удалите строку фильтра
свойство "фильтр включен" поставьте - "нет"
Проверьте что в источнике данных отчета нет условий
сохраните отчет. | |
|
| |
|
|
|
| И это тоже пока не помогло. Просто странность в том, что один репорт работает - а 2ой нет.... и видимой причины на это не видно....
Может я какоето важное действие упускаю при создании репорта?
(Так как, тот репорт, который воспринимает код верно, был изначально сделан не мной.) | |
|
| |
|
|
|
| А в самом отчете есть поля, участвующие в условиях фильтра? | |
|
| |
|
|
|
| Есть.... дело заканчивается тем, что в пропертях запроса, фильтр записан так как описываетса в коде, и данные взяты из нужной формы... только вот сам репорт не воспринимает то что у него там в пропертях уже есть.... | |
|
| |
|
|
|
| Прицепите кусок БД с необходимыми таблицами, запросами, формами и отчетами. Посмотрим. | |
|
| |