Для построения и выполнения произвольной запросной функции в Access очень удобным и доступным является язык запросов по образцу QBE, поддержанный мощным интерфейсом пользователя. Язык SQL в некотором роде скрыт от пользователя, хотя весьма важен при составлении VBA-программ в приложениях Access.
Особенности применения запросов SQL
Запросом SQL называют запрос, создаваемый с помощью инструкции SQL. Примерами запросов SQL являются запросы на объединение, запросы к серверу, управляющие и подчиненные запросы.
Запрос на объединение — это такой запрос, в котором объединяются поля (столбцы) одной или нескольких таблиц или запросов в одно поле или столбец в результирующем наборе записей. Запрос к серверу выполняет передачу через ODBC команд SQL-серверу, например, Microsoft SQL Server. Запросы к серверу позволяют непосредственно работать с таблицами на сервере вместо их присоединения. Результатом выполнения запроса к серверу может быть загрузка записей или изменение данных
Управляющий запрос создает или изменяет объекты базы данных, такие как таблицы Access или SQL Server.
Подчиненный запрос состоит из инструкции SQL SELECT, находящейся внутри другого запроса на выборку или запроса на изменение.
Язык SQL в Access может применяться при разработке экранных форм, отчетов, а также при создании макрокоманд и программ на VBA.
Связь языков QBE и SQL
В Access между языками QBE и SQL имеется тесная связь. Запросные таблицы (бланки, формы) на языке QBE, заполняемые пользователем, перед непосредственным выполнением преобразуются в выражения (или сообщения) SQL. To есть язык SQL является внутренним стандартом на выполнение запросов. Такой механизм имеет преимущество, поскольку позволяет внутри системы Access унифицировать подготовку запросов к выполнению па локальном и удаленном компьютерах. В последнем случае SQL-сообщение реально передается к компьютеру-серверу запроса.
В Access запрос может находиться в одном из трех режимов (состоянии); Конструктора, SQL и таблицы. Режим Конструктора применяют для разработки нового запроса с чистого листа (без использования Мастеров или других средств) или для изменения макета существующего запроса. Режим SQL применяют для ввода или просмотра инструкций SQL. Режим таблицы применяют для работы с результатами выполнения запроса.
SQL в формах и отчетах
Основными источниками записей в экранных формах и отчетах являются таблицы и запросы. Во втором случае запросом может быть готовый запрос к БД или создаваемый при разработке формы или отчета. Описать новый запрос как источник записей при разработке формы или отчета в режиме Конструктора можно следующим образом.
1. Открыть окно базы данных и на вкладке Формы (Forms) или Отчеты (Reports) нажать кнопку Создать (New).
2. В очередном окне выбрать режим создания объекта с помощью Конструктора и нажать ОК.
3. В окне создания новой формы или отчета подвести курсор мыши к за головку окна и в контекстном меню выбрать пункт Свойства (Properties).
4. В появившемся окне Форма (Form) или Отчет (Report) на вкладке Данные (Data) определить источник записей с помощью SQL-выражения, вводимого в поле ввода свойства «Источник записей», или с помощью Построителя запросов, вызываемого нажатием кнопки напротив ПОЛЯ ввода SQL-выражения. При вызове Построителя запросов появляется окно добавления таблиц и запросов в модель запроса.
5. Ввести нужные таблицы/запросы в схему запроса-источника записей получим тем самым формируемый запрос.
От этого запроса легко перейти к SQL-выражению одним из описанных способов, например, по команде Вид | Режим SQL (View | SQI)
SQL в макрокомандах
Макрокоманды входят в состав макросов, которые используются для автоматизации выполнения часто повторяющихся действий в работе с БД. Макрос представляет собой одну или несколько макрокоманд с аргументами.
Макросы вызываются из окна БД или автоматически при наступлении определенных событий. В последнем случае требуется связать макрос с нужным событием. Событием, по которому вызывается макрос, может быть, например, нажатие кнопки в области экранной формы или открытие окна БД.
Наряду с выполнением некоторых действий над объектами БД макросы могут вызывать другие макросы, программы на Visual Basic и внешние приложения.
Из множества макрокоманд (около 50) с SQL непосредственно связаны две макрокоманды: 3апуск3апросаSQL (RunSQL) и ОткрытьЗапрос (OpenQuery).
Макрокоманда 3апуск3апросаSQL запускает запрос на изменение или управляющий запрос Access с помощью соответствующей инструкции SQL. Эта макрокоманда делает возможным выполнение действий в макросе без предварительного создания сохраненных запросов. С помощью макрокоманды можно выполнять и сохраненные запросы.
Запросами на изменение являются инструкции SQL, реализующие следующие функции: добавление (INSERT INTO), удаление (DELETE), создание таблицы (SELECT...INTO) и обновление (UPDATE).
Управляющими запросами являются инструкции SQL, выполняющие следующие функции: создание таблицы (CREATE TABLE), изменение таблицы (ALTER TABLE), удаление таблицы (DROP TABLE), создание индекса (CREATE INDEX) и удаление индекса (DROP INDEX).
Единственным и обязательным аргументом макрокоманды 3апуск3апросаSQL является инструкция SQL. Максимальная длина инструкции SQL составляет 255 символов. Для выполнения инструкции SQL длиной более 255 символов следует вызвать метод RunSQL объекта DoCnul в программе VBA. В программах VBA допускается использование инструкций SQL длиной до 32768 символов.
Макрокоманда ОткрытьЗапрос позволяет открывать запрос на выборку или перекрестный запрос (в режимах Таблицы, Конструктора и Предварительного просмотра), запускать запрос на изменение или ввод данных. Вызов эквивалентен нажатию кнопки Открыть (Open) или Конструктор (Design) в окне базы данных после выбора запроса на вкладке Запросы (Queries).
В макрокоманде задаются три аргумента: имя запроса, режим и режим данных. Первый аргумент задает имя открываемого запроса и является обязательным. Второй аргумент задает режим открытия запроса. Допустимыми значениями являются: «Таблица» (используется по умолчанию), «Конструктор и «Просмотр».
Третий аргумент описывает режим ввода данных в запрос. Аргумент можно применять к запросам, открываемым в режиме таблицы. Допустимые значения: «Добавление» (можно вводить новые записи, нельзя изменять существующие), «Изменение» (можно вводить новые и изменять существующие записи; действует по умолчанию) и «Только чтение» (разрешается просматривать записи).
SQL в программах на VBA
Напомним, что программы на VBA, как и макросы, предназначены для автоматизации выполнения повторяющихся операций над объектами БД Access. Для выполнения программы следует запустить содержащую ее процедуру Sub или функцию Function. Программа записывается в процедуре как набор инструкций и методов, с помощью которых выполняются требуемые действия. Процедуры, как известно, хранятся в модулях и выполняются в ответ на события или вызываются из выражений, макросов и других процедур.
В Access существуют следующие способы запуска программ VBA:
· включение программы в процедуру обработки события;
· вызов функции в выражении;
· вызов процедуры Sub в другой процедуре или в окне отладки;
· выполнение макрокоманды ЗапускПрограммы (RunCode) в макросе.
Вернутся в содержание.
Скачано с www.znanio.ru
© ООО «Знанио»
С вами с 2009 года.