Не работают VBA функции в SQL запросе к БД в Access

Узнай цену своей работы

Формулировка задачи:

Уважаемые! В Аccess был написан запрос, использующий несколько функций, написанных там же, на VBA-Access. В среде Аccess запрос выполнялся без проблем. При попытке затолкать тот же запрос в рекордсет с помощью VBA-Excel, компилятор жалуется, что функции внутри запроса не определены.
Листинг программы
  1. Sub get_data_from_db_1(request_array)
  2. Dim request_data As DAO.Recordset
  3. Dim request_data_SQL As String
  4. iPath = ThisWorkbook.Path + "\База.mdb"
  5. Set dbs = DAO.OpenDatabase(iPath)
  6. request_data_SQL = "SELECT * FROM [Запрос на каталог]"
  7. Set request_data = dbs.OpenRecordset(request_data_SQL)
  8. ...
  9. End sub
Запросы, не использующие рукописных функций, из VBA-Excel запускаются без проблем. В чем может быть дело?

Решение задачи: «Не работают VBA функции в SQL запросе к БД в Access»

textual
Листинг программы
  1. Sub get_data_from_db_1(request_array)
  2.  
  3. Dim request_data As DAO.Recordset
  4. Dim request_data_SQL As String
  5. Dim app as object
  6. iPath = ThisWorkbook.Path + "\База.mdb"
  7. 'Set dbs = DAO.OpenDatabase(iPath)
  8. Set app = createobject("access.application")                     'Создаем объект Access.Application
  9. app.opencurrentdatabase iPath                                    'Открываем БД
  10.  
  11. request_data_SQL = "SELECT * FROM [Запрос на каталог]"
  12.  
  13. Set request_data = app.currentdb.OpenRecordset(request_data_SQL) 'Рекордсет от запроса
  14. ...
  15. app.closecurrentdatabase                                         'Закрываем БД
  16. End sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут