Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Выборка по Like в динозавре до 1НФ / 10 сообщений из 10, страница 1 из 1
07.11.2003, 10:16
    #32317764
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по Like в динозавре до 1НФ
Есть такая задача:
В одном поле ненормализованной не_моей базы есть
а) имена отделов одно поле-одно имя (все ок)
б) имена отделов через запятую или через пробел (ужас до 1 нормформы!!!)
например:

АО
АОТУ,АО ИОАТ КАТУО,АОК
АОК
ИОАТ
КАТУО
АО
АО,АОТУ
КАТУО АОК

Нужно:

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

например: выбрали АО, должны получить:

АО
АОТУ,АО ИОАТ КАТУО,АОК
АО
АО,АОТУ


КАК это сделать?

если ставить условие Like forms!forma!combo

- выдает только поля, строго равные АО

если прибавить звезды,
получаем в выборке и АОТУ, и АОК - то есть все слова, где встречаем сочетание АО

Неужель тока выписыванием функции?..
Спасибо!
...
Рейтинг: 0 / 0
07.11.2003, 11:02
    #32317777
Выборка по Like в динозавре до 1НФ
Конечно функция, а то и цикл по записям в Recordset-e с многочисленными проверками - будет надежнее.
В этом, конкретном, случае работает строка (указанная в построителе):
"AO" Or Like "AO,*" Or Like "*,AO" Or Like "*,AO[ ;,]*"
Т.е. единственная-первая-последняя-в середине после запятой и с пробелом или запятой после нее.
Кстати, в вашем примере "АО" написано и eng., и rus. буквами. Если так и в таблице, то замучаетесь фильтровать. :)
...
Рейтинг: 0 / 0
07.11.2003, 11:18
    #32317783
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по Like в динозавре до 1НФ
Спасибо!

Люди, ау!
Еще варианты?..
...
Рейтинг: 0 / 0
07.11.2003, 11:23
    #32317785
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по Like в динозавре до 1НФ
Где-то тут ошибочка в постановке задачи


например: выбрали АО, должны получить:

АО
АОТУ,АО ИОАТ КАТУО,АОК
АО
АО,АОТУ


КАК это сделать?

если ставить условие Like forms!forma!combo

- выдает только поля, строго равные АО

если прибавить звезды,
получаем в выборке и АОТУ , и АОК - то есть все слова, где встречаем сочетание АО

Интуитивно понятно в общем-то, но все-таки
может еще раз сформулируешь
...
Рейтинг: 0 / 0
07.11.2003, 11:37
    #32317794
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по Like в динозавре до 1НФ
Формулирую:
выбрали АО - должны получить все записи, где встречается это АО
но не те, где оно только является частью названия другого отдела (АОТУ, АОК и т.п)

то бишь АО, АОТУ - нужно

АОТУ, АОК - нет


//к первому ответу: латиницы нет
...
Рейтинг: 0 / 0
07.11.2003, 11:45
    #32317799
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по Like в динозавре до 1НФ
Ну тогда вариант, предложенный Анатолием, имхо единственный

Like "АО" or Like "[здесь перечень допустимых разделителей]АО*" or Like "АО[здесь перечень допустимых разделителей]*"
...
Рейтинг: 0 / 0
07.11.2003, 11:50
    #32317801
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по Like в динозавре до 1НФ
Хорошо

тогда еще один вопрос:
как на лету сменить условие по like?

только открыв dao querydefs и переписав вручную where

или ж можно выписать функцию на вба, чтобы она вернула полный текст условия в это самое where, и втыкнуть ее в поле "условие" конструктора?...
...
Рейтинг: 0 / 0
07.11.2003, 11:58
    #32317803
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по Like в динозавре до 1НФ
Тут уже вариантов больше (как я понимаю все происходит на форме)
- сделать на вба и формировать источник формы
- сделать на форме помимо основного поля с условием еще два невидимых
в которых источник
1 = [поле с условием] & "[,;]*"
2 = "[,;]*" & [поле с условием]

а в запросе ставить
where like Forms![..]![поле с условием] or like Forms![..]![поле 1] or like Forms![..]![поле 2]
...
Рейтинг: 0 / 0
07.11.2003, 11:59
    #32317806
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по Like в динозавре до 1НФ
Я там немного напутал с источниками полей чрезе буфер копировал,
но идея думаю понятна.
...
Рейтинг: 0 / 0
07.11.2003, 15:38
    #32317906
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по Like в динозавре до 1НФ
Код: plaintext
 ","  & Replace(Поле,  " " ,  "," ) &  ","  Like  "*,"  & Отдел &  ",*" 
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Выборка по Like в динозавре до 1НФ / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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