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

Вход

Регистрация

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

 

= Мир MS Excel/Изменить значения в объекте recordset - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменить значения в объекте recordset (Макросы/Sub)
Изменить значения в объекте recordset
Bamboo Дата: Воскресенье, 28.04.2019, 19:17 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 107
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Стоит задача изменять данные в другой книге или на другом листе в текущей книге. Через ADO. С этой темой ознакомился, данные в recordset получаю. А вот изменить данные в нем, чтобы потом сохранить на листе, не получается. Видимо, по причине того что LockType никак не меняется, все время стоит ReadOnly. Ниже приведен код обращения:

[vba]
Код
With CreateObject("ADODB.Connection")
        'подключаемся к файлу'
        .Open "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};LockType = adLockOptimistic;DBQ=" & sFullFileName & ";", adOpenKeyset
        'получаем кол-во строк в запросе
[/vba]

В чем может быть проблема?

Как результат мне нужно:
- добавлять записи,
- апдейтить записи

Заранее спасибо!
 
Ответить
СообщениеСтоит задача изменять данные в другой книге или на другом листе в текущей книге. Через ADO. С этой темой ознакомился, данные в recordset получаю. А вот изменить данные в нем, чтобы потом сохранить на листе, не получается. Видимо, по причине того что LockType никак не меняется, все время стоит ReadOnly. Ниже приведен код обращения:

[vba]
Код
With CreateObject("ADODB.Connection")
        'подключаемся к файлу'
        .Open "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};LockType = adLockOptimistic;DBQ=" & sFullFileName & ";", adOpenKeyset
        'получаем кол-во строк в запросе
[/vba]

В чем может быть проблема?

Как результат мне нужно:
- добавлять записи,
- апдейтить записи

Заранее спасибо!

Автор - Bamboo
Дата добавления - 28.04.2019 в 19:17
boa Дата: Понедельник, 29.04.2019, 12:42 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 549
Репутация: 167 ±
Замечаний: 0% ±

365
Bamboo,
до открытия коннекта добавьте строку
[vba]
Код
.CursorLocation = 3 'adUseClient
[/vba]




Сообщение отредактировал boa - Понедельник, 29.04.2019, 12:42
 
Ответить
СообщениеBamboo,
до открытия коннекта добавьте строку
[vba]
Код
.CursorLocation = 3 'adUseClient
[/vba]

Автор - boa
Дата добавления - 29.04.2019 в 12:42
Bamboo Дата: Понедельник, 29.04.2019, 17:09 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 107
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010

Спасибо! Но результат тот же - Ошибка 3251.
 
Ответить
Сообщение
Спасибо! Но результат тот же - Ошибка 3251.

Автор - Bamboo
Дата добавления - 29.04.2019 в 17:09
boa Дата: Понедельник, 29.04.2019, 17:50 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 549
Репутация: 167 ±
Замечаний: 0% ±

365
Bamboo,
Приложите файл, что бы можно было на чем-то тестить


 
Ответить
СообщениеBamboo,
Приложите файл, что бы можно было на чем-то тестить

Автор - boa
Дата добавления - 29.04.2019 в 17:50
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменить значения в объекте recordset (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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