powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Ошибка Несоответствие
16 сообщений из 16, страница 1 из 1
Ошибка Несоответствие
    #39288779
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Вот такой простой запрос к листу
Код: sql
1.
2.
3.
4.
5.
6.
	
SELECT
	Т1.`Код ТТ`, 
	IIF(Т1.`Отгрузки шт`>0,1,Null) 
FROM
	`Лист1$` Т1 


Выводит ошибку "[Microsoft][Драйвер ODBC Excel] Несоответствие типов данных в выражении условия отбора.". Ошибка возникает в выделенной строке.

Когда в этом исходнике другие города, то нормально запрос работает.

Как можно исправить такую ошибку?
...
Рейтинг: 0 / 0
Ошибка Несоответствие
    #39288813
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если выгружать так
Код: sql
1.
2.
3.
4.
5.
SELECT
	Т1.`Код ТТ`, 
	Т1.`Отгрузки шт`
FROM
	`Лист1$` Т1 


То в поле `Отгрузки шт` выводится как текст. А в исходнике (Лист1) это поле как число. Почему так происходит?
...
Рейтинг: 0 / 0
Ошибка Несоответствие
    #39289039
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkА в исходнике (Лист1) это поле как число.Возможно в этом столбце есть не только числа, но и текст, и весь столбец привелся к общему знаменателю - текст. Используй Val
...
Рейтинг: 0 / 0
Ошибка Несоответствие
    #39289378
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProferzmikkА в исходнике (Лист1) это поле как число.Возможно в этом столбце есть не только числа, но и текст, и весь столбец привелся к общему знаменателю - текст. Используй Val
Фишка в том, что в исходнике все поле числовое

Если писать так
Код: sql
1.
2.
3.
4.
SELECT
	VAL(Т1.`Отгрузки шт`)
FROM
        `ОИД1$` Т1 

то выходит та же ошибка

Если писать так
Код: sql
1.
2.
3.
4.
SELECT
	ISNUMERIC(Т1.`Отгрузки шт`)
FROM
        `ОИД1$` Т1 

то выводит 0, если в исходнике Null (пусто), и -1, если какое то число в исходнике

Что тут может быть?
...
Рейтинг: 0 / 0
Ошибка Несоответствие
    #39289477
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну приложите образец и тестовый код
...
Рейтинг: 0 / 0
Ошибка Несоответствие
    #39289716
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proну приложите образец и тестовый код
Выкладываю
...
Рейтинг: 0 / 0
Ошибка Несоответствие
    #39290034
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а код-то где? Что тестировать?

И еще - попробуйте заполнить первые 16 строк столбца "отгрузки шт" числами и проверьте.
...
Рейтинг: 0 / 0
Ошибка Несоответствие
    #39290036
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, ну собственно, там источник данных....
В общем, тип столбца определяется по первым 16 значениям столбца, а они у вас пустые, вот столбец и определяется как текстовый
...
Рейтинг: 0 / 0
Ошибка Несоответствие
    #39290093
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProА, ну собственно, там источник данных....
В общем, тип столбца определяется по первым 16 значениям столбца, а они у вас пустые, вот столбец и определяется как текстовый
Да. Если в первой строке пусто, то переводит в текст. Если в первой строке число - то не переводит в текст. Это особенность Access в плане SQL 97 года?

Во вложенном файле пример из другого города, где запрос нормально формируется. Теперь как нужно записать запрос так, чтобы учитывал такой случай?
Код: sql
1.
2.
3.
4.
5.
SELECT
	Т1.`Код ТТ`, 
	Т1.`Отгрузки шт`
FROM
	`Лист1$` Т1 


Можно отсортировать, чтобы значения были наверху, но думаю это не совсем правильно. Может получиться так, что в городе нет отгрузок и опять такую ошибку покажет.

Еще вопрос.
Перед открытием файла нужно в коннекторе изменить путь к файлу с помощью кнопки.

Код: vbnet
1.
2.
ThisWorkbook.Sheets("Лист2").ListObjects(1).QueryTable.Connection
ThisWorkbook.Connections("Подключение").ODBCConnection.Connection

Чем отличаются эти записи? Какой лучше использовать?
...
Рейтинг: 0 / 0
Ошибка Несоответствие
    #39290162
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkЧем отличаются эти записи?Ничем, они ссылаются на один и тот же Connection. Второй вариант, пожалуй, правильней использовать, чтобы не зависеть от жесткого индекса ListObjects(1)
...
Рейтинг: 0 / 0
Ошибка Несоответствие
    #39290167
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
SELECT

	IIf(IsNull(`Отгрузки шт`),Null,Val(`Отгрузки шт`))
FROM
	`Лист1$` Т1
...
Рейтинг: 0 / 0
Ошибка Несоответствие
    #39290219
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Код: sql
1.
2.
3.
4.
5.
SELECT

	IIf(IsNull(`Отгрузки шт`),Null,Val(`Отгрузки шт`))
FROM
	`Лист1$` Т1


Работает. Спасибо!
...
Рейтинг: 0 / 0
Ошибка Несоответствие
    #39290315
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На одном листе таблица, которая получается с помощью MDX-запроса к внешнему соединению. На втором листе таблица, которая получается с помощью локального SQL-запроса к листу 1. Второй лист и является исходником как рассматривался выше. И третий лист, которая получается с помощью локального SQL-запроса ко второму листу.

Может быть, вторую таблицу надо как то особо вывести, чтобы если присутствуют нули в первой строке, то был задан формат поля как число (как Null, но без нулей)?
...
Рейтинг: 0 / 0
Ошибка Несоответствие
    #39290334
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может пусть будут нули, а скрыть их с помощью форматирования?
...
Рейтинг: 0 / 0
Ошибка Несоответствие
    #39290780
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProМожет пусть будут нули, а скрыть их с помощью форматирования?
Как вариант можно. Только в запросе есть Count, который считает количество не пустых. В этом случае придется переписать так
Код: vbnet
1.
Count(IIF(Т1.`Отгрузки шт`>0,1,0))
...
Рейтинг: 0 / 0
Ошибка Несоответствие
    #39317745
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkShocker.Pro
Код: sql
1.
2.
3.
4.
5.
SELECT

	IIf(IsNull(`Отгрузки шт`),Null,Val(`Отгрузки шт`))
FROM
	`Лист1$` Т1


Работает. Спасибо!
Если передать такие расчеты в Access, то там также первые пустые строки определяется как текстовый?
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Ошибка Несоответствие
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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