Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Получение "технических" данных при SQL запросе - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Получение "технических" данных при SQL запросе (Макросы/Sub)
Получение "технических" данных при SQL запросе
TD_MElec Дата: Вторник, 05.10.2021, 15:20 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 49
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Всем привет!

При подключении Excel к SQL, выполняются как запросы select, так и запросы update /delete и проч.
при select получаю количество строк так:
[vba]
Код
Set oConn = CreateObject("ADODB.Connection")
Set oRS = CreateObject("ADODB.Recordset")
oConn.Open ***** 'подключение
oConn.CursorLocation = 3
oRS.Open strSql, oConn ****'strSql - запрос
' определяю количество полученных строк
cl = oRS.RecordCount
oRS.Close
[/vba]
Причем обязательно использую CursorLocation=3, без этого не работает oRS.RecordCount. Не понимаю почему...
Вопрос: как мне получить количество обработанных строк например в запросе delete?
Вслучае запроса delete oRS.Close не работает, я так понимаю, что oRS закрывается автоматически... Возможно SQL сообщает VBA, что запрос выполнен и oRS надо закрыть.
 
Ответить
СообщениеВсем привет!

При подключении Excel к SQL, выполняются как запросы select, так и запросы update /delete и проч.
при select получаю количество строк так:
[vba]
Код
Set oConn = CreateObject("ADODB.Connection")
Set oRS = CreateObject("ADODB.Recordset")
oConn.Open ***** 'подключение
oConn.CursorLocation = 3
oRS.Open strSql, oConn ****'strSql - запрос
' определяю количество полученных строк
cl = oRS.RecordCount
oRS.Close
[/vba]
Причем обязательно использую CursorLocation=3, без этого не работает oRS.RecordCount. Не понимаю почему...
Вопрос: как мне получить количество обработанных строк например в запросе delete?
Вслучае запроса delete oRS.Close не работает, я так понимаю, что oRS закрывается автоматически... Возможно SQL сообщает VBA, что запрос выполнен и oRS надо закрыть.

Автор - TD_MElec
Дата добавления - 05.10.2021 в 15:20
doober Дата: Вторник, 05.10.2021, 17:41 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 816
Репутация: 301 ±
Замечаний: 0% ±

Excel 2010
Вам бы документацию почитать по TSQL
[vba]
Код
    oConn.Open *****    'подключение
    sSql = " delete  FROM [Объект] WHERE id<10000"
    oConn.Execute sSql
    sSql = "select @@ROWCOUNT"
    koldel = oConn.Execute(sSql)(0)
[/vba]


 
Ответить
СообщениеВам бы документацию почитать по TSQL
[vba]
Код
    oConn.Open *****    'подключение
    sSql = " delete  FROM [Объект] WHERE id<10000"
    oConn.Execute sSql
    sSql = "select @@ROWCOUNT"
    koldel = oConn.Execute(sSql)(0)
[/vba]

Автор - doober
Дата добавления - 05.10.2021 в 17:41
TD_MElec Дата: Среда, 06.10.2021, 14:50 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 49
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
doober, Спасибо. попробую
 
Ответить
Сообщениеdoober, Спасибо. попробую

Автор - TD_MElec
Дата добавления - 06.10.2021 в 14:50
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Получение "технических" данных при SQL запросе (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования Jobsora jooble
© 2010-2021 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!