powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / фильр флажками
25 сообщений из 66, страница 1 из 3
фильр флажками
    #39202303
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Форумчане, сделал общий фильтр к которому подвязал все списки и флажки, но появилась проблема со флажками

Private Sub FilterForm()

Dim strFilter As String

strFilter = "True"

If Form.Recordset.EOF Then Me.FilterOn = False
Form.Dirty = False

If Me.Napr_no = True Then strFilter = strFilter & " and [kVili25kV] Like ""НЕТ"""


If Me.Napr_yes = True Then strFilter = strFilter & " and [kVili25kV] Like ""ДА"""

If Me.Napr_case = True Then strFilter = strFilter & " and [kVili25kV] Like ""null"""


If Me.Napr_all = True Then strFilter = strFilter & ""

Me.Filter = strFilter
Me.FilterOn = True



End Sub
Выдает ошибку и не хочет фильтровать. Получается мне нужно 4 позиции: ДА,НЕТ,пусто,все
...
Рейтинг: 0 / 0
фильр флажками
    #39202320
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Like без * это =.
2. Как поле может быть одновременно ("НЕТ" И "ДА" И "null")? Может, ИЛИ?
3. А "null" - это так в поле и прописано, как текст?
4. Да и по поводу "НЕТ" и "ДА".... Что-то странное...
...
Рейтинг: 0 / 0
фильр флажками
    #39202323
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поле kVili25kV - это логическое (Boolean) поле таблицы Access?
В этом случае оно не может быть Null.
...
Рейтинг: 0 / 0
фильр флажками
    #39202330
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

по сути да, да и нет, не смогут быть одновременно это ясно, в этом случае если будут выбраны два флажка то записей не будет. Я разделил флажки для другой цели, чтобы иметь возможность выбирать нет и пусто, или да и пусто, но т.к. это было бы большим нагромождением условий, то сделал 4 флажка, так будет удобней, поверьте) null, это незаполненное поле. И поле kVili25kV, не логическое, т.е. не Boolean
...
Рейтинг: 0 / 0
фильр флажками
    #39202335
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Retvisan, чтобы иметь возможность выбирать нет и пусто, или да и пустоНо это все равно ИЛИ (OR), но не И (AND).
...
Рейтинг: 0 / 0
фильр флажками
    #39202344
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

это будет значение И, но получается у меня так, что есть общий фильтр и он вызывается для каждого элемента формы. strFilter это общий фильтр, вызываемый для всех элементов
...
Рейтинг: 0 / 0
фильр флажками
    #39202356
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Retvisanэто будет значение ИОх....
Еще и значение....
Даже не логическая операция...
...
Рейтинг: 0 / 0
фильр флажками
    #39202476
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

Логическая операция. В любом случае вопрос был в синтаксисе кода)) почему не получается применить переменную общего фильтра и условие для него) для флажка
...
Рейтинг: 0 / 0
фильр флажками
    #39202497
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Retvisannull, это незаполненное поле. И поле kVili25kV, не логическое, т.е. не BooleanВ таком случае условие должно быть таким
Код: vbnet
1.
kVili25kV Is Null

RetvisanЯ разделил флажки для другой цели, чтобы иметь возможность выбирать нет и пусто, или да и пустоВ таком случае условия должны быть такими
Код: vbnet
1.
(kVili25kV Is Null OR kVili25kV = "<значение>")

, где "<значение>" либо "ДА", либо "НЕТ" (неужели, действительно, так и записано в таблице???).
...
Рейтинг: 0 / 0
фильр флажками
    #39202523
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

https://yadi.sk/d/f4jhDwdAqYWdz , вот база, там сделал все флажки, вроде как. посмотрите, если хотите) быть может я вас заблуждение ввожу)
...
Рейтинг: 0 / 0
фильр флажками
    #39202526
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Retvisan,

Ой, нет, у меня accdb не откроется.(((
Максимум в 2003-м могу посмотреть, если переделаете в формат 2003-го.
...
Рейтинг: 0 / 0
фильр флажками
    #39202531
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
фильр флажками
    #39202560
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,
задумка другая, как прописать условие и переменную общего фильтра одновременно? и все не надо делать никаких двойных условий.Если делать двойные условия, то у меня будет переключателей больше, раз,два я не смогу фиьтровать данные вместе со списками, которые я уже добавил в общий фильтр
...
Рейтинг: 0 / 0
фильр флажками
    #39202562
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Retvisan,

Ага, скачала.
Посмотрю попозже, бегло взглянула - удивилась.)))
Попробую распутать Ваши критерии, прямо в базе.
Выложу результат.
...
Рейтинг: 0 / 0
фильр флажками
    #39202570
1121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__MichelleRetvisan,

Ага, скачала.
Посмотрю попозже, бегло взглянула - удивилась.)))
Попробую распутать Ваши критерии, прямо в базе.
Выложу результат.*-*
**
...
Рейтинг: 0 / 0
фильр флажками
    #39202576
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

спасибо, если что, тот кусочек кода, который я выложил сюда в тему, не вставлен, ибо если я его заменяю в общем фильтре, то потом редактор уже не открывается))) не знаю почему, просто экссесс зависает)
...
Рейтинг: 0 / 0
фильр флажками
    #39202610
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, так.
У меня тоже на Вашей базе при попытке сохранить или перейти из режима конструктора в режим формы вываливается Access.
Но все же удалось часть кода изменить и проверить работу.
Все получается.
Изменения покажу здесь, так как базу пересохранить не удается.

Вместо этого фрагмента
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    If [L] > "" Then strFilter = strFilter & " AND [L] Like  '*" & LVybor & "*'"
    If [N] > "" Then strFilter = strFilter & " AND [N] Like  '*" & NVybor & "*'"
    If [IS510] > "" Then strFilter = strFilter & " AND [IS510] Like  '*" & IS510Vybor & "*'"
    If [IS520] > "" Then strFilter = strFilter & " AND [IS520] Like  '*" & IS520Vybor & "*'"
    If [IS530] > "" Then strFilter = strFilter & " AND [IS530] Like  '*" & IS530Vybor & "*'"
    If [R1] > "" Then strFilter = strFilter & " AND [R1] Like  '*" & R1Vybor & "*'"
    If [R2] > "" Then strFilter = strFilter & " AND [R2] Like  '*" & R2Vybor & "*'"
    If [R3] > "" Then strFilter = strFilter & " AND [R3] Like  '*" & R3Vybor & "*'"
    If [R4] > "" Then strFilter = strFilter & " AND [R4] Like  '*" & R4Vybor & "*'"
    If [R5] > "" Then strFilter = strFilter & " AND [R5] Like  '*" & R5Vybor & "*'"
    If [vneplan] > "" Then strFilter = strFilter & " AND [vneplan] Like  '*" & VneplanVybor & "*'"

сделала этот
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    If Not IsNull(LVybor) Then strFilter = strFilter & " AND [L]=""" & LVybor & """"
    If Not IsNull(NVybor) Then strFilter = strFilter & " AND [N]=""" & NVybor & """"
    If Not IsNull(IS510Vybor) Then strFilter = strFilter & " AND [IS510]=""" & IS510Vybor & """"
    If Not IsNull(IS520Vybor) Then strFilter = strFilter & " AND [IS520]=""" & IS520Vybor & """"
    If Not IsNull(IS530Vybor) Then strFilter = strFilter & " AND [IS530]=""" & IS530Vybor & """"
    If Not IsNull(R1Vybor) Then strFilter = strFilter & " AND [R1]=""" & R1Vybor & """"
    If Not IsNull(R2Vybor) Then strFilter = strFilter & " AND [R2]=""" & R2Vybor & """"
    If Not IsNull(R3Vybor) Then strFilter = strFilter & " AND [R3]=""" & R3Vybor & """"
    If Not IsNull(R4Vybor) Then strFilter = strFilter & " AND [R4]=""" & R4Vybor & """"
    If Not IsNull(R5Vybor) Then strFilter = strFilter & " AND [R5]=""" & R5Vybor & """"
    If Not IsNull(VneplanVybor) Then strFilter = strFilter & " AND [vneplan]=""" & VneplanVybor & """"

На мой взгляд, эти критерии теперь работают.
Проверьте, пожалуйста, у себя.

По критерию для напряжения мне пока не ясно, чем отличается "Не важно" от "Все".
Когда объясните, попробую и этот критерий сделать.
...
Рейтинг: 0 / 0
фильр флажками
    #39202710
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

это да, у меня и до этого в принципе работали списки(в плане фильтрации у меня не было к ним нареканий, выдавали данные, что нужны), у меня самой большой трабл с флажками, у меня не получается задать для флажков strFilter, как я пытался это сделать приведено выше, в самом начале темы)
...
Рейтинг: 0 / 0
фильр флажками
    #39202728
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

Вот какой код теперь, ваш код для списков работает) я попытялся переделать для флажков, но косяк сохраняется, выдает ошибку

Private Sub FilterForm()

Dim strFilter As String

strFilter = "True"

If Form.Recordset.EOF Then Me.FilterOn = False
Form.Dirty = False
Me.Filter = strFilter

If Not IsNull(LVybor) Then strFilter = strFilter & " AND [L]=""" & LVybor & """"
If Not IsNull(NVybor) Then strFilter = strFilter & " AND [N]=""" & NVybor & """"
If Not IsNull(IS510Vybor) Then strFilter = strFilter & " AND [IS510]=""" & IS510Vybor & """"
If Not IsNull(IS520Vybor) Then strFilter = strFilter & " AND [IS520]=""" & IS520Vybor & """"
If Not IsNull(IS530Vybor) Then strFilter = strFilter & " AND [IS530]=""" & IS530Vybor & """"
If Not IsNull(R1Vybor) Then strFilter = strFilter & " AND [R1]=""" & R1Vybor & """"
If Not IsNull(R2Vybor) Then strFilter = strFilter & " AND [R2]=""" & R2Vybor & """"
If Not IsNull(R3Vybor) Then strFilter = strFilter & " AND [R3]=""" & R3Vybor & """"
If Not IsNull(R4Vybor) Then strFilter = strFilter & " AND [R4]=""" & R4Vybor & """"
If Not IsNull(R5Vybor) Then strFilter = strFilter & " AND [R5]=""" & R5Vybor & """"
If Not IsNull(VneplanVybor) Then strFilter = strFilter & " AND [vneplan]=""" & VneplanVybor & """"


If (Me!Napr_no) = True Then strFilter = strFilter & " kVili25kV=ÍÅÒ"


If (Me!Napr_yes) = True Then strFilter = strFilter & " kVili25kV=ÍÅÒ"

If (Me!Napr_case) = True Then strFilter = strFilter & " kVili25kV is null"


If (Me!Napr_all) = True Then strFilter = strFilter & ""



Me.Filter = strFilter
Me.FilterOn = True



End Sub
...
Рейтинг: 0 / 0
фильр флажками
    #39202731
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Retvisan,

у вас может быть 2 варианта выборки

условие1 и(and) условие2
условие1 или(or) условие 2

и только вы знаете, какой тип сочетания вы хотите получить

L AND 380
(L OR N) AND 380
(L OR N OR 310) AND (только что-то)
(L OR N OR 310) AND (кроме что-то)
....
...
Рейтинг: 0 / 0
фильр флажками
    #39202735
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Retvisan,

вам я на другом форуме выложила пример на сочетание типа
(L=DA OR N=DA) AND (FLAG11=DA) AND (FLAG21=DA)

что там не так
...
Рейтинг: 0 / 0
фильр флажками
    #39202740
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА,и снова здравствуйте) место встречи изменить нельзя)

причина в том, что там использованы групповые переключатели, в которых я могу выбрать только одно условие. Мучаться с сочетаниями это тупик, я буду добавлять еще один блок флажков. И перебирать все варианты просто невозможно. поэтому нужны флажки, с общим фильтром, который вызвается для них.
...
Рейтинг: 0 / 0
фильр флажками
    #39202754
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Retvisanу меня и до этого в принципе работали списки(в плане фильтрации у меня не было к ним нареканий, выдавали данные, что нужны)Этого быть просто не может!
Внимательно посмотрите на свой код и на мой.
Неужели не видите принципиальную разницу?
Вы вместо проверки значения критерия проверяете текущее значение из ленточной формы и на основании этого "фильтруете",
причем зачем-то с бессмысленным LIKE.
Не дает Ваш код нужного результата, сказки.
Вы даже не попробовали применить мой?Retvisanу меня самой большой трабл с флажками, у меня не получается задать для флажков strFilter, как я пытался это сделать приведено выше, в самом начале темы)Ваши варианты из начала темы мне не очень нужны.
Они, простите, дикие.
Мне нужен был ответ на вопрос, чем отличается "Не важно" от "Все".
Вы вопрос проигнорировали. Ну, ладно, сама догадаюсь.

Вот Вам вариант для Напряжения.
Вместо этого фрагмента
Код: vbnet
1.
2.
3.
4.
5.
    If [kVili25kV] > "" Then strFilter = strFilter & " AND [kVili25kV] Like  'НЕТ" & Napr_no & "НЕТ'"
    If [kVili25kV] > "" Then strFilter = strFilter & " AND [kVili25kV] Like  'ДА" & Napr_yes & "ДА'"
    If [kVili25kV] > "" Then strFilter = strFilter & " AND [kVili25kV] Like  '" & Napr_case & "'"
    If [kVili25kV] > "" Then strFilter = strFilter & " AND [kVili25kV] Like  '" & Napr_case & "'"
    If [kVili25kV] > "" Then strFilter = strFilter & " AND [kVili25kV] Like  '*" & Napr_all & "*'"

вставьте этот
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    Dim s As String
    If Not Napr_all And _
       Not (Napr_no And Napr_yes And Napr_case) And _
       Not (Not Napr_no And Not Napr_yes And Not Napr_case) Then
     s = " AND  (False"
     If Napr_no Then s = s & " OR ([kVili25kV]=""НЕТ"")"
     If Napr_yes Then s = s & " OR ([kVili25kV]=""ДА"")"
     If Napr_case Then s = s & " OR ([kVili25kV] Is Null)"
     s = s & ")"
    End If
    strFilter = strFilter & s

Объявление переменной s перенесите в начало процедуры.

ВАЖНО: Предварительно флажкам Napr_no, Napr_yes, Napr_case, Napr_all
присвойте в конструкторе начальное значение (значение по умолчанию).
Всем, кроме Napr_all - False, а Napr_all - True.
...
Рейтинг: 0 / 0
фильр флажками
    #39202755
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

простите, я применил ваш код, я же написал...спасибо огромное за помощь. все от неважно отличается тем, что есть пустые пустые занчения в столбцах, эти пустые значения и будут неважно, все ну это все и пустые и да и нет. Еще раз спасибо, уже почти неделю мучаюсь с этими фильтрами) щас попробую
...
Рейтинг: 0 / 0
фильр флажками
    #39202757
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,


Private Sub FilterForm()

Dim strFilter As String
Dim s As String

strFilter = "True"


If Form.Recordset.EOF Then Me.FilterOn = False
Form.Dirty = False


If Not IsNull(LVybor) Then strFilter = strFilter & " AND [L]=""" & LVybor & """"
If Not IsNull(NVybor) Then strFilter = strFilter & " AND [N]=""" & NVybor & """"
If Not IsNull(IS510Vybor) Then strFilter = strFilter & " AND [IS510]=""" & IS510Vybor & """"
If Not IsNull(IS520Vybor) Then strFilter = strFilter & " AND [IS520]=""" & IS520Vybor & """"
If Not IsNull(IS530Vybor) Then strFilter = strFilter & " AND [IS530]=""" & IS530Vybor & """"
If Not IsNull(R1Vybor) Then strFilter = strFilter & " AND [R1]=""" & R1Vybor & """"
If Not IsNull(R2Vybor) Then strFilter = strFilter & " AND [R2]=""" & R2Vybor & """"
If Not IsNull(R3Vybor) Then strFilter = strFilter & " AND [R3]=""" & R3Vybor & """"
If Not IsNull(R4Vybor) Then strFilter = strFilter & " AND [R4]=""" & R4Vybor & """"
If Not IsNull(R5Vybor) Then strFilter = strFilter & " AND [R5]=""" & R5Vybor & """"
If Not IsNull(VneplanVybor) Then strFilter = strFilter & " AND [vneplan]=""" & VneplanVybor & """"


If Not Napr_all And _
Not (Napr_no And Napr_yes And Napr_case) And _
Not (Not Napr_no And Not Napr_yes And Not Napr_case) Then
s = " AND (False"
If Napr_no Then s = s & " OR ([kVili25kV]=""ÍÅÒ"")"
If Napr_yes Then s = s & " OR ([kVili25kV]=""ÄÀ"")"
If Napr_case Then s = s & " OR ([kVili25kV] Is Null)"
s = s & ")"
End If




strFilter = strFilter & s

Me.FilterOn = True



End Sub
все равно выдает все ту же ошибку..(
...
Рейтинг: 0 / 0
25 сообщений из 66, страница 1 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / фильр флажками
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]