имеется 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.
В чем может быть причина?
Спасибо.