Проблемы с повторным подсоединением к БД

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
knacker
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 09.08.2007 (Чт) 2:09

Проблемы с повторным подсоединением к БД

Сообщение knacker » 19.05.2013 (Вс) 22:02

Добрый день,

имеется VBA-код, обеспечивающий соединение из Excel 2007 с БД Access 2000.

Смысл кода в том, что:

1) считываются данные из запроса в БД и ими заполняется комбо-бокс на листе Excel;
2) выбранное пользователем значение в обработанном комбо-боксе передается в другой запрос Access в качестве параметра.

Все бы ничего: значение из БД считываются, в комбо-бокс вставляются, назад передаются, НО проблемы начинаются, когда пытаешься выполнить код несколько раз для разных значений, выбранных в комбо-боксе - выдается ошибка, причем даже без текста. Такое ощущении, что не закрывается установленное соединение с БД.

Сам код:
Код: Выделить всё
  Dim ws As DAO.workspace 'Workspace для DAO
  Dim dbs As DAO.Database 'БД для DAO
  Dim qdf2 As DAO.QueryDef 'запрос в БД для DAO
  Dim rs As DAO.Recordset 'рекордсет для DAO
...

  Set ws = DAO.CreateWorkspace("MyWorkspace", "admin", "") 'создаем Workspace для DAO
  Set dbs = ws.OpenDatabase(DBPath, False, False, ";pwd=password") 'коннектимся к базе данных
  Set qdf2 = dbs.QueryDefs("_excel_cost_owners") 'указываем запрос в БД
  Set rs = qdf2.OpenRecordset 'связываем запрос с рекордсетом
...

  rs.Close
  qdf2.Close
  dbs.Close
  ws.Close
 
  Set qdf2 = Nothing
  Set dbs = Nothing
  Set ws = Nothing
  Set rs = Nothing


Если запускать код непосредственно в редакторе VBA, то текст ошибки показывается: "Run-time error 3045" в момент объявления OpenDatabase.

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

Спасибо.

Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 107

    TopList  
cron