- •Базы данных
- •1. Введение в базы данных
- •1.1. Базы данных и информационные системы
- •1.2. Архигсюура информационной системы
- •1.3. Системы управления базами данных
- •1.4. Локальные информационные системы
- •1.5. Способы разработки и выполнения приложений
- •1.6. Схема обмена данными при работе с бд
- •2. Модели и типы данных
- •2.1. Иерархическая модель
- •Сотоудники
- •2.2. Сетевая модель
- •2.3. Реляционная модель
- •2.4. Постреляционная модель
- •2.5. Многомерная модель
- •1996 1994 Петров Смирнов Яковлев
- •2.6. Объектно-ориентированная модель
- •2.7. Типы данных
- •3. Реляционная модель данных
- •3.1. Определение реляционной модели
- •3.2. Индексирование
- •3.3. Связывание таблиц
- •3.4. Контроль целостности связей
- •3.5. Теоретические языки запросов
- •I аспределенное Удаленное Распределен- Удаленн! 1йдо- Распределен- предстаеление представление ная функция ступ к данным наяЬд
- •4.5. Информационные системы в Интернете и интранете
- •Часть 2. I Ъоектиросанн ? и использование бд
- •7. Средства автоматизации проектирования
- •7.1. Основные определения
- •7.8. Рекомендации по применению case-систем
- •9. Дополнительные вопросы применения баз данных
- •9.1. Программно-аппаратные платформы
- •9.2. Перспективы развития субд
- •9.3. Стандартизация баз данных
- •9.4. Характеристика технологии ado.Net
- •10.1. Общая характеристика
- •10.2. Новые возможности Microsoft Access 2002
- •10.3.Средства поддержки проектирования
- •10.4. Создание основных элементов бд
- •IQdbl mdb
- •Option Compare Database Public Function funl() beep End Function
- •10.5. Работа с гиперссылками
- •10.6. Использование языка sql
- •Аргументы макрокоманды ' Инструкция sQl. Select distinctrow tof
- •10.7. Защита баз данных
- •10.9. Обслуживание баз данный
- •10.10. Репликация баз данных
- •Реплицируемые объекты
- •Реплицируемые объекты
- •10.11. Работа с мультимедиа-данными
- •Тип объекта
- •Comic Chat Boom Microsoft Graph so Music Prop pry Page 2 1 Option f ropery Page21 Ры-ndox FableВидео-клип
- •10.12. Создание файлов приложений
- •10.13. Страницы доступа к данным
- •Краткая характеристика отличий сДд от форм и отчетом
- •10.14. Разработка проекта
- •Распределение атрибутов по вариантам
- •11.1. Пользовательский интерфейс
- •11.2. Характеристика проекта
- •11.3. Компиляция и выполнение проекта
- •11.4. Разработка приложения
- •11.5. Средства интегрированной среды разработки
- •Управление параметрами среды
- •11.6. Базы данных и средства работы с ними
- •Компоненты приложений для баз данных
- •11.7. Создание таблиц базы данных
- •11.8. Создание приложения bde
- •Значения свойств компонентов
- •11.9. Работа с отчетами
- •12. Субд Visual FoxPro 8.0
- •12.1. Общая характеристика
- •12.2. Новые возможности Visual FoxPro 8.0
- •12.3. Элементы проекта
- •12.4. Интерфейс Visual FoxPro
- •12.5. Средства автоматизации разработки
- •12.6. Создание баз данных
- •12.7. Таблицы и индексы
- •12.8. Организация межтабличных связей
- •12.9. Обеспечение ссылочной целостности
- •12.10. Создание запросов
- •Variables:
- •13. Microsoft sql Server 2000
- •13.1. Характеристика sql Server
- •13.2. Язык запросов Transact-sql
- •13.3. Системные базы данных и таблицы
- •13.4. Создание баз данных
- •13.5. Работа с таблицами
- •15.1. Принципы функционирования Web-приложений
- •15.2. Архитектура Web-приложений, публикующих бд
- •15.3. Обзор Web-серверов
- •15.4. Использование Personal Web-server
- •15.5. Использование Microsoft Internet Information Server
- •15.6. Использование Apache дляMicrosoft Windows 9х/2000
- •Вы видите это вместо ожидаемой страницы?
- •15.7. Варианты создания Web-узла
- •16. Интерфейсы программирования Web-приложений
- •16.1. Общий интерфейс взаимодействия cgi
- •18. Публикация бд средствами Microsoft Access
- •18.1. Характеристика вариантов публикации
т
Макрос!
: макрос
EGO
13
Макрокоманда
Примечание
U
janycK^anporaSQL1
□
—J
J
Аргументы макрокоманды ' Инструкция sQl. Select distinctrow tof
Столбец для ввоаа примечании.
Рис. 10.28. Макрокоманда с оператором SQL
Макрокоманда ОтпкрытпъЗапрос позволяет открывать запрос на выборку или перекрестный запрос (в режимах Таблицы, Конструктора и Предварительного просмотра), запускать запрос на изменение или ввод данных. Вызов ее эквивалентен нажатию кнопки Открыть (Open) или Конструктор (Design) в окне базы данных после выбора запроса на вкладке Запросы (Queries).
В макрокоманде задаются три аргумента: имя запроса, режим и режим данных. Первый аргумент задает имя открываемого запроса и является обяза тельным. Второй аргумент задает режим открытия запроса. Допустимыми значениями яв тяются: «Таблица» (используется по умилчанию), «Конструк тор» и «Просмотр».
Третий аргумент описывает режим ввода данных в запрос. Аргумент можно применят ь к запросам, открываемым в режиме таблицы. Допустимые зна ченчя: «Добав чение» (можно вводить новые записи, нельзя изменять существующие), «Изменение» (можно вводить новые и изменять существующие записи; действует по умо. гчашло) и «Только чтение» (разрешается просмаг- рива гь записи).
Для ускоренного создания макроса с этой макрокомандой можно восполь зоваться следующим приемом. Выбрать запрос в окне базы данных и переместить с помощью мыши в CTpoKv макрокоманды ь макросе. При этом в макрос автоматически добавляется макрокоманда ОткрытьЗапрос, открывающая запрос ь режиме таблицы.
Для вызова макрокоманды ОткрытьЗапрос в программе VBA используют метод Opei iQuery объек га DoCmd.
SQL в программах на VBA
Напомним, что программы на VBA, как и макросы, предназначены для аи- тома гизации выполнения повторяющихся операций над объектами БД Access. Для выполнения программы следует запустить содержащую ее пооцеду ру Sub или функцию Function. Программа записывается в процедуре как набор ин- стрз кций и методов, с помощью которых вы in шняв 1тся 1 ребуемые действия Процедуры, как известно, хранятся в модулях и выполняются в ответ на события или вызываются из выражений, макросов и других процедур.
В Access существуют следующие способы запуска программ VBA:
включение программы в процедуру обработки события;
вызов ф) нкции в выражении:
вызов пооцедуры Sub в друг ой процедур»: или в окне отладки;
выполнение макрокоманды ЗапускПрограммы (RunCode) в макросе.
Например, чтобы вызвать прг -грамму вьхп< >лнения определенных действий при открытии формы, нужно включить ее текст в процедуру обработки собы тия Нажатие кнопки (Click) для кнопки, при нажатии которой будет откры ваться фирма.
Функции применяются в выражениях, определяющих вычиг пяемые поля в формах, отчетах или запросах. Выражения используются для указания условий в запросах и фильтрах, а также в макросах, в инструкциях и методах VBA, а также в инс грукциях SQL. В процедуру Sub можно вк /почать общедоступные VBA-подпрограммы, вызываемые из других процедур.
Рассмотрим выполнение запроса к базе данных с помощью инструкций SQL в лрогоамме на Visual Basic для приложений.
В запросе производится отбор в базе данных записей, удовлетворяющих определенным условиям (запрос на выборку), либо выдается инструкция на выполнение указанных действий с записями, удовлетворяющими определенным условиям (запрос на изменение).
Если запрос SQL используется для возвращения данных, ядром базы дан - ных Microsoft Jet создается объект Recordset. После создания этого объек та можно использовать методы поиска (Find) и перемещения но записям набора.
Существуют следующие способы выполнения запросов:
вызов метода Execute (для выполнения запросов SQL на изменение);
создание и выполнение специального объекта QueryDef:
•использование инструкции SQL в качестве аргумента метода
Open Recordset;
•выполнение метода OpenRecordset для существующего объекта QueryDef;
вызов методов RunSQL и OpenQuery.
Метод Execute используется, если требуегся выполнить такое изменение в БД, при котором не возвращаются записи. Это, например, операции впав ки или удаления записей.
В качестве простейшего примера приведем команды Visual Basic для пш ложений выполнения запроса на изменение, в котором выполняется обновление записей таблицы «Должности», не имеющих значение в столбце ISBN. При возникн< 1вении ошибки все изменения отменяются.
Dim strSQL as String
strSQL = «DELETE FROM Должности WHERE ISBN IS NULL» dbsl hlio.Execute strSQL, dbFuilOnEtror
Объект QueryDef представляет собой сохраненное определение запроса в базе данных. Его можно рассматривать как откомпилированную инструкцию SQL.
Приведенная ниже программа выполняет создание нового объекта QueryDef, после чего соответствующий запрос открывается в режиме таблицы.
Sub NewQueryO ' Объявление переменных
Dim dbs Л5 Database, qdf As QueryDef, strSQL As String ' Установка значения переменной типа Database, ' лредставляющсй текущую базу данных Set dbs = Current Db ' Строка запроса
strSQL =j «SELECT * FROM Сотруоники WHERE [ДатаНаима] >= # 1-1-95#»
' Создание новою объекта QueryDef Set qdf = dbs. Create OueryDef (->Новые Сотрудники % strSQL)
' (Открытие запроса DoCmd.OpenQuety qdf.Name End Sub
Метод Open RecordSet используется, ч гобы о гкрыть объект типа RecordSet для выполнения последующих операций над ним.
В следующей процедуре с помощью инструкции SQL создается объект Recordset типа динамического набора записей. В предложение WHERF инструкции SQL включена функция Year, опредеаяющэя отбор заказов, размещенных в 19U8 году.
Sub Orders98()
Dim dbs As Database. rstAs Recordset, strSQL As String
Dim fid A s Field Set rtbs =■ Current Ub
strSQL = «SELECT DISTINCTROW Заказ, ДатаРазмещения « &
«FROM Заказы WHERE ((УеагЦДатаРсишещения/)=1998));» Set rst = dbs.OpenRecordset(strSQL, dhOpenDynaset) rst.MoveLast
Debug.Print rst.Rer.ordCount
End Sub
Метод RunSQl выполняет макрокоманду ЗапускЗапросабОЬ (RuiiSQL) в программе VBA. В следующем примере изменяется название должности всех ai ентов по продажам в таблице «Сотрудники».
DoCmd.RnnSQL «UPDATE С отрудники « &
«SET Сотрудники.ТШе = 'Региональный представитель' « &
«WHERE Сотрудники.ТШе = 'Агент по продажам;»
Метод OpevQuery выполняет макрокоманду ОткрытьЗапрос (OoenQuery; в программе VBA. С его помощью можно открыть запрос в режиме таблицы, Конструктора или просмотра. При этом устанавливается один из следующих режимов работы с данными: добавление, изменение или только чтение.
В следующем примере запрос «Выработка сотрудников» открывается в режиме таблицы, в котором пользователю разрешается просмотр записей.
DoCmd.OpenQuery «Выработка сотрудников»,, ас Readonly
Выбор варианта выполнения запросов определяется программистом с учетом особенностей решаемой задали.