powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Траблы со Switch`em
13 сообщений из 13, страница 1 из 1
Траблы со Switch`em
    #32620188
Фотография Access_Abuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поддерживает ли Свитч 28 вариантов ?
...
Рейтинг: 0 / 0
Траблы со Switch`em
    #32620189
Фотография Access_Abuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вернее даже что делать когда он этого не поддерживает.
...
Рейтинг: 0 / 0
Траблы со Switch`em
    #32620204
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
функцию свою писать - даже если поддерживает ,столь громоздким выражением нереально пользоваться в запросах
...
Рейтинг: 0 / 0
Траблы со Switch`em
    #32620333
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Как минимум 50 вариантов он поддерживает. И мне кажется, что ограничения нет.

Код: plaintext
1.
2.
3.
4.
5.
?switch(false, 1 ,false, 2 ,false, 3 ,false, 4 ,false, 5 ,false, 6 ,false, 7 ,false, 8 ,false, 9 ,false, 10 ,
false, 11 ,false, 12 ,false, 13 ,false, 14 ,false, 15 ,false, 16 ,false, 17 ,false, 18 ,false, 19 ,false, 20 ,
false, 21 ,false, 22 ,false, 23 ,false, 24 ,false, 25 ,false, 26 ,false, 27 ,false, 28 ,false, 29 ,false, 30 ,
false, 31 ,false, 32 ,false, 33 ,false, 34 ,false, 35 ,false, 36 ,false, 37 ,false, 38 ,false, 39 ,false, 40 ,
false, 41 ,false, 42 ,false, 43 ,false, 44 ,false, 45 ,false, 46 ,false, 47 ,false, 48 ,true, 49 ,false, 50 )
  49 

(На строки я поделил для удобочитаемости.)
...
Рейтинг: 0 / 0
Траблы со Switch`em
    #32620652
Фотография Access_Abuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пишу на 28 позиций и получаю в ответете что-то вроде "слишко громоздкое выражение" , the query is to complicated. Такие вот пироги.
Владимир Саныч подскажи плиз еще вот что.
Какой синтаксис будет если в аргумент функиии мне нужно поставить сложное выражение.
Скажем :
SELECT cur_data.F0103 AS [Код группы],
Right$("0000000" & cur_data.F0105, 7) AS [код],
Switch(
cur_data!F0103=04,'Бритвы и Эпиляторы',
cur_data!F0103=07,'Машинки для стрижки',
cur_data!F0103=08,'Фены',
cur_data!F0103=09,'Вытяжки',
cur_data!F0103=10,'Кондиционеры',
cur_data!F0103=12,'Посудомоечные машины',
cur_data!F0103=14,'Поверхности',
cur_data!F0103=16,'Стиральные машины',
cur_data!F0103=17,'Холодильники',
cur_data!F0103=18,'Морозильные камеры',
cur_data!F0103=19, (Выражение),
)
AS Comment,
cur_data.F0202
FROM cur_data
WHERE (((cur_data.F0101)=x))

Где выражение это еще одна функция "SWITCH"

Да вот еще что у меня Аксес 2003 есть 2002.
И если верхний кусок расширить до 28 позиций то работать не будет, можешь попробовать.


Shuhard писать свою функцию... эээ... Бивас слыш чувак, а что такое своя функция... ЭЭЭ... Я пока чайник даже представления не имею как писать что-то свое на ВБА. Буду признателен за совет с чего начать.
...
Рейтинг: 0 / 0
Траблы со Switch`em
    #32620743
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
особенность switch: проверяет все условия, даже если то, которое нужно находится первым в списке.
...
Рейтинг: 0 / 0
Траблы со Switch`em
    #32620783
Фотография Access_Abuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ищ
Сенкс ... Буду знать что к памяти Свитч относится прожорливо.
Плиз объясни что делать то нужно ?
Потому что я в отчетах утону такими темпами.
...
Рейтинг: 0 / 0
Траблы со Switch`em
    #32620787
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычно никто не пытается делать такие свитчи. В данном случае, наверное, нужно просто создать справочную таблицу и сделать подстановку в cur_data.
...
Рейтинг: 0 / 0
Траблы со Switch`em
    #32620825
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Access_Abuser"слишко громоздкое выражение" , the query is to complicated.
Query is too compex. Это значит, что запрос слишком сложный. Свитч не виноват, он просто стал последней каплей. Упрощать можно за счет чего угодно.

Access_AbuserSELECT cur_data.F0103 AS [Код группы],
Right$("0000000" & cur_data.F0105, 7) AS [код],
Switch(
cur_data!F0103=04,'Бритвы и Эпиляторы',
cur_data!F0103=07,'Машинки для стрижки',
cur_data!F0103=08,'Фены',
cur_data!F0103=09,'Вытяжки',
cur_data!F0103=10,'Кондиционеры',
cur_data!F0103=12,'Посудомоечные машины',
cur_data!F0103=14,'Поверхности',
cur_data!F0103=16,'Стиральные машины',
cur_data!F0103=17,'Холодильники',
cur_data!F0103=18,'Морозильные камеры',
cur_data!F0103=19, (Выражение),
)
Во-первых, тут лишняя запятая в конце.
Во-вторых, я не понял, в чем вопрос. :^)
В-третьих, я бы завел таблицу с этими данными, включил бы ее в запрос и выводил бы поле из нее, а не свитч. Задно будет легче вносить изменения, если содержимое этого списка изменится.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 04  Бритвы и Эпиляторы
 07  Машинки для стрижки
 08  Фены
 09  Вытяжки
 10  Кондиционеры
 12  Посудомоечные машины
 14  Поверхности
 16  Стиральные машины
 17  Холодильники
 18  Морозильные камеры
 19  (Выражение)
...
Рейтинг: 0 / 0
Траблы со Switch`em
    #32620858
Фотография Access_Abuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander G Сенск...
А теперь тупой вопрос.
А через какую функцию делать подстановку...
Что-то я не врубаюсь.
Единственная мысль сделать таблицу с этими данными.
Сделать связь по группе.
Так что ли ?
Если есть альтернатива готов послушать.
Хотя резоннее всего будет действительно свящанная таблица.
И как я раньше не додумался...
ТТ.
...
Рейтинг: 0 / 0
Траблы со Switch`em
    #32620903
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Access_AbuserБуду знать что к памяти Свитч относится прожорливо.
Не столько к памяти, сколько к времени исполнения.

А Alexander G про справочник действительно сказал раньше меня, прошу прощения.
...
Рейтинг: 0 / 0
Траблы со Switch`em
    #32620975
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно тело запроса формировать динамически
если уж так хочешь Свитч использовать, тем более что их 2
...
Рейтинг: 0 / 0
Траблы со Switch`em
    #32622090
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Access_Abuser Alexander G Сенск...
А теперь тупой вопрос.
А через какую функцию делать подстановку...
Что-то я не врубаюсь.
Единственная мысль сделать таблицу с этими данными.
Сделать связь по группе.
Так что ли ?
Если есть альтернатива готов послушать.
Хотя резоннее всего будет действительно свящанная таблица.
И как я раньше не додумался...
ТТ.
Прошу извинить, я сейчас в отпуске, заглянул на минуту, и ответить смог не сразу. Все мысли верные - для cur_data.F0103 в конструкторе делаем подстановку из справочной таблицы.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Траблы со Switch`em
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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