|
|
|
Like в Модуле
|
|||
|---|---|---|---|
|
#18+
Подскажите, плз, что неправильно пишу в модуле: Function Filtr5210() Filtr5210 = "Like ' 5290*' Or Like '5230*' Or Like '5140*' Or Like '5131*'" End Function Этот модуль используется как условие отбора в запросе. Запрос игнорирует условие и выдает пустую строку. Спасибо Stepler (щёлк-щёлк!!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 09:12 |
|
||
|
Like в Модуле
|
|||
|---|---|---|---|
|
#18+
Stepler Этот модуль используется как условие отбора в запросе. Поподробнее, как используется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 09:16 |
|
||
|
Like в Модуле
|
|||
|---|---|---|---|
|
#18+
Просто в запросе по одному из полей табл.: SELECT ДляИзмБ.* FROM ДляИзмБ WHERE (((ДляИзмБ.ComboDeptCode) Like FiltrVce() Or (ДляИзмБ.ComboDeptCode) Like Filtr5210())) WITH OWNERACCESS OPTION; Stepler (щёлк-щёлк!!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 09:20 |
|
||
|
Like в Модуле
|
|||
|---|---|---|---|
|
#18+
ну и получаешь из Like Filtr5210(): Like Like '5290*' Or Like '5230*' Or Like '5140*' Or Like '5131*' что есть не правильно Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 09:23 |
|
||
|
Like в Модуле
|
|||
|---|---|---|---|
|
#18+
Убери лишний Like... Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 09:31 |
|
||
|
Like в Модуле
|
|||
|---|---|---|---|
|
#18+
а ф-я FiltrVce() работает нормально? Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 09:32 |
|
||
|
Like в Модуле
|
|||
|---|---|---|---|
|
#18+
Да, нормально... Если использовать одну составляющую в модуле, то тоже работает. Как добавляю "Or" с доп условием - пустая строка... Stepler (щёлк-щёлк!!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 09:37 |
|
||
|
Like в Модуле
|
|||
|---|---|---|---|
|
#18+
я бы написал ф-ю следующим образом: Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 09:39 |
|
||
|
Like в Модуле
|
|||
|---|---|---|---|
|
#18+
Он все что возвращает функция, воспринимает как единую строку по которой надо искать. Нужно формировать строку запроса в VBA и засовывать в SQL запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 09:42 |
|
||
|
Like в Модуле
|
|||
|---|---|---|---|
|
#18+
SteplerЭто равносильно Filtr5210 = "*", т.е выдается весь список целиком... Если это мне, то подумай над критериями отбора... и вообще если не получаеттся создай сперва конструктором работающий прототип запроса, а потом унифицируй его... Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 10:05 |
|
||
|
Like в Модуле
|
|||
|---|---|---|---|
|
#18+
В том -то и дело, что просто в конструкторе при условии более расширенном всё работает, проблемма как это условие записать через модуль... Stepler (щёлк-щёлк!!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 10:11 |
|
||
|
Like в Модуле
|
|||
|---|---|---|---|
|
#18+
покажи запрос из конструктора Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 10:13 |
|
||
|
Like в Модуле
|
|||
|---|---|---|---|
|
#18+
Это часть строки условия отбора... SELECT ДляИзмБ.* FROM ДляИзмБ WHERE (((ДляИзмБ.ComboDeptCode) Like "5210*" Or (ДляИзмБ.ComboDeptCode) Like "5240*" Or (ДляИзмБ.ComboDeptCode) Like "5140*" Or (ДляИзмБ.ComboDeptCode) Like "3340*" Or (ДляИзмБ.ComboDeptCode) Like "5290*Or" Like "5130*")) WITH OWNERACCESS OPTION; Stepler (щёлк-щёлк!!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 10:20 |
|
||
|
Like в Модуле
|
|||
|---|---|---|---|
|
#18+
мдяяя..... и работает??? смущает меня вот это (ДляИзмБ.ComboDeptCode) Like "5290*Or" Like "5130*" Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 10:26 |
|
||
|
Like в Модуле
|
|||
|---|---|---|---|
|
#18+
Ну, конечно, это обрезок...простоя "ужал" строку условия. На самом деле там ещё порядка 20-ти параметров по такому же принципу (ДляИзмБ.ComboDeptCode) Like "ПАРАМЕТР*" Or ... Stepler (щёлк-щёлк!!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 10:29 |
|
||
|
Like в Модуле
|
|||
|---|---|---|---|
|
#18+
если предложенный мною вариант не работает то попробуй последовать совету Alexander G Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 10:42 |
|
||
|
Like в Модуле
|
|||
|---|---|---|---|
|
#18+
попробуй сформировать требуемое в конструкторе запросов и увидишь как треба ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 11:48 |
|
||
|
Like в Модуле
|
|||
|---|---|---|---|
|
#18+
Ребята, с конструктора запроса всё и началось.... Запросом из табл. делается выборка при определенных условиях - Часть условий: SELECT ДляИзмБ.* FROM ДляИзмБ WHERE (((ДляИзмБ.ComboDeptCode) Like "5210*" Or (ДляИзмБ.ComboDeptCode) Like "5240*" Or (ДляИзмБ.ComboDeptCode) Like "5140*" Or (ДляИзмБ.ComboDeptCode) Like "3340*" Or (ДляИзмБ.ComboDeptCode) Like и т.д. (24 условия). Появилась необходимость определять условия отбора через запрос с помощью модуля, иначе говоря модуль содержит варианты условий, но НЕСКОЛЬКО параметром условий с Like. Конечно можно было бы на писать 24 модуля (по каждому параметру) и поставить их как условие в запрос, но это чушь - я хочу одним модулем задать все условия. В принципе, я задачу решил уже другим способом, но хочеться знать, как нужно писать в модуле (в VBA) строку, содержащую условия с несколькими параметрами!!! Модераторы-знатоки-асы !!! где вы? Stepler (щёлк-щёлк!!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 12:29 |
|
||
|
Like в Модуле
|
|||
|---|---|---|---|
|
#18+
ЗАпрос это инетрпретируемая строка. Like - это часть интерпретируемой строки. функции в SQL подставляются на этапе исполнения, т.е. после интерпретации. Или делай WHERE F(значение_поля) = True (где в F проверяй Like по всем условиям, но эта проверка у тебя осуществится в VBA, а в SQL ты вернешь значение (а не строку с Лайками-Белками-Стрелками)) либо шей строку sSQL = "Select.... WHERE " & F(имя_поля) & ";" тогда в F ты можешь составить строку с Like для интерепретации в SQL (SQL получит "сшитую" тобой строку со всеми подстановками) второе обычно позволяет воспользоваться индексами.(а не прогонкой по всей таблице) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2004, 12:57 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1645&tid=1675207]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 337ms |

| 0 / 0 |
