|
Несоответствие типов
|
|||
---|---|---|---|
#18+
Здравствуйте! Во вложенном файле присутствует excel-ий файл с макросом. Там присутствует SQL-запрос к excel-ому листу. SQL-запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Если нажать на кнопку, то запрос работает. А если во вкладке "Исходные данные" удалить ячейки, например, D2 или D3, то пишет "[Microsoft][Драйвер ODBC Excel] Несоответствие типов данных в выражении условия отбора". Как правильно скорректировать в выделенном тексте SQL-запроса так, чтобы учитывался данный фактор? Поле "Обработанная мера" это поле в числовом формате. Обратите внимание на поле "Мера2". Если в исходнике в колонке в первых строках пусто, то SQL колонку определяет как текстовый. Поэтому пришлось создавать поля как обрабатываемая мера. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2017, 09:15 |
|
Несоответствие типов
|
|||
---|---|---|---|
#18+
Уппс. В выделенном запросе вместо "Март 2017" было "Апрель 2017". Исправил Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Еще раз выкладываю файл ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2017, 09:42 |
|
Несоответствие типов
|
|||
---|---|---|---|
#18+
ferzmikkпишет "[Microsoft][Драйвер ODBC Excel] Несоответствие типов данных в выражении условия отбора".ferzmikkЕсли в исходнике в колонке в первых строках пусто, то SQL колонку определяет как текстовый.Ну да... а явно привести к нужному типу? про CDbl() или там CCur() не слышал, что ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2017, 09:43 |
|
Несоответствие типов
|
|||
---|---|---|---|
#18+
Не понимаю, зачем вам весь этот огород с запросом, если итог по строке можно получить формулой с использованием вложенных функций ЕСЛИ и ЕПУСТО. Причем получение исходных данных можно настроить так, чтоб формула автоматически копировалась во все строки. Но если хочется запросом, то можно попробовать так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
У вас в выражении `Мера Апрель 2017` повторяется, а `Мера Март 2017` отсутствует !? Кстати, я сомневаюсь, что проверка пустой ячейки на IsNull даст правильный результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2017, 10:02 |
|
Несоответствие типов
|
|||
---|---|---|---|
#18+
Анатолий ( Киев )Но если хочется запросом, то можно попробовать так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Не работает так Кстати, я сомневаюсь, что проверка пустой ячейки на IsNull даст правильный результат.А как правильно надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2017, 14:18 |
|
Несоответствие типов
|
|||
---|---|---|---|
#18+
Проблему решил с помощью функции CStr и CVar. Код: sql 1. 2. 3.
Только колонка получается вся текстовая. SQL может возвращать данные так, чтобы в одной колонке в каких строках были как числовые значения, а в других как текстовые? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2017, 14:20 |
|
Несоответствие типов
|
|||
---|---|---|---|
#18+
ferzmikkТолько колонка получается вся текстовая. А какой результат ты ожидал, используя функцию приведения к тексту? ferzmikkчтобы в одной колонке в каких строках были как числовые значения, а в других как текстовые Ну так для каждого поля - свою конвертирующую функцию: Код: vbnet 1. 2. 3. 4.
Иногда для правильной интерпретации приходится выполнять двойное преобразование и/или использовать NZ(). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2017, 14:44 |
|
|
start [/forum/topic.php?fid=45&fpage=72&tid=1612285]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 294ms |
total: | 427ms |
0 / 0 |