Сравнительная характеристика языков программирования в Access. Программирование access


Программирование баз данных с помощью Access. VBA для чайников

Программирование баз данных с помощью Access

Прежде чем вы приступите к программированию базы данных в Access, вам следует ознакомиться со всеми отличиями Access от остальных VBA-приложений. Эти различия осложняют перевод программы, созданной с помощью Access, в другое VBA-приложение.

* Формы Access несовместимы со стандартными пользовательскими формами VBA и формами Visual Basic. Если вы решите, что ваша программа будет лучше работать в другом VBA-приложении, вам придется создавать все формы заново.

* Access включает полностью независимую систему программирования баз данных с помощью VBA, которая базируется на использовании объекта DoCmd. Объект DoCmd содержит все команды, доступные в меню Access. Используя этот объект, вы сможете открывать таблицы, выполнять запросы и отчеты, отображать формы, забавляться с пользовательским интерфейсом... другими словами, выполнять все действия, доступные пользователю, сидящему перед компьютером.

Если вы опытный пользователь Access, но не имеете ни малейшего опыта программирования, объект DoCmd позволит вам постепенно перейти к использованию VBA. Однако этим объясняется и определенная проблема: объект DoCmd жестко привязывает вас к Access. Если же вы изучите стандартный VBA, вы сможете очень легко перейти к другим средам разработки Visual Basic.

Даже если вы выберете "чистый" VBA, вы все равно не обойдетесь без объекта DoCmd при создании программ в рамках Access. Возможно, в связи с тем, что формы Access не являются стандартными формами VBA, для отображения формы в VBAпрограмме Access вам придется использовать не стандартный метод Show, а метод OpenForm объекта DoCmd.

Поделитесь на страничке

Следующая глава >

it.wikireading.ru

Иллюстрированный самоучитель по Microsoft Access 2002 › Программирование в Access 2002 › Программирование в формах и отчетах. События Access. [страница - 459] | Самоучители по офисным пакетам

Программирование в формах и отчетах. События Access.

Программирование в формах и отчетах, как правило, составляет большую часть кода приложения, т. к. именно формы и отчеты являются основой интерфейса пользователя и с помощью программирования этот интерфейс гибко настраивается нужным образом. Основой для программирования в формах и отчетах является множество событий, обрабатывающихся специальными процедурами. О создании таких процедур, а также использовании макросов для обработки событий мы уже говорили выше (см. разд. "Применение макросов" гл. 11).

В данном разделе мы хотим сделать обзор этих событий и описать последовательность их возникновения с тем, чтобы читатель мог их правильно использовать.

Помимо процедур обработки событий, программирование может применяться для динамического (то есть в процессе работы приложения) изменения свойств форм, отчетов и элементов управления.

События Access

Обычно события инициируются действиями пользователя. В зависимости от производимых пользователем действий события можно разделить на несколько типов: события данных, события фокуса, события клавиатуры, события мыши, события печати, события фильтра, события окна, события ошибок и событие таймера. Ниже мы рассмотрим все эти типы событий.

В Microsoft Access 2002 появилось несколько новых событий для формы, связанных с выполнением транзакций. Эти события возникают только в формах проекта Access и в данном разделе рассматриваться не будут (о проектах Microsoft Access см. гл. 17). Кроме того, в связи с появлением двух новых режимов формы: Сводной таблицы и Сводной диаграммы, появились события, позволяющие программно управлять отображением данных в этих режимах:

  • После конечного отображения (AfterFinalRender),
  • До разметки (AfterLayout),
  • После отображения (AfterRender),
  • До отображения (BeforeRende),
  • До экранной подсказки (BeforeScreenTip),
  • Изменение представления (ViewChange),
  • До запроса (BeforeQuery),
  • Запрос (Query),
  • До выполнения команды (CommandBeforeExecute),
  • Включение команды (CommandEnabled),
  • Выполнение команды (CommandExecute),
  • Проверка команды (CommandChecked),
  • Изменение набора данных (DataSetChange),
  • Изменение сводной таблицы (PivotTableChange),
  • Изменение выбора фрагмента (SelectionChange),
  • Соединение (OnConnect),
  • Отсоединение (OnDisconnect).

Эти события также не будут здесь рассматриваться. При необходимости обработки этих событий вы можете найти информацию о них в справке Access в разделе Программирование в Visual Basic, Microsoft Access Visual Basic Reference, Events.

samoychiteli.ru

Программирование в MS Access часть 1

Семенова И.И. Программирование в MS Access. Часть 1. - 4-

Программирование в MS Access. Часть 1. Общие сведения о синтаксисе.

Задание 1. В созданной вами базе данных создайте и заполните данными две таблицы, указанные в карточке, внесите изменения в таблицу, созданной в лабораторной работе №2 по аналогии с действиями, которые вы выполняли в лабораторной работе №3. Сохраните все изменения. Далее через меню Сервис - Схема данных свяжите таблицы по ключевым полям и полям связи. Проверьте схему (в ней должно быть четыре таблицы) и сохраните ее.

Работа с Модулями, создание и запуск процедур и функций

Модуль - это совокупность описаний и процедур, которые могут быть использованы в БД.

Задание 2. Создайте в БД новый модуль, сохраните его с названиемПрограммирование_Часть1. В меню выберите Вставка – Процедура (Insert-Procedure) и создайте процедуру типа Подпрограмма (sub), которая является частной -Privateс именемProc1.Для запуска процедуры в ее теле нажмите F5.

Общие сведения о синтаксисе

При присвоении имен процедурам, константам, переменным, и аргументам в модулеVisual Basic используются следующие правила:

  • Имена должны начинаться с буквы.

  • Имя не может содержать пробел, точку (.), восклицательный знак (!) или символы @, &, $, #.

  • Имена не должны содержать более 255 символов.

  • Не допускается использование повторяющихся имен на одном уровне области определения. Нельзя, например, описать две переменных с именем age в одной процедуре. Однако описание личной переменной age и переменной уровня процедуры age внутри одного модуля допустимо.

  • В языке Visual Basic не различаются строчные и прописные буквы, однако в инструкции описания сохраняются прописные буквы.

  • Каждая команда начинается с новой строки либо разделяются команды двоеточием (например,

  • Var1 = 123 : var2 = 1234 : var3 = var1+var2)

  • При переносе строковых значений на следующую строку используется обозначение &_, например

Задание 3. Создайте в модуле приведенную ниже процедуру и запустите ее (Для запуска оставьте курсор в процедуре и нажмите F5):

Public Sub Proc1( )

Dim str As String

str = "Сегодня хорошая погода. " & _

"Светит солнце"

MsgBox str, vbOKOnly

End Sub

Задание. В созданной процедуре замените& _на знак +. Запустите процедуру. Если возникла ошибка, исправьте ее самостоятельно. Запустите процедуру.

' это комментарий

Использование справки

Задание 4. В созданной процедуре выделите текстSubи нажмитеF1 (также используется комбинацияCtrl+F1). Познакомьтесь с материалом, далее из открытого окна справке перейдите к разделу Вызов процедурSubиFunction(для этого нажмитеСм. также). Познакомьтесь с материалом.

Область определения и видимость

Область определения определяет доступность переменной, константы, или процедуры для других процедур. Имеется три уровня областей определения: уровень процедуры, личный уровень модуля и общий уровень модуля.

Область определения переменной определяется при описании этой переменной. Рекомендуется явно описывать все переменные для предотвращения ошибок, связанных с конфликтами имен между переменными с различными областями определения.

Область определения уровня процедуры

Переменная или константа, определенная внутри процедуры, недоступна вне этой процедуры .Она может использоваться только процедурой, которая содержит описание этой переменной. В первой процедуре следующего примера в окне сообщения содержится строка. Во второй процедуре окно сообщения останется пустым, так как переменная strMsgявляется локальной в первой процедуре.

Sub LocalVariable()

Dim strMsg As String

strMsg= "Эта переменная не может использоваться вне этой процедуры."

MsgBox strMsg

End Sub

Sub OutsideScope()

MsgBoxstrMsg

EndSub

Область определения уровня модуля

Переменная или константа уровня модуля может быть определена в разделе описаний модуля. Переменная уровня модуля может быть общей или частной. Общие переменные доступны для всех процедур во всех модулях проекта; личные переменные доступны только для процедур данного модуля. Переменные, описанные с инструкцией Dimв разделе описаний, по умолчанию определяются как частные. Однако если переменной предшествует ключевое словоPrivate, область определения задается программой пользователя.

Задание 5. Создайте модуль, в котором опишите представленные процедуры:

Option Compare Database

Option Explicit

Public str As String

Private Sub Proc1()

Dim I As Integer

I = MsgBox("Привет", vbInformation, "Сообщение")

End Sub

Private Sub PROC2()

Dim I As Integer

I = MsgBox("Привет2", vbInformation, "Сообщение")

str = "вызов процедуры 2"

End Sub

Public Sub Proc3()

DimstrAsString

str= "Сегодня хорошая погода. " & _

"Светит солнце"

MsgBox str, vbOKOnly

Call PROC2 ‘вызов процедуры с названием PROC2

MsgBox str, vbOKOnly

EndSub

Задание 6. ЗапуститеPROC3 (установите курсор внутри ее тела и нажмитеF5). Обратите внимание на текст выведенных сообщений. Далее закомментируйте строкуDim str As String и снова запустите процедуру, сравните результат с предыдущим запуском и объясните причину различий.

Общие процедуры, переменные и константы, которые описаны не в стандартных модулях, и не в модулях класса, а например в модулях форм или отчетов, недоступны для адресующего проекта, так как эти модули являются личными для проекта, в котором они находятся.

Объявление переменных

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

Dim strName As String

Когда эта инструкция располагается в процедуре, переменная strNameможет использоваться только в данной процедуре. Если же такая инструкция находится в разделе описаний модуля, то переменнаяstrNameдоступна для всех процедур данного модуля, но не может использоваться процедурами из других модулей проекта.

Чтобы сделать переменную доступной для всех процедур проекта, перед ней надо поставить инструкцию Public. ИнструкцияPublicиспользуется для описания общих переменных на уровне модуля:

Public strName As String

Переменные могут описываться как один из следующих типов данных: Boolean, Byte, Integer, Long, Currency, Single, Double, Date, String (для строк переменной длины), String * длина (для строк фиксированной длины), Object, или Variant. Если тип данных не задан, по умолчанию переменная приобретает типVariant.

Задание 7. В модуле Программирование_Часть1 объявите глобальные переменные для всего модуля с названиямиVarLogicлогического типа иVarIntтипа длинного целого. А также создайте новую процедуру с названиемPROC4, в которой создайте переменную с названиемVarStrтипа строка с длиной 20 символов.

Описание констант

При описании общих констант уровня модуля инструкции Constдолжно предшествовать ключевое словоPublic. Для явного описания личных констант перед инструкциейConstнадо поставить ключевое словоPrivate.

Константы могут быть описаны одним из следующих типов данных: Boolean,Byte,Integer,Long,Currency,Single,Double,Date,String, илиVariant.

Public Const conAge As Integer = 34

Const conAge As Integer = 34, conWage As Currency = 35000

Создание частных процедур

Синтаксис

PrivateSubИмяПроцедуры [(списокАргументов)]

[инструкции]

[ExitSub]

[инструкции]

EndSub

Примечание. Для входа или выхода из процедуры Subнельзя использовать инструкцииGoSub,GoToилиReturn.

Создание глобальных процедур

Синтаксис

PublicSubИмяПроцедуры [(списокАргументов)]

[инструкции]

[ExitSub]

[инструкции]

EndSub

Примечание. Для входа или выхода из процедуры Subнельзя использовать инструкцииGoSub,GoToилиReturn.

Вызов процедур Sub и Function

Чтобы вызвать процедуру Subиз другой процедуры, следует указать имя этой процедуры и значения для всех требуемых аргументовs. Использование инструкцииCallне обязательно, однако если она все же используется, аргументы должны быть заключены в скобки.

Можно использовать процедуру Subдля организации других процедур, это облегчает процесс восприятия этих процедур и их отладку. В следующем примере процедураSubMainвызывает процедуруSubMultiBeep, передавая значение 56 для ее аргумента. По окончании работыMultiBeepуправление возвращается кMain, иMainвызывает процедуруSubMessage.Messageпоказывает окно сообщения, когда пользователь выбирает мышьюOK, управление возвращается кMain, иMainзавершается.

Sub Main()

MultiBeep 56 ‘вызов процедуры с одним аргументом

Message

End Sub

Sub MultiBeep(numbeeps)

For counter = 1 To numbeeps

Beep

Next counter

End Sub

Sub Message()

MsgBox"Пора сделать перерыв!"

EndSub

Вызов процедур Sub с несколькими аргументами

Следующий пример показывает два способа вызова процедуры Subс несколькими аргументами. Когда процедураHouseCalcвызывается во второй раз, аргументы заключаются в скобки, поскольку используется инструкцияCall.

Sub Main()

HouseCalc 99800, 43100 ‘вызов процедуры с двумя аргументами

Call HouseCalc(380950, 49500) ‘вызов процедуры с двумя аргументами

End Sub

Sub HouseCalc(price As Single, wage As Single)

If2.5 *wage<= 0.8 *priceThen

MsgBox"Этот дом слишком дорогой."

Else

MsgBox"Цена этого дома приемлема."

EndIf

EndSub

studfiles.net

Иллюстрированный самоучитель по Microsoft Access 2002 › Программирование в Access 2002 › Среда программирования Access 2002. Окно редактора кода. [страница - 446] | Самоучители по офисным пакетам

Среда программирования Access 2002. Окно редактора кода.

Среда программирования в Access 2002 включает все средства, необходимые для написания программ отладки процедур VBA. Самым главным компонентом этой среды является редактор кода Visual Basic Editor (VBE), обладающий богатыми возможностями для облегчения процесса ввода программного кода. Кроме того, среда программирования содержит еще массу диалоговых окон, в которых отображается дополнительная информация, требующаяся как в процессе создания, так и в процессе отладки кода.

Для того чтобы открыть окно редактора, достаточно открыть любой модуль Access (рис. 13.12).

ЗамечаниеДаже в локализованных версиях Access окно редактора кода VBA, а также все другие диалоговые окна, составляющие среду программирования VBA, традиционно не локализуются. Поэтому все рисунки в этом разделе главы, а также экранные термины (названий команд меню, диалоговых окон и т. д.) приводятся в нелокализованном варианте.

Рис. 13.12. Окно редактора кода VBA

Обычно в окне редактора используются три панели (три отдельных окна). На самом деле окон может быть и больше и меньше, и скоро вы узнаете обо всех, но на рис. 13.12 показано только расположение основных окон.

  • Project (Панель проекта), располагается в верхнем левом углу редактора. В ней отображается иерархическое дерево модулей приложения. Если это окно неактивно, выполните команду View › Project Explorer либо нажмите комбинацию клавиш CTRL + R.
  • Properties (Панель свойств), находится под панелью проекта. Она позволяет просматривать и изменять свойства различных входящих в проект объектов, отображаемых на панели проекта. Список свойств может отображаться как в алфавитном порядке, так и по категориям.
  • Code (Панель редактора кода). Это окно занимает большую часть экрана и является "многодокументным", т. е. можно открыть одновременно несколько окон данного типа для разных модулей. Оно представляет собой высокоинтеллектуальный текстовый процессор, существенно облегчающий написание кода VBA.

Проект приложения состоит из модулей, которые делятся на три категории:

  • Microsoft Access Class Objects (Модули классов Access) – включает все модули форм и отчетов;
  • Modules (Модули) – стандартные модули;
  • Class Modules (Модули классов) – модули пользовательских классов, если они присутствуют в приложении.

Список объектов в окне проекта является иерархическим, кроме модулей самого проекта, он может включать ссылки на объекты из внешних библиотек и список модулей этих библиотек.

В верхней части панели проекта расположены три кнопки:

  • View Code (Просмотр кода). При нажатии этой кнопки указатель мыши перемещается в окно кода, в котором отображается код выделенного в иерархии проекта объекта.
  • View Object (Просмотр объекта). Эта кнопка доступна только когда в дереве проекта выделен модуль формы или отчета. Тогда она позволяет быстро переключиться на соответствующий модулю объект, т. е. в окно Конструктора формы или отчета.
  • Toogle Folders (Переключение видов представления дерева). При нажатой кнопке все элементы в дереве проекта группируются в папках по категориям, при отжатой – они отображаются в алфавитном порядке..

Панель свойств позволяет просматривать и изменять свойства различных объектов, входящих в проект. Для отображения свойств объекта его нужно выделить либо в дереве проекта, либо в окне Конструктора формы (отчета). Во многом эта панель дублирует диалоговое окно Свойства (Properties) в формах и отчетах. И в том и в другом случае изменение свойств объекта статично, поэтому они могут быть использованы для задания начальных или постоянных свойств объекта.

Чтобы изменить значение свойства объекта, необходимо:

  1. Выделить имя свойства в левой колонке.
  2. Изменить значение в правой колонке, либо введя его вручную, либо путем выбора из списка.

samoychiteli.ru

Сравнительная характеристика языков программирования в Access. Access 2002: Самоучитель

Сравнительная характеристика языков программирования в Access

Access пользователь может работать с несколькими языками программирования:

• SQL (Structured Query Language) – структурированным языком запросов. Это формальный стандартизованный язык высокого уровня, содержащий средства непроцедурной (не требующей программирования) спецификации запросов;

• макросами;

• VBA (Visual Basic for Applications) – объектно-ориентированным языком программирования.

• XML (Extensible Markup Language) – расширяемым языком разметки, представляющим собой удобный способ сбора, адаптации и совместного использования данных в неограниченном числе приложений и форматов.

Язык SQL

Язык SQL – это внутренний язык Access 2002, на котором, в частности, формулируются запросы. В принципе SQL используется не только в среде Access 2002; он вообще широко применяется в работе с реляционными базами данных. Поскольку сегодня подавляющее большинство БД относится именно к этому классу, язык SQL значительно облегчает пользователю работу с различными СУБД.

Запросы – основной способ получения сведений из базы данных. С помощью запроса вы можете отобрать определенную информацию и рассортировать ее по значениям полей. Очень важно, что запросы позволяют фильтровать данные, то есть выбирать именно ту информацию, которая удовлетворяет определенным, заранее заданным условиям. Запросы можно применять при создании форм, отчетов, страниц доступа к данным. Использовать запросы удобно при разработке таблиц и добавлении новых записей в уже существующие таблицы, при удалении записей, поиске дублирующихся данных и т. д. Работая с языком SQL, вы исходите из существующей организации БД и более или менее стандартного набора операций, хотя структура самого запроса иногда бывает достаточно сложной. Правда, в запросе нежелательно использовать слишком разветвленные логические выражения: формального запрета на них нет и запрос построить можно, однако получившаяся структура будет громоздкой и неудобной. (Для подобных случаев в Access есть средства программирования.) Чтобы запустить запрос, следует создать событие – команду, которая распознается формой, элементом управления формы или отчета. Таким событием может стать, например, щелчок по какой-либо конкретной кнопке. Однако пользователь должен еще задать область применения запроса, так как он не запускается автоматически даже при возникновении события.

Поделитесь на страничке

Следующая глава >

it.wikireading.ru

Программирование в MS ACCESS

ПРОГРАММИРОВАНИЕ В MS ACCESS

1. Visual Basic и его реализации.

Во все программы пакета MS Office в качестве средства их расширения включен интерпретатор языка программирования Visual Basic for Applications (VBA) версии 5.0. Этот язык представляет собой одну из реализаций семейства языков Visual Basic, в которое также входит компилятор Visual Basic версии 6.0, позволяющий создавать полноценные исполняемые программы, и интерпретатор Visual Basic Scripting Edition (VBScript) версии 2.0, функционирующий в программе-браузере Internet Explorer и служащий для создания динамических Web-страниц, а также интерпретатор Active Server Pages (ASP), реализующий язык сценариев на стороне Web-сервера Internet Information Server. Все эти реализации являются объектно-ориентированными, поддерживают обработку исключительных ситуаций и интерфейс с компонентами ActiveX (объектами OLE (Object Linking and Embedding - Связывание и внедрение объектов), то есть документами, подготовленными в одном приложении и включенными в документ другого приложения, оптимизированными для использования в Internet), имеют одинаковый набор базовых конструкций и отличаются, в основном, перечнем поддерживаемых классов объектов. Язык традиционно прост, гибок, позволяет взаимодействовать с большим количеством программ в среде операционных систем Windows 9x/NT и с самими операционными системами через предоставляемый ими интерфейс с прикладными программами (Application Program Interface, API).

К сожалению, все программы, входящие в пакет Microsoft Office’97, имеют несколько различные интерпретаторы VBA. Эти различия обусловлены разными объектовыми моделями документов, обрабатываемых в этих программах, что, в общем, естественно, однако различия в организации интерфейсов к одинаковым компонентам ActiveX вызывают немалые проблемы при организации их использования. Наиболее полными возможностями обладает интерпретатор VBA, входящий в комплект Microsoft Excel.

Необходимо отметить, что в пакете Microsoft Office’2000 интерпретаторы VBA различных программ пакета полностью стандартизованы и практически представляют собой полноценный вариант компилятора Visual Basic 6.0.

2. Макросы, модули и модули форм.

Для иллюстрации всех нижеследующих примеров создадим базу данных, содержащую одну таблицу с именем Table1 вида:

Макросы. В отличие от Microsoft Excel, макросы в Microsoft Access не могут быть записаны пользователем с целью автоматизации рутинных операций. Вместо этого, в Microsoft Access имеется фиксированный набор из 49 команд, которые могут быть использованы в макросах.

Для создания нового макроса необходимо открыть закладку “Макросы” в главном окне базы данных и нажать кнопку “Создать”. В открывшемся окне в левой колонке выбирается действие, выполняемое макросом, в правой - вводится комментарий к этому действию.

Рассмотрим простейший пример - создадим макрос, открывающий таблицу. Для этого, создав новый макрос, выберем действие ОткрытьТаблицу аргумента этого действия (в нижней части окна) выберем имя таблицы, которую необходимо открыть при выполнении макроса. Так же, как при создании таблиц, запросов и форм, при закрытии окна “Макросы” Вам будет предложено сохранить изменения и указать имя макроса. В отличие от Microsoft Excel, здесь имеется только одно предопределенное имя - AutoExec. Макрос с таким именем автоматически запускается при открытии базы данных. Заметим, что подобного же эффекта можно достичь с помощью диалога Параметры запуска из меню Сервис.

Для запуска макроса на выполнение можно также использовать непосредственный запуск (используется для проверки его функционирования), запуск из другого макроса (действие ЗапускМакроса с именем макроса в качестве аргумента), запуск из процедуры VBA (метод RunMacro объекта DoCmd с именем макроса в качестве аргумента), запуск в качестве реакции на событие, происшедшее с формой, отчетом или элементом управления, включая кнопку, запуск через пользовательскую команду меню, пользовательскую кнопку на панели инструментов или с использованием назначенного сочетания клавиш.

Заметим, что поскольку применение макросов не предполагает наличия у пользователя навыков программирования, данный вопрос может быть изучен самостоятельно, особенно при наличии установленной системы помощи Microsoft Access.

Модули. Гораздо больший интерес представляют модули. Как и в Microsoft Excel, модуль содержит тексты программ на языке VBA, реализованных в виде процедур (Sub) или функций (Function). Процедуры являются самостоятельными программными единицами, могут не иметь списка аргументов и возвращаемого значения, но могут быть вызваны из других процедур. Функции обязаны иметь список передаваемых в них параметров, должны возвращать значение (через имя функции) и, как правило, служат для реализации небольших, часто повторяющихся фрагментов кода, вызываемых из других функций или процедур. Процедуры и функции могут быть объявлены личными (Private), то есть предназначенными для вызова из других процедур этого же  модуля, или общими (Public), то есть доступными из любой процедуры любого модуля базы данных. Ключевым словом Public описываются также глобальные переменные, однако такое описание должно находиться в специальной секции модуля - “Описания”.

vunivere.ru

Программирование форм и отчетов (объектов) Access 2003

Программирование VBA событий объектов в формах и отчетах

2012-08-13

Автор: Владимир Ткаченко

Источник: Обучение в интернет

Рассмотрим программирование форм и отчетов БД Access 2003 с помощью VBA. Формы и отчеты - это основные документы (объекты) БД Access для интерактивного взаимодействия с БД. Объекты характеризуются свойствами, методами и событиями. Все формы и отчеты, которые хранятся в БД Access 2003, относятся к коллекциям: AllForms и AllReports. Доступ к коллекциям программных модулей AllForms и AllReports предоставляют объекты CurrentProject и CodeProject.

Кроме коллекций AllForms и AllReports в БД Access входят коллекции Forms и Reports. В коллекции Forms и Reports объединяются все формы и отчеты, которые в данный момент открыты (загружены в оперативную память). Эти коллекции входят в объект Application приложения Access. Объект Application находится на вершине иерархии объектной модели Access.

Для обращения к объекту (например, к форме "Студенты" БД Access 2003) надо в соответствии с иерархией объектов Access записать путь к требуемому объекту, состоящий из последовательности имен объектов и коллекций, отделяя их друг от друга точкой. Ссылка на форму "Студенты" БД Access 2003, которая входит в состав коллекции AllForms, имеет следующий вид:Application.CurrentProject.AllForms ("Студенты").

В этой ссылке объект Application можно опустить, так как объект CurrentProject является глобальным объектом. Известно, что при обращении к глобальному объекту объекты более высокого уровня можно опустить. В результате ссылка на объект примет следующий вид: CurrentProject.AllForms ("Студенты").

Для работы с объектами Access необходимо использовать объектные переменные. Объектная переменная - это переменная, которая ссылается на объект. Вначале надо объявить имя переменной для этого объекта, а затем, используя оператор Set, связать переменную с объектом. Для работы с формой или отчетом можно воспользоваться одним из универсальных объектов AccessObject или Object. Например, информацию обо всех формах в БД Access 2003 можно получить, выполнив процедуру MySt (). Скриншот программного кода данной процедуры представлен на рисунке 1.

Рис. 1.

В процедуре MySt () связь объектной переменной с экземпляром объекта разорвана, так как объектной переменной установлено значение Nothing. Для данной процедуры связывать переменную с объектом необязательно, но переменную можно связать с объектом Form, например,Set frm = CurrentProject.AllForms (Form).

Необходимо отметить, что формы и отчеты БД Access кардинально отличаются от форм и отчетов Word и Excel, которые создаются и открываются программно. Формы и отчеты в Access создаются из окна БД средствами (мастерами и конструкторами) визуального проектирования форм и отчетов. Формы создаются из набора отдельных элементов управления, они легко помещаются на форму в режиме конструктора.

При необходимости формы, отчеты и элементы управления для форм в БД Access можно создавать и программным способом. Для этого надо воспользоваться методом CreateControl объекта Application. Но чаще всего программы на языке Visual Basic (модули) создают для автоматизации действий над объектами (кнопками, текстовыми полями, переключателями и т.д.) в формах и отчетах.

Для программирования форм и отчетов Access используется визуальная среда, которая основана на событиях объектов. Процедуры обработки событий обычно хранятся в модулях форм. Кроме того, программирование может применяться для изменения свойств форм и отчетов, если они активны, т.е. открыты.

Формы и отчеты БД Access обычно открываются вручную из окна базы данных в режиме макета или конструктора. Но если требуется открыть форму программным способом, то целесообразно использовать метод OpenForm объекта DoCmd. Объект DoCmd предназначен для запуска макроса из процедуры на языке Visual Basic.

DoCmd - это объект, который не имеет свойств, но имеет множество методов (OpenForm, OpenTable, Close, Save, OpenReport и т.д.), которые выполняют различные действия (макродействия) над объектами. На рисунке 2 представлен скриншот окна просмотра Object Browser, в котором отображается объект DoCmd и его методы.

Рис. 2.

Объект DoCmd позволяет выполнять макросы (макрокоманды или макродействия) с помощью процедуры на VB. Инструкция DoCmd имеет следующий формат: DoCmd макрокоманда аргументы. Если, например, необходимо открыть форму "Студенты" в табличном представлении, то можно использовать метод OpenForm объекта DoCmd со значением аргумента acFormDS (рисунок 3).

Рис. 3.

В результате выполнения данной процедуры в окне БД Access откроется форма "Студенты" в табличном представлении. Для того чтобы программно открыть отчет "Автоотчет_лент_студ" в режиме предварительного просмотра, можно использовать метод OpenReport объекта DoCmd со значением аргумента acViewPreview (рисунок 4).

Рис. 4.

В результате выполнения данной процедуры в окне БД Access откроется отчет "Автоотчет_лент_студ" в режиме предварительного просмотра.

www.lessons-tva.info