
Access предоставляет в распоряжение других программ — таких как Microsoft Excel,
среды программирования Borland Delphi, Microsoft Visual Basic и т.п. — некоторые
средства интерфейса.
Новый термин
Интерфейс —
это обобщенный термин, употребляемый в программиро-
вании для обозначения кода и данных приложения, которые применяют-
ся другими приложениями или пользователем.
Программный интерфейс Access весьма обширный и многообразный. Со временем
вы ознакомитесь с интерфейсными
и CurrentDB.
Каждая из названных составных частей интерфейса Access обладает собственным ин-
терфейсом подчиненного уровня. Хорошая новость — вам изначально не обязательно
вникать во все подробности. Но есть и плохая — вся эта система объективно сущест-
вует, и вам либо придется изучать ее, чтобы выяснить, удастся ли воспользоваться
чем-то готовым для решения собственной частной задачи, либо делать все с нуля и
самостоятельно.
Добро пожаловать в мир объектов!
Термин
интерфейс
в своей современной интерпретации предполагает использова-
ние
объектов.
Объект — это экземпляр специального (составного) типа данных. До
сих пор мы применяли преимущественно переменные простых типов, предназначен-
ные для хранения одной порции данных. Впрочем, в листингах, рассмотренных на
прошлом занятии, нам пришлось употребить, например, запись вида ADODB. Так вот,
ADODB — это наименование специального типа данных, класса.
Мы назвали объект экземпляром
составного
типа данных, так как он содержит,
как правило,
более
одной порции информации. В составе объекта могут находиться
как собственно данные, так и методы их обработки.
Метод —
это термин для обозна-
чения функции или процедуры, принадлежащей объекту (подробнее см. главу "8-й
час. Декомпозиция задач").
Новый термин
Объект —
это экземпляр составного типа данных, содержащий собствен-
но данные и методы их обработки.
Давайте теперь немного порассуждаем. Переменные — это понятно. Мне столько-то
лет, и подобную информацию я могу "воплотить" в некую переменную. То, что я умею
делать, — это мои способности, мои возможности, мои методы. Далее объединим всю
информацию воедино — как количественные сведения, которые меня характеризуют
(возраст, рост, вес, семейное положение, номер телефона и т.п.), так и формулировки
моих способностей. Получится некий "объект", описывающий меня как физическую и
социальную сущность с той или иной степенью достоверности и полноты.
Более подробные сведения об объектах приведены в следующей главе.
Некоторые полезные объекты
Используя объекты готовых мощных классов, вы значительно облегчите свою
участь. В составе Access можно назвать три таких класса — Application, DoCmd и
CurrentDB. Каждый из них содержит длинный перечень возможностей, и все они
могут быть использованы вами при решении прикладных задач.
Объект класса Application позволяет ссылаться на приложение Access как тако-
вое и содержит множество средств управления Access.
Класс DoCmd предоставляет возможности выбора и управления таблицами, запро-
сами и курсорами, а также загрузки электронных таблиц, копирования баз данных и
импорта текста.
час. Расширенные типы данных

Access — это набор инструментальных средств разработки баз данных. Класс Cur-
rentDB дает возможность ссылаться на объект базы данных в файле базы, открытом в
текущей сессии Access.
Все названные классы настолько сложны и обширны, что их описание, возможно,
заслуживает отдельной книги. В ходе дальнейшего повествования мы будем рассмат-
ривать различные свойства и методы объектов
и
За
дополнительной информацией и примерами их использования обращайтесь к опера-
тивной справочной системе Access.
Сравнение ADO и
Среди всего множества архитектур и технологий стандарты ADO и
заслужи-
вают особого внимания. Оба они обеспечивают программиста схожим набором инст-
рументов управления буквально всеми аспектами "поведения" баз данных. На этом
занятии мы рассмотрим некоторые особенно полезные средства ADO, а глава "15-й
час. ADODB — ваш верный помощник" предоставит вам счастливую возможность от-
точить свое мастерство на практике.
— это предыдущий, сейчас уже несколько устаревший, стандарт средств
управления базами данных. Хотя он до сих пор еще находит достаточно широкое
применение, Microsoft предлагает использовать новейшие технологии ADO. Стандарт
ADO предоставляет более мощные инструменты, а его применение приводит к суще-
ственному сокращению и упрощению кода. Листинги 7.1 и 7.2 демонстрируют два
примера кода для решения одной и той же задачи; первый построен на основе объек-
тов
а во втором применены средства ADO. Объемы кода, как вы видите, замет-
но различаются — в пользу ADO.
Для работы подпрограммы листинга 7.1 необходимо подключить
Microsoft
3.6 Object Library, а для работы
листинга 7.2 — Microsoft ActiveX Data Objects 2.6 Library (ADO). Чтобы
добавить ссылки на эти библиотеки, откройте редактор Visual Basic,
выполните команду
и в появившемся диалоговом
окне установите флажки возле данных библиотек.
Листинг
Пример использования объектов
1:
2 :
3:
4 :
5:
6:
7 :
8:
9:
10
11
12
13
15
16
17
Sub
)
Const TITLE = "Sams Teach Yourself Access 2002
&
Programming in 24 Hours"
Dim DB As Database
Dim RS As
Set DB = CurrentDb( )
Set RS =
"LIBRARY" )
;
:
"TITLE"
= TITLE
: RS( "AUTHOR"
= "Paul
: RS( "ISBN"
= "0-672-32098-3"
:
= 400
: RS( "PUBLISHER"
= "Sams"
:
= Date
126
Часть II. Основы конструирования программ

18
19
20
22 Set
23 Set
24 End
Update
Close
RS = Nothing
DB = Nothing
Sub
Листинг 7.2. Пример использования объектов ADO
Sub
)
2: Const
3:
4:
Title = "Sams Teach Yourself Access 2002
&
Programming
Dim RS As New ADODB
7:
9:
10
11
12
13
14
15
16
17
18
19
20
RS (
RS (
RS (
RS (
RS (
Set
Open "LIBRARY",
adOpenKeyset,
AddNew
"TITLE"
in 24 Hours"
adLoc kOpt
s t i с
= Title
"AUTHOR"
= "Paul
"ISBN"
= "0672316617"
= 400
"PUBLISHER"
= "Sams"
= Date
Update
Close
RS = Nothing
End Sub
Анализ
Оба примера кода решают задачу добавления новой записи в таблицу,
содержащую сведения об опубликованных книгах. Сравнивая тексты
листингов 7.1 и 7.2, обратите внимание, что второй из них содержит на
три строки меньше. Чем меньше строк в программе, тем, как правило,
она проще. Кроме того, в коде листинга 7.2 создается только один со-
ставной объект данных (RS класса Recordset) против двух (RS класса
Recordset и DB — Database) в примере листинга 7.1, что также способ-
ствует снижению сложности кода.
При создании новых проектов, наряду с объектами ADO, до сих пор активно при-
меняются и объекты
поэтому вам, возможно, придется обращаться и к тем, и к
другим. Но в нашей книге внимание будет сосредоточено только на объектах ADO.
Использование объектов ADODB
Объект класса ADODB — это объект СОМ. Иными словами, его интерфейс может ис-
пользоваться приложением Access, любой программой, способной
код на
языке VBA (такой как Excel или Word) либо даже инструментальными средами про-
граммирования от сторонних производителей (не Microsoft) (скажем, Borland Delphi).
Листинг 7.3 содержит фрагмент кода проекта Delphi с использованием функций ADODB.
7-й час. Расширенные типы данных
127

Листинг 7.3. Пример использования функций ADODB в проекте Delphi
1 procedure
Sender : TObject)
2 const
3 sTitle = 'Sams Teach Yourself Access 2002 ' &
4 ' Programming in 24
5
6 sProvider =
';
7 sDataSource =
Source=
8 var
RecordSet
10
11
12
14
15
16
17
18
21
26
27
31
Connection
begin
RecordSet
Connection
Connection
RecordSet
: Variant;
: Variant;
:=
sProvider + sDataSource );
Connection, 1, 3 ).
:= sTitle;
:=
:= 400;
:=
:= Date;
Close;
:= varNull;
Connection := varNull;
End;
I Даже если вы до сих пор никогда не видели программного кода на языке
I Object Pascal, просматривая текст листинга 7.3, вы легко выявите в нем
многие из конструкций, которые применялись нами в листинге 7.2. Для
справки: процедура листинга 7.3 отображает в окне
содержи-
мое одного поля второго столбца таблицы LIBRARY. Однако доступ к по-
лям в Object Pascal достаточно громоздкий:
поля)
Процедура листинга 7.3 отображает в окне сообщения содержимое одного поля
второго столбца таблицы LIBRARY.
Delphi — программная среда для Object Pascal, a Access — для VBA.
Хотя среда Borland Delphi предоставляет в распоряжение программиста собствен-
ные мощные средства для работы с базами данных, тот факт, что с помощью всего
нескольких строк кода можно легко воспользоваться функциями сервера ADODB, зна-
чителен сам по себе. Далее рассмотрим некоторые аспекты интерфейса ADODB более
конкретно.
128
Часть II. Основы конструирования программ

Соединение
(Connection) — это блок информации, указывающий Access,
как общаться с базой данных. В мире существует и конкурирует между со-
бой достаточное количество компаний, производящих разнообразные сис-
темы управления базами данных. Корпорация Microsoft, помимо Access,
поддерживает продукт MS-SQL Server. Другие крупные участники рынка —
это Sybase, Oracle и Informix. Ваше приложение Access способно обращать-
ся к базам данных любого из названных поставщиков, а это становится
возможным именно благодаря объекту Connection. Если вам достаточно
ссылаться только на наборы данных внутри текущей базы, в которой хра-
нится программный код, используйте объект
Connec-
tion, как было продемонстрировано в строке 3 листинга 7.2.
Чтобы открыть новое соединение, вначале необходимо объявить объект
класса Connection. Синтаксис подобного объявления таков:
Dim
As New
Сразу после набора фразы ADODB, завершающейся символом точки, в
редактора программного модуля всплывает контекстное меню, в
котором перечисляются возможные продолжения конструкции. Если
этого не происходит, значит, в диалоговом окне References, вызы-
ваемом командой
References, не установлен флажок Microsoft
ActiveX Data Objects 2.1 Library списка Available References.
Как и во всех других случаях, выражение объявления переменной начинается со
служебного слова Dim. Замените ИмяСоединения требуемым именем и сопроводите
служебными словами As и New. Слову Connection следует предпослать обяза-
тельную аббревиатуру ADODB, поскольку существуют и другие типы данных Connec-
tion — один из них, например, содержится в классе OLE-сервера
Объявив объект соединения, вы можете (и, видимо, должны) затем открыть его.
Команда открытия соединения предполагает наличие информации о содержимом
так называемой
строки соединения,
имени пользователя, его пароле и значениях до-
полнительных параметров, которые передаются методу Open защищенной паролем
базы данных. Имя пользователя и пароль являются необязательными параметрами.
Строка соединения включает в себя сведения о производителе системы управления
базой данных. Здесь содержатся наименование, номер версии и другие особенности
конкретной системы управления, представленные в специальном формате, описание
которого вы сможете найти в фирменной документации от поставщика программного
продукта. Строка соединения с секцией Provider,
новейшую вер-
сию программного сервера Jet из состава Access 2002, выглядит так:
Вместо шаблона
в секции Data Source, вам следует указать
полный путь к конкретному файлу базы данных. Соединение с базой данных Access
может быть открыто даже в том случае, если строка соединения не содержит данных
об имени пользователя и его пароле — в этом случае будут использованы значения,
принятые по умолчанию.
Помимо строки соединения, функции открытия соединения с базой данных Access
могут быть переданы дополнительные значения перечислимого типа — adConnectUn-
specified и adAsyncConnect. (Подробности вы найдете в оперативной справочной
системе Access.)
7-й час. Расширенные типы данных
129