Создание запроса к серверу
Вы можете использовать Access как переднее приложение, а затем связывать таблицы на сервере, например с SQL Server. По умолчанию большинство запросов работают локально в ячеке баз данных Access ACE. В некоторых случаях в зависимости от синтаксиса SQL Server SQL и других факторов Access может выполнить запрос удаленно на SQL Server. Дополнительные сведения см. в документации по теме «ЯД БАЗ ДАННЫХ JET версии 3.0: подключение ODBC» в красных документах, открытых в jet и ODBC.
Однако часто необходимо явно выполнить запрос к серверу базы данных. Это помогает повысить производительность: серверы баз данных имеют большую вычислительную мощность, чем настольный компьютер, и вы можете возвращать меньшее подмножество данных по сетевому подключению. Чтобы выполнить запрос к серверу базы данных, используйте запрос к серверу — это SQL Transact SQL(TSQL), подключающийся к SQL Server с помощью строки подключения ODBC. Например, вы можете передать заявление SELECT, чтобы вернуть данные в таблицу, форму, отчет или список, выполнить эквивалент запросов на действия (DML), хранимых процедур вызовов и выполнения административных задач (DDL).
Примечание Результаты запроса к проверке находятся только для чтения. Чтобы непосредственно редактировать данные в таблице или форме, создайте связанную таблицу в индексируемом представлении. Дополнительные сведения см. в теме «Создание индексных представлений».
- Подключение к базе данных сервера. Дополнительные сведения о связывание с SQL Server см. в дополнительных сведениях об импорте или связывание данных в базе данных SQL Server, а также связывание или импорт данных из базы данных Azure SQL Server.
- На вкладке Создание нажмите кнопку Конструктор запросов.
- При необходимости закройте диалоговое окно «Добавление таблиц»(добавление таблицы в Access 2013 ).
- Выберите «>конструктора». Access скроет сетку конструктора запросов и отобразит SQL представлении.
- Если лист свойств запроса не отображается, нажмите F4, чтобы отобразить его.
- На окне свойств щелкните поле свойства ODBC Connect Str и сделайте одно из следующего:
- В области навигации щелкните правой кнопкой мыши таблицу, связанную с нужным источником данных, и выберите «Диспетчер связанных таблиц».
- В диалоговом окне «Диспетчер связанных таблиц» выберите поле для источника данных и выберите «Изменить».
- В диалоговом окне «Изменение ссылки» скопируйте текст в поле строки подключения.
- Выберите » «.
- Следуйте запросам, чтобы создать файл DSN, содержащий сведения о строке подключения. Подробные инструкции см. в инструкциях по импорту или связываированию данных в базе данных SQL Server, а также связывать или импортировать данные из базы данных Azure SQL Server.
После создания подключения к файлу DSN строка подключения ODBC будет храниться внутри базы данных Access. Вот как можно получить копию этой строки:
- Найдите имя связанной таблицы в области навигации, используя нужное подключение ODBC.
- Нажмите CTRL+G. чтобы открыть окно VBA Immediate.
- Введите следующий код:
?CurrentDb.TableDefs("").Connect
Перевод БД в формате MS Access в формат MS SQL Server
1. Открываем базу данных в формате Access программой MS Access. Если используется MS Access версии 2007 и выше, то он может отключить часть содержимого. Его необходимо включить, нажав на кнопку «Параметры».
2. Переходим на страничку «Работа с базами данных» и выбираем команду «Переместить данные/SQL Server»

3. Создаем новую базу

4. Выбираем сервер, на котором будет создана база данных и указываем права доступа к серверу.

5. Нажав на кнопочку с двойной стрелкой, выбираем все таблицы для переноса.

6. Выбираем параметры для преобразования согласно картинке.



7. Далее ожидаем окончания процесса преобразования базы данных.
Подключение Access к SQL Server
Вспомните детство, когда алфавитный суп был вашим любимым блюдом. Хорошо, что у вас сохранились эти воспоминания — сейчас мы покажем вам, как приготовить своего рода алфавитный суп из базы данных. В следующих разделах изложены основы работы с базой данных: доступ с помощью строки подключения и через программный интерфейс базы данных на языке Access VBA.

В этой статье
Использование драйвера ODBC или поставщика OLE DB
Строки подключения придуманы уже давно. Строку подключения определенного формата можно задать как в пользовательском интерфейсе Access, так и в коде VBA. Строка подключения (как ODBC, так и OLE DB) передает информацию, например расположение сервера, имя базы данных, тип безопасности и другие полезные параметры, прямо в базу данных. Пример:
ODBC;DRIVER=SQL Server;SERVER="MyServer";DATABASE="MyHRdb";TRUSTED_CONNECTION=Yes
Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyHRdb; Integrated Security=SSPI;
Сначала была создана автономная библиотека SQL Server Native Client (SNAC), содержащая технологии ODBC и OLED, и она до сих пор доступна для SQL Server версий 2005 — 2012. SNAC использовалась во многих старых приложениях и все еще поддерживается для обеспечения обратной совместимости, но эту библиотеку не рекомендуется использовать для разработки новых приложений. Необходимо использовать более новые отдельные, загружаемые версии драйверов ODBC.
Драйверы ODBC
Open Database Connectivity (ODBC) — это протокол, используемый для подключения базы данных Access к внешнему источнику данных, например Microsoft SQL Server. Как правило, для добавления строки подключения используются файловые источники данных (также называемые файлами DSN); в этом случае в строке подключения используется ключевое слово FILEDSN, или данные из реестра; в этом случае используется ключевое слово DSN. Кроме того, такие свойства можно задавать в коде VBA, используя строку подключения без DSN.
Развитие драйверов ODBC происходило в три этапа.
- До 2005 г. драйверы ODBC поставлялись в составе компонентов доступа к данным Windows (Windows Data Access Components, WDAC), которые изначально назывались компонентами доступа к данным Microsoft (Microsoft Data Access Components, MDAC). Это компоненты до сих пор предлагаются в составе Windows для обеспечения обратной совместимости. Подробную информацию см. в статье Компоненты доступа к данным Microsoft или Windows.
- Драйверы ODBC поставлялись со SNAC для версий SQL Server 2005 — SQL Server 2012.
- После SQL Server 2012 драйверы ODBC поставляются отдельно и содержат поддержку новых функций SQL Server.
Для новых разработок не рекомендуется использовать драйверы ODBC первых двух этапов, а выбирать драйверы ODBC третьего этапа.
Поставщики OLE DB
Object Linking and Embedding, Database (OLE DB) — это более современный протокол, используемый для подключения базы данных Access к внешнему источнику данных, например Microsoft SQL Server. OLE DB не требует наличия DSN и предоставляет полный доступ к источникам данных ODBC и драйверам ODBC.
Совет Как правило, для добавления строки подключения OLE DB используется диалоговое окно Свойства связи с данными. Хотя из Access нельзя открыть диалоговое окно Свойства связи с данными, в проводнике можно создать пустой файл TXT, изменить его тип на , а затем дважды щелкнуть файл. После создания строки подключения снова измените тип файла на TXT.
Развитие поставщиков OLE DB происходило в три этапа.
- До 2005 г. поставщики OLE DB поставлялись в составе компонентов доступа к данным Windows (Windows Data Access Components, WDAC), которые изначально назывались компонентами доступа к данным Microsoft (Microsoft Data Access Components, MDAC).
- Поставщики OLE DB поставлялись для версий SQL Server 2005 — SQL Server 2017. В 2011 г. эти поставщики были объявлены устаревшими.
- В 2017 г. поставщик OLE DB для SQL Server снова был введен в строй.
В настоящее время для новых разработок рекомендуется версия драйвера OLE DB 18 для SQL Server.
Оптимизация производительности с помощью строки подключения ODBC
Чтобы оптимизировать производительность, свести к минимуму сетевой трафик и сократить многопользовательский доступ к базе данных SQL Server, используйте как можно меньше строк подключения, распределяя каждую из них по нескольким наборам записей. Хотя Access просто передает строку подключения на сервер, программа распознает и может использовать следующие ключевые слова: DSN, DATABASE, UID, PWD и DRIVER, которые помогают свести к минимуму коммуникацию между клиентом и сервером.
Примечание. В случае разрыва подключения ODBC к внешнему источнику данных Access автоматически пытается восстановить подключение. Если такая попытка будет успешной, можно продолжать работу. Если же восстановить подключение не удается, вы можете работать с объектами, не использующими подключение. Для повторного подключения закройте и снова откройте Access.
Рекомендации по одновременному использованию ODBC и OLE DB
Избегайте сочетания строки подключения и технологий доступа к базе данных. Используйте строку подключения ODBC для DAO. Используйте строку подключения OLE DB для ADO. Если приложение содержит код VBA, в котором используются как DAO, так и ADO, используйте драйвер ODBC для DAO и поставщик OLE DB для ADO. Старайтесь получить в свое распоряжение самые новые функции и поддержку ODBC и OLEDB.
В ODBC используется термин «драйвер», а в OLE DB — термин «поставщик». Эти термины относятся к одному и тому же типу программных компонентов, но не являются взаимозаменяемыми в синтаксисе строки подключения. Используйте правильное значение термина согласно документации.
Программное обращение к SQL Server из Access
Существует два основных способа программного доступа к базе данных SQL Server из Access.
Объект доступа к данным (data access object, DAO) предоставляет абстрактный интерфейс базы данных. Объекты доступа к данным Microsoft (DAO) — это встроенная модель программных объектов, которая позволяет проникнуть в суть Access и SQL Server для создания, удаления, изменения и перечисления объектов, таблиц, полей, индексов, связей, запросов, свойств и внешних баз данных.
Объекты данных ActiveX (ADO) предлагают высокоуровневую программную модель и доступны в Access по ссылке на стороннюю библиотеку. Модель ADO проста в изучении и позволяет клиентским приложениям получать данные из различных источников, в том числе Access и SQL Server, и управлять ими. Ее основные преимущества — удобство использования, высокая скорость, малое потребление памяти и места на диске. Кроме того, в ADO поддерживаются основные функции для разработки и веб-приложений.
Какую технологию использовать?
В решениях Access, где применяется код VBA, можно использовать DAO, ADO или и то, и другое. DAO, как и раньше, используется в Access по умолчанию. Например, во всех формах, отчетах и запросах Access используется DAO. Но при миграции на SQL Server рекомендуется использовать ADO, чтобы сделать решение более эффективным. Далее приведены общие рекомендации по выбору DAO или ADO в разных ситуациях.
Используйте DAO, если требуется:
- создать связанную форму для чтения и записи без использования VBA;
- обращаться к локальным таблицам;
- загружать данные во временные таблицы;
- использовать запросы к серверу в качестве источников данных для отчетов или форм в режиме «только для чтения»;
- определить и использовать объект TableDef или QueryDef в VBA.
Используйте ADO, если требуется:
- прибегать к дополнительным возможностям оптимизации, таким как выполнение асинхронных операций;
- выполнять запросы DDL и DML к серверу;
- напрямую обращаться к данным SQL Server можно получить с помощью наборов записей в VBA;
- писать упрощенный код для определенных задач, таких как потоковая передача BLOB-объектов;
- напрямую вызывать хранимую процедуру с параметрами, используя объект команды в VBA.
Общие сведения о версиях драйвера ODBC
В следующей таблице приведены основные сведения о версиях драйвера ODBC, местах их загрузки и поддержке функций. Выберите правильную разрядность версии драйвера (64-разрядную или 32-разрядную) на основе Windows, а не Office. Если используется 32-разрядная версия Access в 64-разрядной версии Windows, устанавливайте 64-разрядные драйверы, которые содержат необходимые для Access 32-разрядные компоненты.
Драйверы ODBC
Новые возможности
Драйверы ODBC 17.0 – 17.3
§ 24. Использование SQL для построения запросов
Мастер запросов и Конструктор — всего лишь визуальные инструменты для создания запросов. Любой запрос, созданный в Access с помощью визуальных инструментов, можно просмотреть в режиме SQL (пример 24.1). В этом режиме запрос отображается как запись на языке SQL (англ. Structured Query Language — структурированный язык запросов).
SQL является важнейшим компонентом технологии реляционных баз данных и поддерживается практически всеми системами управления БД. Любому профессионалу, как квалифицированному пользователю баз данных, так и прикладному программисту или администратору БД, необходимо знать SQL.
Некоторые возможности языка SQL:
1. Создание, изменение и удаление таблиц БД.
2. Выборка информации из БД.
3. Добавление записей в таблицу БД.
4. Редактирование и удаление записей в таблице БД.
SQL нельзя отнести к традиционным языкам программирования. Он является декларативным языком, предназначенным для описания, изменения и извлечения данных. В настоящее время благодаря появлению возможности хранить процедуры, обрабатывать иерархические типы данных и другим расширениям SQL стали называть языком программирования.
Достоинства языка SQL:
1. Декларативность — указывает, какие операции нужно выполнить. Способ их реализации выбирается автоматич ески.
2. Наличие международных стандартов.
3. Независимость от конкретной СУБД.
Недостатки языка SQL:
1. Стандарт языка сложен и объемен.
2. Возможность отступления от стандарта (многие компании вносят свои изменения в язык).
Синтаксис SQL близок к естественному английскому языку. Команды SQL выглядят как обычные предложения английского языка и просты в понимании.
Команда SQL состоит из операторов (ключевых слов) и идентификаторов (пример 24.2). Если в запросе несколько команд, то в конце команды ставится точка с запятой (;). В Access одновременно можно выполнить только одну команду SQL, поэтому точку с запятой можно не ставить. Согласно общепринятому стилю для записи ключевых слов рекомендуется использовать прописные буквы.
Если идентификатор содержит пробелы, то он заключается в квадратные скобки (пример 24.3).
В Access используется интерактивная версия языка SQL — Microsoft Jet SQL. Чтобы создать запрос SQL в Access (пример 24.4), необходимо:
1) перейти в меню Создание;
2) выбрать Конструктор запросов;
3) закрыть окно Добавление таблицы;
4) выбрать Режим SQL;
5) в открывшемся окне ввести текст запроса и при необходимости сохранить запрос;

6) выполнить запрос, нажав кнопку на Панели инструментов.
В Access реализованы следующие составные части языка SQL:
1. Язык определения данных (Data Definition Language — DDL). Используется для определения структуры базы данных.
2. Язык манипулирования данными (Data Manipulation Language — DML). Предоставляет возможность выборки информации из базы данных и ее преобразования.
Пример 24.1. Представление запроса на языке SQL.

Запрос в режиме Конструктор, который позволяет найти сеансы, стоимость билетов на которые не превышает 9 р. 50 к.:

Результат запроса (режим таблицы):

Язык SQL был предложен компанией IBM в начале 70-х гг. для проверки возможностей реляционной модели БД.
Разработчики языка запросов SQL:


Дональд Чэмбэрлин
(Donald D. Chamberlin)
Рэй Бойс
(Ray Boyce)
Первый международный стандарт языка SQL был принят в 1989 г.
В настоящее время действует стандарт, принятый в 2003 г. (SQL:2003), с некоторыми модификациями и дополнениями, внесенными позже (SQL:2008, SQL:2011, SQL:2016).
SQL является непроцедурным языком программирования. Команды SQL могут выполняться непосредственно в интерактивном режиме, а также встраиваются в базовый язык программирования, которым может быть любой стандартный язык, например C++.
Пример 24.2. В запросе SQL из примера 24.1:
SELECT — определяет поля, которые содержат запрашиваемые данные.
FROM — определяет таблицу, содержащую поля, указанные в SELECT.
WHERE — определяет условия отбора полей, которым должны соответствовать все записи, включаемые в результаты.
Идентификаторы полей
Сеансы.Кинотеатр, Сеансы.Фильм, Сеансы.Время, Сеансы.Стоимость — содержат адрес (имя объекта БД) и название поля.
Пример 24.3. Синтаксис идентификаторов SQL.
SELECT Товары.[Номер склада], Товары.Наименование, Товары.Поставщик, Товары.Цена, Товары.Количество
WHERE (((Товары.[Номер склада])=2))

Пример 24.4. Создание запроса SQL в Access.
Выбор режима SQL:

Окно для ввода запроса SQL:

24.2. Определение структуры базы данных
С помощью операторов DDL языка SQL определяется структура БД, т. е. создаются объекты базы данных (пример 24.5) и задаются их свойства.
Назначение команд DDL определяется первым словом в записи команды:
- CREATE (создать) — создает объект базы данных (таблицу, представление и др.);
- ALTER (изменить) — изменяет объект;
- DROP (удалить) — удаляет объект.
Синтаксис команды DDL:
Синтаксис команды на создание таблицы базы данных:
Основные типы данных, используемые в DDL, в сравнении с типами данных в Access:
Тип
Тип данных в Access
