powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Настройка логики переключений группы переключателей
32 сообщений из 32, показаны все 2 страниц
Настройка логики переключений группы переключателей
    #39212787
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую!Появилась необходимость создания логики. Суть такова: есть столбцы vagon01,vagon02..., к ним имеются блоки переключателей, которые выбирают значения из столбцов положение 1-<>0;2-=0;3-все значения. Они сейчас работают по логике "и" в общем фильтре, можно ли для этих блоков переключателей, добавить блок выборки логики "и" либо "или"?


https://cloud.mail.ru/public/FoRa/uUQhuPo6C
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39212827
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Retvisan,

обычно внутри блока действует закон (или)
меж блоками (или)

Код: vbnet
1.
2.
3.
выбрать (авто=ниссан или авто=тойота или авто=форд)
и (цвет=белый или цвет=молочный)
и (год выпуска между 1990 и 2000) из таблицы автомобилей
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39212831
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Retvisan

обычно внутри блока действует закон (или)
меж блоками (и)

Код: vbnet
1.
2.
3.
выбрать (авто=ниссан или авто=тойота или авто=форд)
и (цвет=белый или цвет=молочный)
и (год выпуска между 1990 и 2000) из таблицы автомобилей
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39212833
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Retvisan,

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

мне нужна возможность включения логики "или" переключателем между блоками(vagon01,vagon02 и т.д.), при помощи блока переключателей
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39212836
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Retvisan,
блин описался
*мне нужна возможность включения логики "или" переключателем между блоками(vagon01,vagon02 и т.д.),
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39212849
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вернее перейти с логики "и" на логику "или" между блоками пееключателей и обратно
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39213512
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно описать конечную задачу, а не путь ее решения, желательно на наглядном примере? Честно говоря, не совсем понятно, что именно требуется.

Да, и на Стеке лучше не паковать примеры 7z, там это не очень популярно ;)
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39213581
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShin,спасибо за совет) в общем есть две несколько групп переключателей, они все сведены в общий фильтр, но проблемы в том что они фильтруют данные согласно логике "и" т.е. например как в изображении у меня есть фильтр <>0 для столбца А, и для столбца С, в этом случае у меня не будет никаких записей в форме, а мне нужно, чтобы их появилось две т.е. одна для А и одна для С, т.к. в кажом столбце есть зачение, которое <>0
Вот как сделать группу переключателей, которая будет менять логику фильтраций моих групп переключателей с "и" на "или"
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39213605
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что мешает формировать фильтр в зависимости от переключателя "и/или"? В одном случае в тексте формируем фильтр с "и", в другом с "или".
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39213628
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShin,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
[SRC vba]With Me
    
         If (.ChooseCar3 = 1) Then
            strFilter = strFilter & " and [carriage3] not like 0"
        End If
        If (.ChooseCar3 = 2) Then
            strFilter = strFilter & " and [carriage3] like 0"
        End If
        If (.ChooseCar3 = 3) Then
            
                End If
    End With

[/SRC]
а как это прописать для фильтра переключателя?
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39213662
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Введите дополнительный флажок FlagOrAnd.
И опять эти LIKE-и....
Код: vbnet
1.
2.
3.
4.
5.
 If ChooseCar3 <> 3 Then 
  strFilter = strFilter & _ 
              IIf(FlagOrAnd, " OR", " AND") & " [carriage3] " & _
              Choose(ChooseCar3, "<>", "=") & "0" 
 End If  
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39213665
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну как-то так, только для случая ALL нужно подумать, что сделать, сейчас нет времени

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
Dim strFilter As String
Dim strLogic As String

If Me.logic = 1 Then
    'or
    strFilter = "False"
    strLogic = " or "
Else
    strFilter = "True"
    strLogic = " and "
End If

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

If (Me.ChooseCar1 = 1) Then
    strFilter = strFilter & strLogic & "[carriage1] not like 0"
End If
If (Me.ChooseCar1 = 2) Then
    strFilter = strFilter & strLogic & "[carriage1] like 0"
End If
If (Me.ChooseCar1 = 3) Then

End If

If (Me.ChooseCar2 = 1) Then
    strFilter = strFilter & strLogic & "[carriage2] not like 0"
End If
If (Me.ChooseCar2 = 2) Then
    strFilter = strFilter & strLogic & "[carriage2] like 0"
End If
If (Me.ChooseCar2 = 3) Then

End If

If (Me.ChooseCar3 = 1) Then
    strFilter = strFilter & strLogic & "[carriage3] not like 0"
End If
If (Me.ChooseCar3 = 2) Then
    strFilter = strFilter & strLogic & "[carriage3] like 0"
End If
If (Me.ChooseCar3 = 3) Then

End If

strFilter = strFilter

Me.Filter = strFilter
Me.FilterOn = True
    
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39213682
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShin,

спасибо) разберусь)
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39213689
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShin,
а почему нельзя использовать RecordSource (наше фсе)
me.RecordSource="сформированная,в зависимости от чего-либо, строка SQL"
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39213748
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Retvisan,

Мое сообщение 19047429 видели?
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39213761
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuа почему нельзя использовать RecordSource (наше фсе)
Конечно можно. Там вообще есть простор для творчества, ибо код в существующем виде не блещет красотой :)
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39213788
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

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

https://cloud.mail.ru/public/6r5R/UBc8Xd93U

немного запоздал с этим сообщением. Начал делать по Вашему совету, но как-то не клеиться вылетает ошибка.
я добавил этот код к блокам переключателей
Код: vbnet
1.
2.
3.
4.
5.
If ChooseCar3 <> 3 Then 
  strFilter = strFilter & _ 
              IIf(FlagOrAnd, " OR", " AND") & " [carriage3] " & _
              Choose(ChooseCar3, "<>", "=") & "0" 
 End If 


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

возможноо забыли пробелы
Код: vbnet
1.
IIf(FlagOrAnd, " OR ", " AND ") & " [carriage3] " & _
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39216971
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКАRetvisan,

возможноо забыли пробелы
Код: vbnet
1.
IIf(FlagOrAnd, " OR ", " AND ") & " [carriage3] " & _

Ничего я не забыла, все пробелы на месте
Код: vbnet
1.
IIf(FlagOrAnd, " OR", " AND") & " [carriage3] " & _     
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39216975
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Retvisan__Michelle,

https://cloud.mail.ru/public/6r5R/UBc8Xd93U

немного запоздал с этим сообщением. Начал делать по Вашему совету, но как-то не клеиться вылетает ошибка.
я добавил этот код к блокам переключателей
Код: vbnet
1.
2.
3.
4.
5.
If ChooseCar3 <> 3 Then 
  strFilter = strFilter & _ 
              IIf(FlagOrAnd, " OR", " AND") & " [carriage3] " & _
              Choose(ChooseCar3, "<>", "=") & "0" 
 End If 


и вывел дополнительный флажок FlagOrAnd, только не совсем понимаю как для него будут действовать значения и/или которые есть в вашем кодеЭто не добавлять надо.
Это ВМЕСТО!!!
ВМЕСТО вот этого Вашего
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
With Me 
If (.ChooseCar3 = 1) Then 
strFilter = strFilter & " and [carriage3] not like 0" 
End If 
If (.ChooseCar3 = 2) Then 
strFilter = strFilter & " and [carriage3] like 0" 
End If If (.ChooseCar3 = 3) Then 
End If 
End With 

Бегло посмотрела то, что Вы выложили.
Доколе будете эти бессмысленные LIKE множить?!
Подробнее чуть позже, сейчас некогда.
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39217585
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Retvisan,
Выкладываю БД с переделками.

1. Заменен источник данных формы.
Было
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT Powertrain.kVili25kV, Powertrain.Beregpit_380V, Powertrain.Bortnapr_110V, Powertrain.Obestochen_poezd, 
Powertrain.Zazemlen, Powertrain.Davleniev_HM, Powertrain.Davleniev_TM, Stage.L, Stage.N, Stage.IS510, Stage.IS520, Stage.IS530, 
Stage.R1, Stage.R2, Stage.R3, Stage.R4, Stage.R5, Stage.vneplan, 
vagony_bez_materiala.vagon01, vagony_bez_materiala.vagon02, vagony_bez_materiala.vagon03, vagony_bez_materiala.vagon04, 
vagony_bez_materiala.vagon05, vagony_bez_materiala.vagon06, vagony_bez_materiala.vagon07, vagony_bez_materiala.vagon08, 
vagony_bez_materiala.vagon09, vagony_bez_materiala.vagon10 
FROM Powertrain, Stage, vagony_bez_materiala;

Стало
Код: sql
1.
2.
3.
4.
SELECT * 
FROM Powertrain AS P INNER JOIN 
(Stage AS S INNER JOIN vagony_bez_materiala AS V ON S.Step_id=V.vagon_id) 
ON P.Power_id=S.Step_id;

Ваше
Код: sql
1.
FROM Powertrain, Stage, vagony_bez_materiala

дает 15878 * 15878 * 15878 = 4 003 016 616 152 записей. В форме даже количество записей из-за этого не показывается – не может справиться.
В каждой из этих таблиц по 15878 записей, наборы ключей для все таблиц совпадают.
Но почему во всех таблицах эти ключи – счетчики? Счетчиком этот ключ должен быть в ведущей таблице, в двух других – длинное целое.
Все три таблицы есть в схеме данных, но связей между ними нет. А надо.

2. В таблицах Powertrain и Stage изменен размер всех текстовых полей.
Было 255, стало 3.

3. В таблице vagony_bez_materiala изменен тип полей vagon01 .... vagon10.
Было Текстовый 255, стало Числовой Байт.

4. В форме добавлена кнопка СБРОС ВСЕХ ФИЛЬТРОВ. В коде – процедура обработки нажатия.
Для быстрого возврата в исходное состояние.

5. Применяемый фильтр показывается как подпись формы.
Для отслеживания и контроля фильтрации.

6. Для критериев удалены процедуры обработки AfterUpdate, вместо этого в конструкторе сделан вызов сразу FilterForm().
Для LVybor, NVybor, IS510Vybor, IS520Vybor, IS530Vybor, R1Vybor, ..., R5Vybor, VneplanVybor.
Для V1, ...., V10.

7. Для критериев групп "Высокое напряжение", ....., "Давление ТМ" добавлена предварительная процедура
"увязки галочек".

При выборе all сбрасываются остальные, при выборе ч.-л. из не-all сбрасывается all.
Чтобы не снимать "лишнее" вручную и не дергать дополнительно фильтр.

8. Переработана обработка критериев для вагонов с учетом влияния OR/AND только на вагоны.
Теперь так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
 s = ""
 For i = 1 To 10
  If (Me("V" & i) <> 3) Then
   s = s & _
       IIf(s <> "", IIf(FlagOrAnd, " OR ", " AND "), "") & _
       "[vagon" & Format(i, "00") & "]" & _
       Choose(Me("V" & i), "<>", "=") & "0"
  End If
 Next


9. Ну, и некоторые "косметические" переделки кода.

_______________________________________________________
Архив из трех частей.
Посмотрите, что получилось.
Обращайте внимание на текст фильтра в заголовке формы.
Это было нужно или нет?
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39217586
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39217587
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39217618
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Retvisan,

таблица вагонов оказывается не только 0 и 1
vagon_idvagon01vagon02vagon03vagon04vagon05vagon06vagon07vagon08vagon09vagon10Oper_id239220100000000032392260000000001423922800001000005239234010,50000000623925000000000,510723925211111111118239646001000010025239680100100100112407388888888888124074288888888882240757444444444432407604444444444424076944444444445240772444444444462408184444444444122408331111011111224085601200002101240858042000024022408630110000110324086903100001304241509100000000015241512100000000016
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39218062
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

Спасибо огромное!!!вроде все понял, щас применю на свою БД!
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39218069
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

у меня не получается распокавать архивы, видимо, побиты. Можете не так сильно их сжать? или на какой-нибудь файлообменник залить?
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39218113
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Retvisan__Michelle,

у меня не получается распокавать архивы, видимо, побиты. Можете не так сильно их сжать? или на какой-нибудь файлообменник залить?Это не архивы.
Это один архив, состоящий из трех частей.
Посадите их все в одну папку и только для первой части, I_ILI_New.7z.001, выберите Extract Here.
Все распакуется в один файл БД I_ILI_New.mdb.

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

а как убрать текст фильтра в заголовке формы?
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39218150
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Retvisan,

Закомментируйте последнюю строку в FilterForm()
Код: vbnet
1.
Me.Caption = strFilter
...
Рейтинг: 0 / 0
Настройка логики переключений группы переключателей
    #39218246
Retvisan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

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


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