Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Фильтр в ADO / 25 сообщений из 32, страница 1 из 2
17.11.2004, 16:35:59
    #32787369
АлексейЕ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
Есть ADO рекордсет. Его надо отфильтровать, при чем все поля числовые, даты привести в текстовой формат и выбрать через Like.
В DAO все было тип топ.
Код: plaintext
1.
MeRst.Filter = "format(ПолеДата) like '*1*' or format(ПолеЧисло) like '*1*'"
Set rst = MeRst.OpenRecordset

А вот ADO использование VBA’шных функций приводит к ошибке.

Код: plaintext
Rst.Filter = "format(ПолеДата) like '*1*' or format(ПолеЧисло) like '*1*'"

Ругается

3001 Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

Ну не понимает он их. А преобразовывать в текстовой формат необходимо в фильтре.
Что можете посоветовать?
...
Рейтинг: 0 / 0
17.11.2004, 16:39:49
    #32787385
scoritt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
Можно использовать функцию Str(Expression).
...
Рейтинг: 0 / 0
17.11.2004, 16:43:55
    #32787400
АлексейЕ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
И Str(), и CStr являются VBA’шными функциями. ADO их не понимает в Filtre.
...
Рейтинг: 0 / 0
17.11.2004, 16:44:08
    #32787401
PA
PA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
В рекордсет можно доп. поля со строковым представлением включить...
...
Рейтинг: 0 / 0
17.11.2004, 16:45:51
    #32787408
АлексейЕ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
В прочем как и IsNull()/ Но тут есть обход.
rst.Filter "Поле = Null"
А вот как обойти непонятливость в вопросе выше.
...
Рейтинг: 0 / 0
17.11.2004, 16:47:36
    #32787418
АлексейЕ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
PAВ рекордсет можно доп. поля со строковым представлением включить...
В моем варианте, к сожалению, это не подходит.
...
Рейтинг: 0 / 0
17.11.2004, 16:50:40
    #32787426
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
в аналогичных случаях я делаю по-шагам

Rst.Filter = "format(ПолеДата) "

Rst.Filter = "txt_gjkt like '*1*' "

и т.д.

Rst.Filter = "format(ПолеДата) like ('*1*')" ежели не ошибаюсь
...
Рейтинг: 0 / 0
17.11.2004, 16:54:41
    #32787437
АлексейЕ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
вадяRst.Filter = "format(ПолеДата) like ('*1*')" ежели не ошибаюсь
Вадя, ADO не понимает VBA’шных функций.
Ваша строка работать не будет.
...
Рейтинг: 0 / 0
17.11.2004, 17:04:30
    #32787475
ищ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
если мне не изменяет жена
то скорее всего вместо "*"
надоть использовать "%"
...
Рейтинг: 0 / 0
17.11.2004, 17:12:45
    #32787494
АлексейЕ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
Ищ, дорогой, только без кровопролития.
Из хелпа по ADO, Find
«In a LIKE clause, you can use a wildcard at the beginning and end of the pattern (for example, LastName Like '*mit*'), or only at the end of the pattern (for example, LastName Like 'Smit*').»

Да и у меня со звездочками работает.
...
Рейтинг: 0 / 0
17.11.2004, 17:15:27
    #32787503
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
2 АлексейЕ

sql89 - *
sql92 - %
...
Рейтинг: 0 / 0
17.11.2004, 17:18:44
    #32787506
АлексейЕ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
АлексейК2 АлексейЕ

sql89 - *
sql92 - %
Ну хорошо, ищ может не беспокоится по поводу супруги.
Но мне это не помогает.
...
Рейтинг: 0 / 0
17.11.2004, 17:22:12
    #32787515
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
ищ не женат, не бери в голову
...
Рейтинг: 0 / 0
17.11.2004, 17:26:33
    #32787526
АлексейЕ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
АлексейКищ не женат, не бери в голову
Ну и славо богу. А то я так за него переживал. :)
...
Рейтинг: 0 / 0
17.11.2004, 17:29:38
    #32787531
ищ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
признаюсь, что не %.
это я у гетца прочитал
он же там и пишет
"со сложными выражениями Find не справляется. Максимум, на что он способен, это понять выражение, сосотоящее из имени поля, оператора сравнения и значения.
...
Рейтинг: 0 / 0
17.11.2004, 17:50:56
    #32787576
Lenivec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
по этому поводу возникает один вопрос, пока один

а разве для того чтобы like отработал так как нужно обязательно преобразовывать?
...
Рейтинг: 0 / 0
17.11.2004, 17:53:26
    #32787589
Lenivec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
а вообще тема использования пользовательских функций в ADO меня тоже волнует, так как работая на DAO активно пользовал такую возможность
...
Рейтинг: 0 / 0
17.11.2004, 18:02:36
    #32787607
АлексейЕ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
Lenivecа разве для того чтобы like отработал так как нужно обязательно преобразовывать?
К сожалению да.

Like Operator
Used to compare two strings.Используемый, чтобы сравнить две вереницы(нити).

Syntax
Код: plaintext
result = string Like pattern

The Like operator syntax has these parts:

Код: plaintext
1.
2.
3.
Part                 Description 
result Required;     any numeric variable. 
string Required;     any string expression. Требуемый; любое выражение вереницы(нити).  
pattern Required;    any string expression conforming to the pattern-matching conventions described in Remarks. 
...
Рейтинг: 0 / 0
17.11.2004, 18:12:23
    #32787629
Lenivec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
Оператор Like (справочник Jet SQL)

Синтаксис:

выражение Like "образец"

Ниже перечислены аргументы оператора Like:

выражение - Выражение SQL, используемое в предложении WHERE.

образец - Строка, с которой сравнивается выражение.

про стринг я тут ничего не нашел, как ни пытался
...
Рейтинг: 0 / 0
17.11.2004, 18:13:42
    #32787634
Lenivec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
а тот лайк который ты привел, это оператор языка программирования, а он никакого отношения к SQL не имеет
...
Рейтинг: 0 / 0
18.11.2004, 12:37:34
    #32788894
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
фишка такая:
чтобы преобразовать число в стринг
можно сложить ее со строкой ,
напимер так
myintfield + " "
или так
myintfield & " "
...
Рейтинг: 0 / 0
18.11.2004, 12:39:10
    #32788904
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
2 Lenivec

like имеет прямое отношение к ADO фильтру см. хелп по ADO.filter
...
Рейтинг: 0 / 0
18.11.2004, 13:08:36
    #32788999
АлексейЕ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
C (&) такая ошибка
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

С (+), такая -
Item cannot be found in the collection corresponding to the requested name or ordinal.

Ну ни как не получается обмануть корявку. :(
...
Рейтинг: 0 / 0
18.11.2004, 13:25:53
    #32789058
Lenivec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
АлексейК

я и не против, но там нигде не написано что выражение обязательно должно формировать текстовое поле (смотри выше, выписка из хелпа)
...
Рейтинг: 0 / 0
18.11.2004, 13:26:54
    #32789067
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в ADO
а что если в исходном запросе сделать такое преобразование - как вычисляемое поле ?
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Фильтр в ADO / 25 сообщений из 32, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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