Использование ADOX для создания сквозного запроса SQL в Access
Средний. Требуются базовые навыки макроса, программирования и взаимодействия.
Эта статья относится только к базам данных Microsoft Access (.accdb и .mdb).
Сводка
В этой статье показано, как создать сквозной запрос SQL в Microsoft Visual Basic для приложений (VBA) с объектами данных Microsoft ActiveX (ADO).
Дополнительная информация
Вы можете написать функцию в Visual Basic для приложений, создающих сквозной запрос SQL. Сквозной запрос SQL состоит из инструкции SQL и строка подключения. При выполнении запроса он отправляет команды непосредственно на сервер базы данных для обработки. Это устраняет накладные расходы на ядро СУБД Microsoft Jet.
С помощью модели объекта доступа к данным (DAO) можно использовать сквозные запросы SQL для повышения производительности при обращении к внешним данным. С помощью ADO можно использовать поставщик Microsoft OLE DB для SQL Server для прямого доступа к SQL Server без дополнительных затрат Microsoft Jet или ODBC. Вы также можете использовать поставщик Microsoft OLE DB для ODBC для доступа к данным в любом источнике данных ODBC.
Хотя вам больше не нужно создавать сквозные запросы SQL в базе данных Microsoft Jet для повышения производительности, вы по-прежнему можете сделать это с помощью ADOX и поставщика Jet. В следующем коде показано, как создать сквозной запрос SQL.
ПРИМЕЧАНИЕ. В примере кода в этой статье используются расширения объектов данных ADO и ActiveX для языка определения данных и безопасности (ADOX). Для правильного выполнения этого кода необходимо щелкнуть Ссылки в меню Сервис в Редактор Visual Basic и убедиться, что выбраны следующие две ссылки:
- Библиотека объектов данных Microsoft ActiveX 2.1
- Microsoft ADO Ext. 2.6 for DDL and Security
Корпорация Майкрософт предоставляет примеры программирования только в целях демонстрации без явной или подразумеваемой гарантии. Данное положение включает, но не ограничивается этим, подразумеваемые гарантии товарной пригодности или соответствия отдельной задаче. Эта статья предполагает, что пользователь знаком с представленным языком программирования и средствами, используемыми для создания и отладки процедур. Специалисты технической поддержки Майкрософт могут пояснить работу той или иной процедуры, но модификация примеров и их адаптация к задачам разработчика не предусмотрена. Чтобы создать сквозной запрос SQL в коде, выполните следующие действия.
- Откройте пример базы данных Northwind.
- Создайте новый модуль, а затем введите или вставьте следующий код:
Function CreateSPT(SPTQueryName As String, strSQL As String)
Dim cat As ADOX.Catalog
Dim cmd As ADODB.Command
Set cat = New ADOX.Catalog
Set cmd = New ADODB.Command
cat.ActiveConnection = CurrentProject.Connection
Set cmd.ActiveConnection = cat.ActiveConnection
cmd.CommandText = strSQL
cmd.Properties("Jet OLEDB:ODBC Pass-Through Statement") = True
'Modify the following connection string to reference an existing DSN for
'the sample SQL Server PUBS database.
cmd.Properties _
("Jet OLEDB:Pass Through Query Connect String") = _
"ODBC;DSN=myDSN;database=pubs;UID=sa;PWD=;"
cat.Procedures.Append SPTQueryName, cmd
Set cat = Nothing
Set cmd = Nothing
End Function
Чтобы протестировать эту функцию, введите следующую строку в окне Интерпретация и нажмите клавишу ВВОД:
? CreateSPT("MySptQuery", "Select * from Authors")
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по