powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Фильтр в ADO
25 сообщений из 32, страница 1 из 2
Фильтр в ADO
    #32787369
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть 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
Фильтр в ADO
    #32787385
scoritt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно использовать функцию Str(Expression).
...
Рейтинг: 0 / 0
Фильтр в ADO
    #32787400
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И Str(), и CStr являются VBA’шными функциями. ADO их не понимает в Filtre.
...
Рейтинг: 0 / 0
Фильтр в ADO
    #32787401
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В рекордсет можно доп. поля со строковым представлением включить...
...
Рейтинг: 0 / 0
Фильтр в ADO
    #32787408
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В прочем как и IsNull()/ Но тут есть обход.
rst.Filter "Поле = Null"
А вот как обойти непонятливость в вопросе выше.
...
Рейтинг: 0 / 0
Фильтр в ADO
    #32787418
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PAВ рекордсет можно доп. поля со строковым представлением включить...
В моем варианте, к сожалению, это не подходит.
...
Рейтинг: 0 / 0
Фильтр в ADO
    #32787426
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в аналогичных случаях я делаю по-шагам

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

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

и т.д.

Rst.Filter = "format(ПолеДата) like ('*1*')" ежели не ошибаюсь
...
Рейтинг: 0 / 0
Фильтр в ADO
    #32787437
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяRst.Filter = "format(ПолеДата) like ('*1*')" ежели не ошибаюсь
Вадя, ADO не понимает VBA’шных функций.
Ваша строка работать не будет.
...
Рейтинг: 0 / 0
Фильтр в ADO
    #32787475
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если мне не изменяет жена
то скорее всего вместо "*"
надоть использовать "%"
...
Рейтинг: 0 / 0
Фильтр в ADO
    #32787494
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ищ, дорогой, только без кровопролития.
Из хелпа по 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
Фильтр в ADO
    #32787503
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 АлексейЕ

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

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

а разве для того чтобы like отработал так как нужно обязательно преобразовывать?
...
Рейтинг: 0 / 0
Фильтр в ADO
    #32787589
Lenivec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вообще тема использования пользовательских функций в ADO меня тоже волнует, так как работая на DAO активно пользовал такую возможность
...
Рейтинг: 0 / 0
Фильтр в ADO
    #32787607
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Фильтр в ADO
    #32787629
Lenivec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оператор Like (справочник Jet SQL)

Синтаксис:

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

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

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

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

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

like имеет прямое отношение к ADO фильтру см. хелп по ADO.filter
...
Рейтинг: 0 / 0
Фильтр в ADO
    #32788999
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Фильтр в ADO
    #32789058
Lenivec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейК

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


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