|
|
|
Выборка по Like в динозавре до 1НФ
|
|||
|---|---|---|---|
|
#18+
Есть такая задача: В одном поле ненормализованной не_моей базы есть а) имена отделов одно поле-одно имя (все ок) б) имена отделов через запятую или через пробел (ужас до 1 нормформы!!!) например: АО АОТУ,АО ИОАТ КАТУО,АОК АОК ИОАТ КАТУО АО АО,АОТУ КАТУО АОК Нужно: в запросе получить все поля, в которых присутствует выбранный в комбосписке в форме отдел например: выбрали АО, должны получить: АО АОТУ,АО ИОАТ КАТУО,АОК АО АО,АОТУ КАК это сделать? если ставить условие Like forms!forma!combo - выдает только поля, строго равные АО если прибавить звезды, получаем в выборке и АОТУ, и АОК - то есть все слова, где встречаем сочетание АО Неужель тока выписыванием функции?.. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2003, 10:16 |
|
||
|
Выборка по Like в динозавре до 1НФ
|
|||
|---|---|---|---|
|
#18+
Конечно функция, а то и цикл по записям в Recordset-e с многочисленными проверками - будет надежнее. В этом, конкретном, случае работает строка (указанная в построителе): "AO" Or Like "AO,*" Or Like "*,AO" Or Like "*,AO[ ;,]*" Т.е. единственная-первая-последняя-в середине после запятой и с пробелом или запятой после нее. Кстати, в вашем примере "АО" написано и eng., и rus. буквами. Если так и в таблице, то замучаетесь фильтровать. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2003, 11:02 |
|
||
|
Выборка по Like в динозавре до 1НФ
|
|||
|---|---|---|---|
|
#18+
Спасибо! Люди, ау! Еще варианты?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2003, 11:18 |
|
||
|
Выборка по Like в динозавре до 1НФ
|
|||
|---|---|---|---|
|
#18+
Где-то тут ошибочка в постановке задачи например: выбрали АО, должны получить: АО АОТУ,АО ИОАТ КАТУО,АОК АО АО,АОТУ КАК это сделать? если ставить условие Like forms!forma!combo - выдает только поля, строго равные АО если прибавить звезды, получаем в выборке и АОТУ , и АОК - то есть все слова, где встречаем сочетание АО Интуитивно понятно в общем-то, но все-таки может еще раз сформулируешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2003, 11:23 |
|
||
|
Выборка по Like в динозавре до 1НФ
|
|||
|---|---|---|---|
|
#18+
Формулирую: выбрали АО - должны получить все записи, где встречается это АО но не те, где оно только является частью названия другого отдела (АОТУ, АОК и т.п) то бишь АО, АОТУ - нужно АОТУ, АОК - нет //к первому ответу: латиницы нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2003, 11:37 |
|
||
|
Выборка по Like в динозавре до 1НФ
|
|||
|---|---|---|---|
|
#18+
Ну тогда вариант, предложенный Анатолием, имхо единственный Like "АО" or Like "[здесь перечень допустимых разделителей]АО*" or Like "АО[здесь перечень допустимых разделителей]*" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2003, 11:45 |
|
||
|
Выборка по Like в динозавре до 1НФ
|
|||
|---|---|---|---|
|
#18+
Хорошо тогда еще один вопрос: как на лету сменить условие по like? только открыв dao querydefs и переписав вручную where или ж можно выписать функцию на вба, чтобы она вернула полный текст условия в это самое where, и втыкнуть ее в поле "условие" конструктора?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2003, 11:50 |
|
||
|
Выборка по Like в динозавре до 1НФ
|
|||
|---|---|---|---|
|
#18+
Тут уже вариантов больше (как я понимаю все происходит на форме) - сделать на вба и формировать источник формы - сделать на форме помимо основного поля с условием еще два невидимых в которых источник 1 = [поле с условием] & "[,;]*" 2 = "[,;]*" & [поле с условием] а в запросе ставить where like Forms![..]![поле с условием] or like Forms![..]![поле 1] or like Forms![..]![поле 2] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2003, 11:58 |
|
||
|
Выборка по Like в динозавре до 1НФ
|
|||
|---|---|---|---|
|
#18+
Я там немного напутал с источниками полей чрезе буфер копировал, но идея думаю понятна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2003, 11:59 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32317799&tid=1678384]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
136ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 461ms |

| 0 / 0 |
