Создание запроса к серверу

Применяется к
Access для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Вы можете использовать Access в качестве интерфейсного приложения, а затем связаться с таблицами на внутреннем сервере, например SQL Server. По умолчанию большинство запросов выполняются локально в ядре СУБД Access ACE. В некоторых случаях Access может выполнять запрос удаленно на SQL Server в зависимости от синтаксиса SQL и других факторов. Дополнительные сведения см. в разделе Jet ядро СУБД версии 3.0: ПОДКЛЮЧЕНИЕ ODBC в технических документах Rediscovered JET и ODBC.

Однако часто требуется явно выполнить запрос на сервере базы данных. Это делается для повышения производительности: серверы баз данных имеют большую вычислительную мощность, чем настольный компьютер, и вы можете возвращать меньшее подмножество данных через сетевое подключение. Чтобы выполнить запрос на сервере базы данных, используйте сквозной запрос, представляющий собой инструкцию Transact SQL (TSQL), которая подключается к SQL Server с помощью строка подключения ODBC. Например, можно передать инструкцию SELECT для возврата данных в таблицу, форму, отчет или элемент управления списком, выполнить эквивалент запросов действий (инструкции языка обработки данных (DML), вызывать хранимые процедуры и выполнять административные задачи (инструкции языка определения данных (DDL).

Примечание Результаты сквозного запроса доступны только для чтения. Чтобы напрямую изменить данные в таблице или форме, создайте связанную таблицу с индексируемым представлением. Дополнительные сведения см. в разделе Создание индексированных представлений.

  1. Подключение к серверной базе данных.
    Дополнительные сведения о связывании с SQL Server см. в разделах Импорт или связывание данных в базе данных SQL Server и Связывание или импорт данных из базы данных сервера Azure SQL.
  2. Выберите Создать>структуру запросов.
  3. При необходимости закройте диалоговое окно Добавление таблиц (показать таблицу в Access).
  4. Выберите Конструктор>сквозной передачи.
    Access скрывает сетку конструктора запроса и отображает представление SQL.
  5. Если страница свойств запроса не отображается, нажмите клавишу F4, чтобы отобразить ее.
  6. На странице свойств щелкните поле свойства ODBC Connect Str и выполните одно из следующих действий:

Чтобы получить строка подключения:

  1. В области навигации щелкните правой кнопкой мыши таблицу, связанную с нужным источником данных, и выберите Диспетчер связанных таблиц.
  2. В диалоговом окне Диспетчер связанных таблиц выберите поле проверка источника данных, а затем нажмите кнопку Изменить.
  3. В диалоговом окне Изменение ссылки скопируйте текст в поле Строка подключения .
  1. Введите запрос в представлении 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 ГБ и является бесплатным и простым способом для выполнения и проверка миграции.

  2. Рассмотрите возможность установки дополнительных связанных свойств:

    • Возвращает записи Некоторые инструкции 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 секунд. Возможны задержки из-за сетевого трафика или интенсивного использования сервера базы данных.

    • Максимальное число записей Укажите максимальное количество возвращаемых записей. Возможно, у вас есть ограниченные системные ресурсы или вы хотите протестировать результаты с небольшим объемом данных.

  3. Завершив ввод запроса, выберите Конструктор>выполнить. Запрос отправляется на сервер базы данных для обработки.

См. также

Справочник по Transact-SQL

Выполнение запросов с помощью Transact-SQL