powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Несоответствие типов данных
20 сообщений из 20, страница 1 из 1
Несоответствие типов данных
    #39750140
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выражение2: Mid([MAIN]![MARKA];Len([MAIN]![MARKA])-2;1)
В запросе есть такое выражение. Исправно работает - выдает результат.
Задача - отобрать все строки, где оно не является точкой "."
Никак не могу сообразить - как условие написать, как не извращаюсь - Несоответствие типов данных......
Как правильно написать здесь условие?
...
Рейтинг: 0 / 0
Несоответствие типов данных
    #39750154
Swa111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serg197311,

Код: plaintext
1.
MARKA <> '.'

если нужно что бы не оканчивалось на "." используем функцию right

Код: plaintext
1.
right(MARKA,1) <> '.'
...
Рейтинг: 0 / 0
Несоответствие типов данных
    #39750193
Serg197311Задача - отобрать все строки, где оно не является точкой "."
WHERE Mid([MAIN]![MARKA];Len([MAIN]![MARKA])-2;1) <>"."

или так:
WHERE [MAIN]![MARKA] Like "*[!.]??"

А что вы указываете, если получаете "Несоответствие типов данных"?
...
Рейтинг: 0 / 0
Несоответствие типов данных
    #39750194
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если бы все было так просто.... Я таки не совсем идиот, кавычки конечно пробовал.... Фигвам короче

Код: sql
1.
2.
3.
4.
SELECT DISTINCT MAIN.*, Mid([MAIN]![MARKA],Len([MAIN]![MARKA])-2,1) AS Выражение2
FROM MAIN INNER JOIN MAIN1 ON MAIN.CODE = MAIN1.coded
WHERE (((Mid([MAIN]![MARKA],Len([MAIN]![MARKA])-2,1))='.') AND ((MAIN.MARKA) Like 'АБВК.83*') AND ((MAIN.FOLD)=False) AND ((MAIN1.sernn)=12) AND ((MAIN.DOC) Is Null Or (MAIN.DOC)='') AND ((InStr(1,[MAIN]![MARKA],'-'))=0))
ORDER BY MAIN.CODE, MAIN.CODE;


Вот полный текст запроса...
...
Рейтинг: 0 / 0
Несоответствие типов данных
    #39750199
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов Анатолий WHERE Mid([MAIN]![MARKA];Len([MAIN]![MARKA])-2;1) <>"." - пробовал, посылает по тому же адресу

Кривцов Анатолийили так:
WHERE [MAIN]![MARKA] Like "*[!.]??"

А что вы указываете, если получаете "Несоответствие типов данных"? и так посылает.......
...
Рейтинг: 0 / 0
Несоответствие типов данных
    #39750202
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов Анатолий
А что вы указываете, если получаете "Несоответствие типов данных"?
Ну до сих пор я пытался привести типы данных в соответствие И до сих пор у меня это получалось.....
...
Рейтинг: 0 / 0
Несоответствие типов данных
    #39750210
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg197311,

Еще:
Код: sql
1.
Left(Right(MARKA,3),1) <> "."
...
Рейтинг: 0 / 0
Несоответствие типов данных
    #39750211
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg197311
Код: sql
1.
Len([MAIN]![MARKA])-2,1))='.') 



Вот полный текст запроса...жжоте не по-деЦЦки...
Функция значение какого типа возвращает?
И с чем вы сравниваете тип Long, товарищ?
...
Рейтинг: 0 / 0
Несоответствие типов данных
    #39750212
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а, пардон... Сам сижЮ и туплЮ...
...
Рейтинг: 0 / 0
Несоответствие типов данных
    #39750231
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__MichelleSerg197311,

Еще:
Код: sql
1.
Left(Right(MARKA,3),1) <> "."


Я прям в шоке..... Работает..... Спасибо огромное!!!!
Но вопрос остался..... почему же Mid(), который тоже стринг возвращает, не прокатывал?????
...
Рейтинг: 0 / 0
Несоответствие типов данных
    #39750238
Serg197311Но вопрос остался..... почему же Mid(), который тоже стринг возвращает, не прокатывал????? У вас есть пустые поля "MARKA" или с текстом менее 3-х символов?
...
Рейтинг: 0 / 0
Несоответствие типов данных
    #39750245
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов АнатолийSerg197311Но вопрос остался..... почему же Mid(), который тоже стринг возвращает, не прокатывал????? У вас есть пустые поля "MARKA" или с текстом менее 3-х символов?
В таблице вообще есть. В записях отобранных запросом без этого условия - нет. Ключевая непонятка для меня - если убрать это условие и оставить просто выражение Mid(....), то запрос отрабатывает, и выводится то что надо.... А вот как на него условие ставишь - несоответствие типов..... Да какое там блин несоответствие то быть может? стринг и стринг... или я чего то не догоняю....
...
Рейтинг: 0 / 0
Несоответствие типов данных
    #39750258
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите этот скрин и ответьте на вопрос: каково значение 2 аргумента функции при длине строки 0-2 и будет ли функция работать,если аргумент <=0 (Рекомендую применять тривиальный LIKE)
...
Рейтинг: 0 / 0
Несоответствие типов данных
    #39750262
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuПосмотрите этот скрин и ответьте на вопрос: каково значение 2 аргумента функции при длине строки 0-2 и будет ли функция работать,если аргумент <=0 (Рекомендую применять тривиальный LIKE)
Like в той конструкции тоже не работал - пробовал
...
Рейтинг: 0 / 0
Несоответствие типов данных
    #39750266
Фотография Лапух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прогер_самоучка...а, пардон... Сам сижЮ и туплЮ....
Да ладно.
С таким то количеством полезных сообщений?
Наверное как и я частенько просто прикалываешься прикалываетесь.
...
Рейтинг: 0 / 0
Несоответствие типов данных
    #39750272
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuПосмотрите этот скрин и ответьте на вопрос: каково значение 2 аргумента функции при длине строки 0-2 и будет ли функция работать,если аргумент <=0
Почитайте все вышеописанное и пожалуйста ответьте на вопрос - почему конструкция с left-right работает, а конструкция с mid - нет
...
Рейтинг: 0 / 0
Несоответствие типов данных
    #39750305
Serg197311В таблице вообще Null есть. В записях отобранных запросом без этого условия - нет. У вас в WHERE это условие указано первым. Попробуйте указать его последним. Или вместо Len([MAIN]![MARKA]) просто указать любое положительное число.
Я это все к чему - Len(Null) вернет Null и он попадает в числовой аргумент Mid. Это может быть причиной несоответствия. В варианте с Left(Right(...)) такой ситуации нет.
Serg197311Ключевая непонятка для меня - если убрать это условие и оставить просто выражение Mid(....), то запрос отрабатывает, и выводится то что надо.... Не понял. Какой "просто Mid(....)" вместо какого усовия? Не просто просто Mid-а?
Serg197311А вот как на него условие ставишь - несоответствие типов..... Да какое там блин несоответствие то быть может? стринг и стринг... или я чего то не догоняю.... Вообще-то Mid, Left, Right принимают и возвращают Null, а вот Mid$, Left$, Right$ - только строку.

ЗЫ.
ORDER BY MAIN.CODE, MAIN.CODE; - одно и то же поле дважды, это описка?
...
Рейтинг: 0 / 0
Несоответствие типов данных
    #39750336
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользовательская функция:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Function my(myStr As String)
Dim dlina
my = False
dlina = Len(myStr)
If dlina > 2 Then
    If Mid(myStr, dlina - 2, 1) = "." Then my = True
End If
End Function

и её применение
Код: vbnet
1.
Выражение1: IIf(Not IsNull([marka]);my([marka]))
...
Рейтинг: 0 / 0
Несоответствие типов данных
    #39750378
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов АнатолийSerg197311В таблице вообще Null есть. В записях отобранных запросом без этого условия - нет. У вас в WHERE это условие указано первым. Попробуйте указать его последним. Или вместо Len([MAIN]![MARKA]) просто указать любое положительное число.
Я это все к чему - Len(Null) вернет Null и он попадает в числовой аргумент Mid. Это может быть причиной несоответствия. В варианте с Left(Right(...)) такой ситуации нет. воооот.... Скорее всего, завтра проверю

Кривцов АнатолийSerg197311Ключевая непонятка для меня - если убрать это условие и оставить просто выражение Mid(....), то запрос отрабатывает, и выводится то что надо.... Не понял. Какой "просто Mid(....)" вместо какого усовия? Не просто просто Mid-а? Если просто вывести выражение Mid([MAIN]![MARKA];Len([MAIN]![MARKA])-2;1) без условия, то запрос отрабатывает. Завтра посмотрю, не было ли там пустых значений в эотм столбце


Кривцов АнатолийЗЫ.
ORDER BY MAIN.CODE, MAIN.CODE; - одно и то же поле дважды, это описка? Ошибка конечно - уже исправил
...
Рейтинг: 0 / 0
Несоответствие типов данных
    #39750556
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пустых строк или ошибок в столбце Выражение2: Mid([MAIN]![MARKA];Len([MAIN]![MARKA])-2;1) нет.
Ну что ж, примем как данность и будем иметь ввиду на будущее. Спасибо всем за помощь!
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Несоответствие типов данных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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