Access можна використовувати як клієнтську програму, а потім зв'язувати з таблицями на сервері, наприклад SQL Server. За замовчуванням більшість запитів виконуються локально в обробнику баз даних Access ACE. У деяких випадках Access може віддалено виконувати запит на сервері SQL Server залежно від синтаксису SQL та інших факторів. Докладні відомості див. в статті "JET Database Engine Version 3.0: ODBC Connectivity" у повторному виявленні JET і ODBC білих паперів.
Однак часто потрібно явно виконувати запит на сервері бази даних. Це можна зробити, щоб підвищити продуктивність: сервери баз даних мають більшу потужність обробки, ніж настільний комп'ютер, і ви можете повернути меншу підмножину даних через підключення до мережі. Щоб виконати запит на сервері бази даних, скористайтеся наскрізний запит, який є оператором Transact SQL (TSQL), який підключається до SQL Server за допомогою рядка підключення ODBC. Наприклад, можна передати інструкцію SELECT, щоб повернути дані до вікна табличного подання даних, форми, звіту або елемента керування списком, виконати еквівалент запитів на змінення (операторів мова керування даними (DML), викликати збережені процедури та виконати адміністративні завдання (інструкції мови визначення даних (DDL).
Примітка. Результати транзитного запиту доступні лише для читання. Щоб безпосередньо редагувати дані в табличному поданні або формі, створіть зв'язану таблицю з індексованого подання. Докладні відомості див. в статті Створення індексованих подань.
-
Підключення до серверної бази даних.
Докладні відомості про зв'язування з SQL Server див. в статті Імпорт даних або зв'язування з даними в базі даних SQL Server та Зв'язування або імпорт даних із бази даних Azure SQL Server.
-
Натисніть кнопку Створити > макет запиту.
-
За потреби закрийте діалогове вікно Додавання таблиць (відображати таблицю в Access.
-
Виберіть Конструктор >На долоні.
Access приховає сітку макета запиту та відобразить режим SQL.
-
Якщо аркуш властивостей запиту не відображається, натисніть клавішу F4, щоб відобразити його.
-
На аркуші властивостей клацніть поле властивості ODBC Connect Str і виконайте одну з таких дій:
Щоб отримати рядок підключення:
-
В області переходів клацніть правою кнопкою миші таблицю, зв'язану з потрібним джерелом даних, і виберіть пункт Диспетчер зв'язаних таблиць.
-
У діалоговому вікні Диспетчер зв'язаних таблиць установіть прапорець поруч із джерелом даних і натисніть кнопку Редагувати.
-
У діалоговому вікні Редагування посилання скопіюйте текст у полі Рядок підключення .
-
Виберіть елемент збірки .
-
Дотримуйтеся вказівок, щоб створити файл DSN, який містить відомості про рядок підключення. Докладні інструкції див. в статті Імпорт даних або зв'язування з даними в базі даних SQL Server та Зв'язування або імпорт даних із бази даних Azure SQL Server.
Після створення підключення до файлу DSN рядок підключення ODBC внутрішньо зберігається в базі даних Access. Ось спосіб отримати копію цього рядка:
-
Знайдіть ім'я зв'язаної таблиці в області переходів за допомогою потрібного підключення ODBC.
-
Натисніть клавіші Ctrl+G. , щоб відкрити вікно vba Immediate.
-
Введіть: такий код:
?CurrentDb.TableDefs("<table name>").Connect
Але замість імені <таблиці> ім'я зв'язаної таблиці на кроці a.
-
Скопіюйте рядок, повернутий до властивості ODBC Connect Str .
-
-
Введіть запит у режимі SQL.
Примітка. Існують важливі відмінності між Access SQL і SQL Server TSQL, особливо з синтаксисом, іменами функцій і аргументами функцій. Докладні відомості див. в статті Порівняння Access SQL із SQL Server TSQL.
Порада Спочатку створіть запит TSQL в SQL Server Management Studio, а потім скопіюйте та вставте SQL у режим SQL. Завдяки цьому запит має правильний синтаксис. Якщо у вас немає зручного доступу до бази даних SQL Server, радимо інсталювати на настільний комп'ютер випуск Microsoft SQL Server Express , який підтримує до 10 ГБ, і це безкоштовний і зручний спосіб виконати перенесення та перевірити його.
-
Радимо настроїти додаткові пов'язані властивості.
-
Повертає записи Деякі інструкції SQL повертають записи, наприклад SELECT, а деякі – ні, наприклад UPDATE. Якщо запит повертає записи, установіть для цієї властивості значення Так; якщо запит не повертає записи, установіть для цієї властивості значення Ні.
Примітка. Транзитні запити можуть повертати кілька наборів результатів, але в табличному поданні, формі, звіті або змінному набору записів використовується лише перший набір результатів. Щоб отримати кілька наборів результатів, скористайтеся запитом на створення таблиці , як показано в наведеному нижче прикладі.
SELECT <pass-through query name>.* INTO <local table name> FROM < pass-through query name >
Зірочку (*) слід використовувати, оскільки кожен набір результатів може мати різні стовпці. Кожен набір результатів зберігається в окремій таблиці, а числа додаються відповідним чином до імен локальних таблиць. Наприклад, якщо буде повернуто три набори результатів, імена таблиць будуть такі: <ім'я локальної таблиці>, <ім'я локальної таблиці>1, <ім'я локальної таблиці>2.
-
Журнал повідомлень Укажіть, чи потрібно повертати повідомлення з бази даних SQL у таблиці повідомлень Access. Ім'я таблиці має формат, ім'я користувача – nn, де ім'я користувача – це ім'я для входу поточного користувача, а nn – число, починаючи з 00.
-
Час очікування ODBC Укажіть кількість секунд, протягом яких виникатиме помилка часу очікування під час виконання запиту. Стандартне значення – 60 секунд. Можуть виникати затримки через мережевий трафік або інтенсивне використання сервера бази даних.
-
Максимальна кількість записів Укажіть максимальну кількість записів, які потрібно повернути. Можливо, у вас є обмежені системні ресурси або потрібно перевірити результати лише з невеликим обсягом даних.
-
-
Ввівши запит, натисніть кнопку Конструктор > Виконати. Запит надсилається на сервер бази даних для обробки.