powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ADODB: обработка NULLs в RecordSet в Excel
9 сообщений из 9, страница 1 из 1
ADODB: обработка NULLs в RecordSet в Excel
    #39281451
makondo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В макросе Excel VBA получаю набор данных из процедуры SQL Server и вставляю в новый Sheet с помощью

Range("B1").CopyFromRecordset rs

Мне нужно, чтобы значения NULL из базы отображались в ячейке как строка "NULL", а не как пустая строка.
Также хочется, чтобы тип BIT отображался не как "ИСТИНА" или "ЛОЖЬ", а как 0 и 1

Можно ли это сделать , продолжаю использовать CopyFromRecordset ? Может быть есть какие-то параметры в строке соединения или параметры экземпляра RecordSet'a ?

Если нельзя - может быть ткнете в аналогичный скрипт, который обрабатывает типы и NULL, как мне нужно?
...
Рейтинг: 0 / 0
ADODB: обработка NULLs в RecordSet в Excel
    #39281471
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Строковый литерал 'NULL' и значение NULL - вещиразные.
Еслинужно (нафига?) - ну используй CASE/IIF/IFNULL/etc.
...
Рейтинг: 0 / 0
ADODB: обработка NULLs в RecordSet в Excel
    #39281475
makondo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
что разные - я понимаю. Литерал нужен, чтобы отличать NULL-ячейки от пустых строк. В выводе может быть и то, и другое.

Скажем, если из MS SQL сохранять, набор данных в csv, он сохранит все, как мне надо. Copy-paste из SSMS в Excel - тоже.
Запрос из Excel VB - нет.

Набор данных возвращает процедура, и он может иметь разное число полей с разными типами.

Я предполагаю, что в цикле можно все проверить и вывести в каждую ячейку, просто это явно дольше будет.
...
Рейтинг: 0 / 0
ADODB: обработка NULLs в RecordSet в Excel
    #39281531
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну внеси соотв. корректировку в текст запроса.
...
Рейтинг: 0 / 0
ADODB: обработка NULLs в RecordSet в Excel
    #39281532
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если в процедуре невозможно внести ссотв. правки - используй преобразующий запрос-обёртку.
...
Рейтинг: 0 / 0
ADODB: обработка NULLs в RecordSet в Excel
    #39282178
makondo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

спасибо. Справился обработкой RecordSet'а в модуле VBA - IFNULL () .

Сам запрос в базе менять было не очень хорошою
...
Рейтинг: 0 / 0
ADODB: обработка NULLs в RecordSet в Excel
    #39282179
makondo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
makondo,

Правда быстрый CopyFromRecordSet уже не получается при этом использовать - поячеечный вывод в Sheet двойным циклом заметно медленнее.
...
Рейтинг: 0 / 0
ADODB: обработка NULLs в RecordSet в Excel
    #39282276
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто мешает сперва быстро вылить на лист как есть, а потом так же быстро выполлнить Replace по диапазону ячеек?
...
Рейтинг: 0 / 0
ADODB: обработка NULLs в RecordSet в Excel
    #39282343
makondo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

там могут быть просто пустые ячейки - их все на NULL менять не надо.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ADODB: обработка NULLs в RecordSet в Excel
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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