Вы можете использовать Access в качестве интерфейсного приложения, а затем связаться с таблицами на внутреннем сервере, например SQL Server. По умолчанию большинство запросов выполняются локально в ядре СУБД Access ACE. В некоторых случаях Access может выполнять запрос удаленно на SQL Server в зависимости от синтаксиса SQL и других факторов. Дополнительные сведения см. в разделе Jet Database Engine версии 3.0: ПОДКЛЮЧЕНИЕ ODBC в технических документах Rediscovered JET и ODBC.
Однако часто требуется явно выполнить запрос на сервере базы данных. Это делается для повышения производительности: серверы баз данных имеют большую вычислительную мощность, чем настольный компьютер, и вы можете возвращать меньшее подмножество данных через сетевое подключение. Чтобы выполнить запрос на сервере базы данных, используйте запрос к серверу который представляет собой инструкцию Transact SQL (TSQL), которая подключается к SQL Server с помощью строки подключения ODBC. Например, можно передать инструкцию SELECT для возврата данных в таблицу, форму, отчет или элемент управления списком, выполнить эквивалент запросов действий (инструкции языка обработки данных (DML), вызывать хранимые процедуры и выполнять административные задачи (инструкции языка определения данных (DDL).
Примечание. Результаты сквозного запроса доступны только для чтения. Чтобы напрямую изменить данные в таблице или форме, создайте связанную таблицу с индексируемым представлением. Дополнительные сведения см. в разделе Создание индексированных представлений.
-
Подключение к серверной базе данных.
Дополнительные сведения о связывании с SQL Server см. в разделах Импорт или связывание данных в базе данных SQL Server и Связывание или импорт данных из базы данных SQL Server Azure.
-
На вкладке Создание нажмите кнопку Конструктор запросов.
-
При необходимости закройте диалоговое окно Добавление таблиц (показать таблицу в Access).
-
Выберите Конструктор >сквозной.
Access скрывает сетку конструктора запроса и отображает представление SQL.
-
Если страница свойств запроса не отображается, нажмите клавишу F4, чтобы отобразить ее.
-
На странице свойств щелкните поле свойства ODBC Connect Str и выполните одно из следующих действий:
Чтобы получить строку подключения, выполните приведенные далее действия.
-
В области навигации щелкните правой кнопкой мыши таблицу, связанную с нужным источником данных, и выберите Диспетчер связанных таблиц.
-
В диалоговом окне Диспетчер связанных таблиц установите флажок источника данных и нажмите кнопку Изменить.
-
В диалоговом окне Изменение ссылки скопируйте текст в поле Строка подключения .
-
Выберите Сборка .
-
Следуйте инструкциям, чтобы создать файл DSN, содержащий сведения о строке подключения. Подробные инструкции см . в разделах Импорт или связывание данных в базе данных SQL Server и Связывание или импорт данных из базы данных SQL Server Azure.
После создания подключения к файлу DSN строка подключения ODBC внутренне сохраняется в базе данных Access. Вот способ получения копии этой строки:
-
Найдите имя связанной таблицы в области навигации с помощью нужного подключения ODBC.
-
Нажмите клавиши CTRL+G. , чтобы открыть окно Интерпретация VBA.
-
Введите следующий код:
?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. Если запрос возвращает записи, задайте для этого свойства значение Да; Если запрос не возвращает записи, задайте для этого свойства значение Нет.
Примечание. Сквозные запросы могут возвращать несколько результирующих наборов, но в переменной таблицы, формы, отчета или набора записей используется только первый результирующий набор. Чтобы получить несколько результирующих наборов, используйте запрос к таблице make , как показано в следующем примере:
SELECT <pass-through query name>.* INTO <local table name> FROM < pass-through query name >
Необходимо использовать звездочку (*), так как каждый результирующий набор может иметь разные столбцы. Каждый результирующий набор сохраняется в отдельной таблице, а числа добавляются к именам локальных таблиц соответствующим образом. Например, если возвращаются три результирующих набора, имена таблиц будут следующими: <имя локальной таблицы> <имя локальной таблицы>1, <имя локальной таблицы>2.
-
Сообщения журнала Укажите, следует ли возвращать сообщения из базы данных SQL в таблице сообщений Access. Имя таблицы имеет формат, имя пользователя — nn, где username — это имя для входа текущего пользователя, а nn — число, начинающаяся с 00.
-
Время ожидания ODBC Укажите время ожидания в секундах до возникновения ошибки времени ожидания при выполнении запроса. По умолчанию установлен интервал 60 секунд. Возможны задержки из-за сетевого трафика или интенсивного использования сервера базы данных.
-
Максимальное число записей Укажите максимальное количество возвращаемых записей. Возможно, у вас есть ограниченные системные ресурсы или вы хотите протестировать результаты с небольшим объемом данных.
-
-
Завершив ввод запроса, выберите Конструктор > Выполнить. Запрос отправляется на сервер базы данных для обработки.