Настольная СУБД Access 2002




Глава 13. Программирование в Access 2002


    Глава 13. Программирование в Access 2002
    Глава 13. Программирование в Access 2002 Язык Visual Basic для приложений (VBA) Процедуры и функции, их вызов и передача параметров Переменные, константы и типы данных Ссылки на объекты Массивы Об...
    Программирование в Access 2002
    Глава 13. Программирование в Access 2002 Данная глава посвящена основному средству программирования в Access 2002 — языку программирования Visual Basic for Applications (VBA). Язык программировани...
    Циклы В VBA имеется богатый выбор...
    Циклы В VBA имеется богатый выбор средств организации циклов, которые можно разделить на две основные группы — циклы с условием Do... Loop и циклы с перечислением For...Next. Циклы типа Do ... Loo...
    Таблица 13.2. Синтаксис операторов цикла Do
    Таблица 13.2. Синтаксис операторов цикла Do Конструкция Описание ...
    Выход из циклов и процедур
    Выход из циклов и процедур Обычно выполнение процедуры заканчивается после выполнения ее последнего оператора, а выполнение цикла — после нескольких выполнений тела цикла, когда достигнуто условие...
    Объектные модели Microsoft Access 2002
    Язык Visual Basic for Applications является объектно-ориентированным языком программирования. Стандартные объекты Visual Basic представляют собой основное средство манипуляции с данными Microsoft...
    Основные понятия
    Основные понятия Начнем с определения основных понятий, которые потребуются для понимания работы с объектами в языке VBA. Такими понятиями в данном случае будут: объект семейство метод класс свойс...
    Объектные модели Microsoft Office 2002
    Объектные модели Microsoft Office 2002 Управление приложениями семейства Microsoft Office 2002 осуществляется интерактивно — с помощью интерфейса пользователя или программно — с помощью объектных...
    Объектная модель Microsoft Access 2002
    Объектная модель Microsoft Access 2002 Объектная модель Microsoft Access 2002 реализована в виде набора объектов, собранных в библиотеке Access. Основным элементом в иерархии объектов библиотеки A...
    Рис. 13.1. Первый уровень иерархии...
    Рис. 13.1. Первый уровень иерархии объектной модели Microsoft Access 2002...
    Рис. 13.2. Второй уровень иерархии...
    Рис. 13.2. Второй уровень иерархии объектной модели Microsoft Access 2002 — объекты баз данных...
    Рис. 13.3. Второй уровень иерархии...
    Рис. 13.3. Второй уровень иерархии объектной модели Microsoft Access 2002 — объекты для работы с базой данных и проектом Глядя на схемы объектной модели, можно определить какие объекты описывают п...
    Таблица 13.3. Описание основных...
    Таблица 13.3. Описание основных элементов объектной модели Microsoft Access 2002 Объект Тип Описание...
    Объектные модели доступа к данным
    Объектные модели доступа к данным Объекты доступа к данным предназначены для программного доступа и управления данными в локальной или удаленной базе данных, а также для программного управления са...
    Объектная модель Microsoft DAO 3.6
    Объектная модель Microsoft DAO 3.6 Объекты доступа к данным (DAO, Data Access Objects) создавались, как объектно-ориентированный интерфейс для ядра баз данных Jet фирмы Microsoft. В ранних версиях...
    Рис. 13.4. Модель объектов доступа...
    Рис. 13.4. Модель объектов доступа к данным для рабочей области Microsoft Jet В табл. 13.4 описаны объекты доступа к данным. В первом столбце приведены объекты-семейства, а во втором — объекты, яв...
    Рис. 13.5. Модель объектов доступа...
    Рис. 13.5. Модель объектов доступа к данным для рабочей области ODBCDirect...
    Таблица 13.4. Описание объектов доступа к данным
    Таблица 13.4. Описание объектов доступа к данным Семейство Объект ...
    Модель объектов ActiveX для управления данными
    Модель объектов ActiveX для управления данными Объекты управления данными ActiveX (ADO/ ActiveX Data Objects) предназначены для обеспечения доступа к источникам данных разных видов, от текстовых ф...
    Таблица 13.5. Объектная модель ADODB
    Таблица 13.5. Объектная модель ADODB Объект Тип ...
    Таблица 13.6. Объектная модель ADOX
    Таблица 13.6. Объектная модель ADOX Объект Тип ...
    Рис. 13.6. Объектная модель ADOX
    Рис. 13.6. Объектная модель ADOX...
    Таблица 13.7. Описание объектов JRO
    Таблица 13.7. Описание объектов JRO Объект Тип ...
    Таблица 13.8. Объектная модель RDS
    Таблица 13.8. Объектная модель RDS Объект Тип...
    Объектная модель Visual Basic для приложений
    Объектная модель Visual Basic для приложений Объект ...
    Язык Visual Basic для приложений (VBA)
    Следующие ниже подразделы данного раздела описывают синтаксис языка программирования VBA....
    Объектная модель Microsoft Office 2002
    Объектная модель Microsoft Office 2002 Иерархия объектов Microsoft Office 2002 представлена на рис. 13.7....
    Рис. 13.7. Объектная модель Microsoft Office 2002
    Рис. 13.7. Объектная модель Microsoft Office 2002 Объекты Microsoft Office используются в иерархической структуре других объектных моделей. В объектной модели Microsoft Office 2002 появилось много...
    Таблица 13.10. Описание объектов Microsoft Office 2002
    Таблица 13.10. Описание объектов Microsoft Office 2002 Объект Тип ...
    Использование объектов и семейств
    Использование объектов и семейств Несмотря на разнообразие библиотек объектов, методы работы с объектами в процедурах VBA общие и не зависят от того, к какой библиотеке относится конкретный объект...
    Ссылки на объекты
    Ссылки на объекты Первый вопрос, который следует обсудить, — как обратиться к объекту. Для обращения к объекту существует одно общее правило: нужно проследить путь в иерархии объектов, начиная от...
    Работа с объектами в семействах
    Работа с объектами в семействах Доступ к объектам, входящим в семейство, в большинстве случаев возможен только через упоминание имени семейства, поэтому в программах VBA приходится выполнять разли...
    Свойства и методы объектов
    Свойства и методы объектов Как уже говорилось выше, каждый объект имеет свойства, которые являются его характеристиками, и методы, которые позволяют управлять поведением этого объекта. То же справ...
    Модули как объекты Access
    Код VBA в приложении Access содержится в модулях. Модули являются объектами Access, такими же, как таблицы, запросы, формы, отчеты, страницы и макросы, о чем свидетельствует ярлык на панели объект...
    Стандартные модули
    Стандартные модули Стандартные модули содержат общие процедуры, которые не связаны с конкретным объектом: формой или отчетом. Эти процедуры могут вызываться из других модулей и использоваться при...
    Рис. 13.8. Функция IsLoaded
    Рис. 13.8. Функция IsLoaded Список стандартных модулей приложения всегда можно увидеть, нажав кнопку Модули (Modules) в окне База данных (Database). В этом окне обычно и выполняется работа с модул...
    Модули класса
    Модули класса Вторым типом модуля в Access является модуль класса. Модуль класса отличается от стандартного модуля тем, что, кроме процедур, он содержит описание объекта и используется для создани...
    Рис. 13.9. Диалоговое окно свойств формы
    Рис. 13.9. Диалоговое окно свойств формы В окне редактора VBA отображается объект Форма (Form), а справа — поле со списком событий, которые могут обрабатываться процедурами VBA (рис. 13.10)....
    Рис. 13.10. Окно редактора кода VBA
    Рис. 13.10. Окно редактора кода VBA Если в модуле для некоторого события существует процедура, то это событие выделяется в списке жирным шрифтом. В данном случае таких событий нет, т. к. обработка...
    Создание модулей
    Создание модулей Для того чтобы создать стандартный модуль или модуль класса, нужно: Выбрать команду Модуль (Module) или Модуль класса (Class Module) в меню Вставка (Insert) или в списке кнопки Но...
    Рис. 13.11. Создание нового модуля
    Рис. 13.11. Создание нового модуля Создать необходимые процедуры и описания. Сохранить модуль, нажав кнопку Сохранить (Save) на панели инструментов. При этом выдается диалоговое окно Сохранение (S...
    Ссылки на объект Module
    Ссылки на объект Module Для обращения к модулям в программах VBA используется семейство Modules, которое содержит все открытые объекты типа Модуль (Module). Для того чтобы открыть объект Module, м...
    Процедуры и функции, их вызов и передача параметров
    Процедуры и функции, их вызов и передача параметров Основными компонентами программы на VBA являются процедуры и функции, Они представляют собой фрагменты программного кода, заключенные между опер...
    Среда программирования Access 2002
    Среда программирования в Access 2002 включает все средства, необходимые для написания программ отладки процедур VBA. Самым главным компонентом этой среды является редактор кода Visual Basic Editor...
    Окно редактора кода
    Окно редактора кода Для того чтобы открыть окно редактора, достаточно открыть любой модуль Access (рис. 13.12). Замечание Даже в локализованных версиях Access окно редактора кода VBA, а также все...
    Рис. 13.12. Окно редактора кода VBA
    Рис. 13.12. Окно редактора кода VBA Обычно в окне редактора используются три панели (три отдельных окна). На самом деле окон может быть и больше и меньше, и скоро вы узнаете обо всех, но на рис. 1...
    Рис. 13.13. Стандартный модуль в окне редактора
    Рис. 13.13. Стандартный модуль в окне редактора Каждый раздел может содержать несколько процедур, выбираемых из списка Procedure в правом верхнем углу окна на рис. 13.13. Список процедур в стандар...
    Рис. 13.14. Диалоговое окно параметров редактора кода
    Рис. 13.14. Диалоговое окно параметров редактора кода Оно содержит четыре вкладки. Первая вкладка Editor (Редактор) состоит из двух групп параметров: Code Settings и Window Settings. Группа Code S...
    Рис. 13.15. Создание процедуры обработки события
    Рис. 13.15. Создание процедуры обработки события Как только вы напишете первые три слова Dim stLinkCriteria As, на экране появится список слов (рис. 13.16), которые могут быть использованы в данно...
    Рис. 13.16. Автоматический вывод списка компонентов
    Рис. 13.16. Автоматический вывод списка компонентов Вы набираете следующие буквы — str, после чего курсор в списке устанавливается на слове string. Дальше можно не продолжать, а просто нажать клав...
    Рис. 13.17. Автоматический вывод методов объекта
    Рис. 13.17. Автоматический вывод методов объекта Уже известным способом выбираем нужную макрокоманду, нажимаем пробел и опять подсказка — синтаксис макрокоманды Открыть форму (OpenForm) (рис. 13.1...
    Рис. 13.18. Автоматический вывод кратких сведений
    Рис. 13.18. Автоматический вывод кратких сведений И это очень кстати, т. к. позволяет не запоминать все аргументы макрокоманды и порядок их следования. Введите имя формы: Заказы (Orders), запятую,...
    Рис. 13.19. Программа открытия формы "Заказы"
    Рис. 13.19. Программа открытия формы Заказы На примере этой простой программы мы продемонстрировали три очень полезных свойства редактора. Автоматическая проверка синтаксиса — ввод команды успешен...
    Рис. 13.20. Контекстное меню редактора кода
    Рис. 13.20. Контекстное меню редактора кода Кроме описанных выше функций, в контекстном меню присутствуют и другие очень полезные функции, способствующие быстрому написанию кода, — List Constants,...
    Использование окна просмотра объектов
    Использование окна просмотра объектов Окно Object Browser (Обозреватель объектов) позволяет просматривать все объекты, их свойства и методы, доступные для текущего проекта. Объекты могут быть встр...
    Рис. 13.21. Окно просмотра объектов
    Рис. 13.21. Окно просмотра объектов При этом в нижней части окна, которая называется область описания, отображается описание выбранного элемента. Если выбрать в поле Project/Library (Проект/Библио...
    Рис. 13.22. Объекты приложения "db1"
    Рис. 13.22. Объекты приложения db1 Для поиска необходимого объекта, метода или свойства существует поле Search Text (Образец поиска). Это второе поле со списком в верхней части окна. В него можно...
    Рис. 13.23. Отображение результатов поиска
    Рис. 13.23. Отображение результатов поиска Выделив в списке нужную строку, можно снова воспользоваться кнопкой View Definition, чтобы открыть нужную процедуру. Еще одна очень полезная кнопка в это...
    Установка ссылок на объектные библиотеки
    Установка ссылок на объектные библиотеки При обращении к объекту из процедуры VBA вы можете получить сообщение об ошибке, которое может быть вызвано тем, что не подключена соответствующая библиоте...
    Рис. 13.24. Диалоговое окно References
    Рис. 13.24. Диалоговое окно References Все библиотеки, на которые установлены ссылки, помещаются в начале списка, причем, пользуясь кнопками Priority, вы можете поменять порядок их следования. Обр...
    Инструментальные средства отладки
    Инструментальные средства отладки Помимо интеллектуального редактора текста профессиональная среда программирования обычно содержит инструментальные средства отладки. Инструментальные средства отл...
    Меню Debug
    Меню Debug Меню Debug (Отладка) и специальная панель инструментов Debug (Отладка) представлены на рис. 13.25. Назначение команд меню описано в табл. 13.11....
    Рис. 13.25. Меню и панель инструментов Debug
    Рис. 13.25. Меню и панель инструментов Debug...
    Таблица 13.11. Команды меню Debug
    Таблица 13.11. Команды меню Debug Команда Назначение ...
    Окно Locals
    Окно Locals Специальные окна отладки используются главным образом для того, чтобы просматривать промежуточные значения данных: переменных, выражений, свойств объектов и т. д. К ним относятся два о...
    Окно Watches
    Окно Watches Окно Watches (Контрольные) содержит контрольные выражения. Данные выражения контролируются самой Access в процессе выполнения программы, и когда выполнение программы останавливается,...
    Рис. 13.27. Добавление контрольного значения
    Рис. 13.27. Добавление контрольного значения Замечание Группа Context (Контекст) в окне Add Watch позволяет определить область контроля заданного значения или выражения: конкретная процедура текущ...
    Рис. 13.28. Окно Watches редактора кода
    Рис. 13.28. Окно Watches редактора кода Теперь нужно снять точку останова, которую мы установили. Для этого щелкните правой кнопкой мыши в строке останова и выберите команду Toggle, Breakpoint из...
    Окно Quick Watch
    Окно Quick Watch Окно Quick Watch (Быстрый просмотр) используется для просмотра значения свойства, переменной или выражения, которое не определено заранее как контрольное значение. Чтобы открыть э...
    Рис. 13.29. Диалоговое окно Quick Watch
    Рис. 13.29. Диалоговое окно Quick Watch Если вы решите добавить выбранное выражение к контрольным значениям, просто нажмите кнопку Add (Добавить)....
    Окно Immediate
    Окно Immediate Кроме всех перечисленных окон отладки, в Access 2002 сохранилось окно Immediate (Отладка) для тестирования данных и процедур, которое присутствовало еще в Access 2.0. Это окно может...
    Рис. 13.30. Окно Immediate
    Рис. 13.30. Окно Immediate Окно Immediate открывается при нажатии кнопки Immediate Window на панели инструментов, или при выполнении соответствующей команды в меню View, или при нажатии комбинации...
    Переменные, константы и типы данных
    Переменные, константы и типы данных Как и в других языках программирования, в VBA для хранения временных значений, передачи параметров и проведения вычислений используются переменные. Кратко остан...
    Таблица 13.1. Типы данных VBA
    Таблица 13.1. Типы данных VBA Тип данных Описание Array Массив переменных, для ссылки на конкретный элемент массива исполь...

    Окно Call Stack
    Окно Call Stack Окно Call Stack (Стек вызовов) содержит список всех незавершенных процедур приложения и используется для трассировки вложенных процедур. При этом самая перва из вызванных процедур...
    Рис. 13.31. Диалоговое окно Call Stack
    Рис. 13.31. Диалоговое окно Call Stack Выбрав в стеке нужную процедуру, можно нажать кнопку Show (Показать), тогда окно Call Stack закроется и в окне кода модуля появится выбранная процедура. При...
    Использование комбинаций клавиш быстрого вызова
    Использование комбинаций клавиш быстрого вызова Поскольку работа в редакторе — это главным образом работа с клавиатурой, существует большое количество специальных клавиш и комбинаций клавиш быстро...
    Таблица 13.12. Комбинации клавиш...
    Таблица 13.12. Комбинации клавиш быстрого вызова редактирования и отладки кода VBA Комбинация клавиш Назначение ...
    Программирование в формах и отчетах
    Программирование в формах и отчетах, как правило, составляет большую часть кода приложения, т. к. именно формы и отчеты являются основой интерфейса пользователя и с помощью программирования этот и...
    События Access
    События Access Обычно события инициируются действиями пользователя. В зависимости от производимых пользователем действий события можно разделить на несколько типов: события данных, события фокуса,...
    События данных
    События данных К этому типу относятся события, происходящие тогда, когда пользователь вводит, удаляет или изменяет данные в форме, а также перемещается от одной записи к другой....
    Текущая запись
    Текущая запись Событие Текущая запись (Current) происходит, когда очередная запись получает фокус или выполняется повторное обращение к источнику данных формы — таблице или запросу. Таким образом,...
    Удаление
    Удаление Событие Удаление (Delete) происходит, когда пользователь пытается удалить запись из формы. Оно происходит до того, как запись реально удаляется из базы данных. Процедура обработки этого с...
    До подтверждения Del
    До подтверждения Del Удаление записи из базы данных имеет такое большое значение, что с ним связано несколько событий. После события Удаление (Delete) Access выдает специальное окно, запрашивающее...
    После подтверждения Del
    После подтверждения Del Событие После подтверждения Del (AfterDelConfirm) происходит как после подтверждения удаления записи, так и при отмене удаления. Процедура обработки данного события имеет о...
    До вставки
    До вставки Со вставкой новой записи связаны два события: До вставки (Beforelnsert) и описанное далее После вставки (AfterInsert). Событие До вставки (Beforelnsert) происходит, как только пользоват...
    После вставки
    После вставки Событие происходит после того, как в таблицу добавлена новая запись. Обычно это бывает при переходе к следующей записи в форме. Процедура обработки этого события обычно используется...
    До обновления
    До обновления Событие До обновления (BeforeUpdate), так же как и следующее событие После обновления (AfterUpdate), возникает при любом изменении данных в записи или элементе управления. Это событи...
    После обновления
    После обновления Событие После обновления (AfterUpdate) происходит после обновления данных в записи или элементе управления. И хотя обновление уже произошло, можно восстановить старые значения, во...
    Отсутствие в списке
    Отсутствие в списке Событие Отсутствие в списке (NotlnList) возникает в поле со списком, когда пользователь вводит вручную значение в текстовую часть поля, которое отсутствует в списке, и после эт...
    Внесены изменения
    Внесены изменения Событие Внесены изменения (Dirty), так же как и Изменение (Change), возникает в следующих ситуациях: при изменении содержимого текстового поля или поля со списком, при этом измен...
    При обновлении
    При обновлении Событие При обновлении (Updated) возникает при изменении объекта OLE и применяется только к свободным и присоединенным рамкам объекта. Процедура обработки данного события использует...
    Уход с записи
    Уход с записи Событие Уход с записи (RecordExit) происходит всякий раз, когда пользователь пытается выйти (переместить фокус) с текущей записи: перейти к другой записи, закрыть форму, обновить дан...
    Отмена
    Отмена Событие происходит, когда пользователь отменяет изменения, сделанные в текущем поле или текущей записи, например, нажав клавишу Esc или кнопку $$ (Undo Field/Record) на панели инструментов....
    События фокуса
    События фокуса События фокуса происходят, когда форма, отчет или элемент управления в форме получают или теряют фокус, а также когда форма или отчет становятся активными или, наоборот, неактивными...
    Вход
    Вход Событие Вход (Enter) происходит перед тем, как элемент управления в форме получает фокус от другого элемента управления в той же форме или когда при открытии формы получает фокус первый элеме...
    Выход
    Выход Событие Выход (Exit) происходит перед тем, как данный элемент управления передаст фокус другому элементу управления той же формы, но до события Потеря фокуса (LostFocus). Замечание События В...
    Получение фокуса
    Получение фокуса Событие Получение фокуса (GetFocus) происходит, когда форма или элемент управления формы получают фокус. Элемент управления может получить фокус, только если оно видимо и доступно...
    Потеря фокуса
    Потеря фокуса Событие Потеря фокуса (LostFocus) происходит каждый раз, когда форма или элемент управления в форме теряют фокус. Событие происходит после события Выход (Exit). Замечание События Пол...
    Включение
    Включение Событие Включение (Activate) возникает, когда форма или отчет получают фокус, становясь активной формой или отчетом. Это происходит, когда форма или отчет открываются, когда пользователь...
    Отключение
    Отключение Событие Отключение (Deactivate) происходит, когда фокус из формы или отчета переносится на другое окно (таблицы, запроса, формы, отчета, макроса, модуля или окно базы данных). Однако эт...
    События клавиатуры
    События клавиатуры События клавиатуры происходят в форме и элементе формы, когда пользователь нажимает клавиши на клавиатуре или же выполняется макрокоманда sendKeys. Все события клавиатуры связыв...
    Клавиша вниз и Клавиша вверх
    Клавиша вниз и Клавиша вверх События Клавиша вниз (KeyDown) и Клавиша вверх (KeyUp) возникают всякий раз, когда пользователь нажимает или отпускает клавишу на клавиатуре и при этом фокус находится...
    Нажатие клавиши
    Нажатие клавиши Событие Нажатие клавиши (KeyPress) происходит, если пользователь нажимает и отпускает любую комбинацию клавиш для элемента управления или формы, имеющей фокус. В отличие от событий...
    События мыши
    События мыши События мыши происходят, когда какое-либо действие в форме или ее элементе управления выполняется с помощью мыши. События мыши не определены для элементов управления в отчетах, а такж...
    Нажатие кнопки
    Нажатие кнопки Это наиболее широко распространенное событие. Оно возникает как в самой форме, так и в элементах управления формы. Для формы событие Нажатие кнопки (Click) возникает, когда пользова...
    Двойное нажатие кнопки
    Двойное нажатие кнопки Событие Двойное нажатие кнопки (DblClick) происходит после быстрого двойного щелчка любой клавиши на форме или элементе управления, при этом интервал между щелчками не долже...
    Перемещение указателя
    Перемещение указателя Это событие генерируется непрерывно, когда пользователь перемещает указатель мыши по объектам формы. Пока указатель движется в границах объекта, событие Перемещение указателя...
    Колесико мыши
    Колесико мыши Событие возникает, когда пользователь перемещает указатель мыши с помощью колесика скроллирования. Процедура обработки события имеет два параметра: Page — принимает значение True при...
    Кнопка вниз и Кнопка вверх
    Кнопка вниз и Кнопка вверх События Кнопка вниз (MouseDown) и Кнопка вверх (MonseUp) возникают, когда пользователь нажимает и, соответственно, отпускает кнопку мыши, и, в отличие от событий Нажатие...
    События печати
    События печати События печати вызываются отчетом и любой из его областей при печати или предварительном просмотре....
    Форматирование
    Форматирование Событие Форматирование (Format) происходит после того, как отобраны данные для отчета, но перед тем, как фактически форматируется каждый раздел отчета. При этом для раздела данных э...
    Возврат
    Возврат Событие происходит, если при форматировании раздела требуется вернуться к разделу, который уже отформатирован. Оно происходит после события Форматирование (Format), но до события Печать (P...
    Печать
    Печать Событие Печать (Print) возникает после того, как выполнено форматирование раздела отчета, но до того, как он напечатан. Это событие возникает практически после каждого события Форматировани...
    Страница
    Страница Событие Страница (Page) возникает после форматирования страницы отчета, но до вывода ее на печать, и позволяет с помощью процедуры обработки этого события добавить на страницу некоторые э...
    Отсутствие данных
    Отсутствие данных Событие Отсутствие данных (No Data) возникает после форматирования отчета, но до его вывода на печать (до первого события Страница (Page)) и позволяет обнаружить отсутствие запис...
    События фильтра
    События фильтра События фильтра происходят при применении или удалении фильтра в форме....
    Применение фильтра
    Применение фильтра Событие Применение фильтра (ApplyFilter) возникает во всех случаях, когда пользователь выполняет фильтрацию записей в форме с помощью соответствующих команд меню, контекстного м...
    Фильтрация
    Фильтрация Событие Фильтрация (Filter) возникает перед открытием окна фильтра или расширенного фильтра, когда пользователь пытается выполнить команду Изменить фильтр (Filter by Form). Использовать...
    Ссылки на объекты
    Ссылки на объекты Кроме обычных переменных, в Visual Basic часто встречаются неременные, представляющие собой ссылку на объект. Оказывается, зачастую использование переменных для ссылок на объекты...
    События окна
    События окна События окна запускаются при открытии и закрытии форм и отчетов, а также при изменении размеров формы....
    Открытие
    Открытие Событие Открытие (Open) происходит после того, как выполнен запрос, лежащий в основе формы или отчета, но до отображения первой записи или печати отчета. Процедура обработки этого события...
    Закрытие
    Закрытие Событие Закрытие (Close) является последним перед тем, как форма будет удалена с экрана. Обычно его используют для открытия другой формы. Для отчета событие происходит, когда закрывается...
    Загрузка
    Загрузка Событие Загрузка (Load) происходит сразу после события Открытие (Open), но в отличие от него не может быть отменено. Обычно его используют для динамического изменения свойств формы или эл...
    Выгрузка
    Выгрузка Событие Выгрузка (Unload) происходит при закрытии формы до события и может быть отменено. Обычно это событие используется для проверки различных условий, которые определяют, можно ли закр...
    Изменение размера
    Изменение размера Событие Изменение размера (Resize) возникает при открытии формы и при изменении ее размеров. Его обычно применяют, если требуется подстроить размер элементов управления под измен...
    Событие ошибок
    Событие ошибок Событие Ошибка (Error) возникает, когда в процессе обработки формы или отчета ядром Access возникает ошибка. В процедуре обработки этого события можно перехватить стандартное сообще...
    Событие таймера
    Событие таймера Событие Таймер (Timer) возникает регулярно через интервал времени, который задается свойством Интервал таймера (Timerlnterval) формы. Оно позволяет определять действия, которые дол...
    Последовательности событий Access
    Последовательности событий Access При написании процедур обработки событий очень важно понимать, в каком порядке они происходят, т. к. приложение Access управляется событиями и результат работы за...
    Последовательность событий фокуса...
    Последовательность событий фокуса для элементов управления в формах При установке фокуса на элемент управления щелчком мыши, при нажатии клавиши Таb или при открытии формы происходят события: Вход...
    Последовательность событий изменения...
    Последовательность событий изменения данных в элементе управления Когда вводят или изменяют данные в элементе управления, а затем переходят к следующему элементу управления, возникает следующая це...
    Последовательность событий в форме, связанных с записями
    Последовательность событий в форме, связанных с записями Если просто просматриваются записи в форме, то при переходе к каждой новой записи выполняются событие Текущая запись (Current) для формы и...
    Последовательность событий в формах
    Последовательность событий в формах При открытии формы происходит следующая цепочка событий: Открытие = Загрузка = Изменение размера = Включение = Текущая запись = Вход = Получение фокуса События...
    Последовательность событий клавиатуры и мыши
    Последовательность событий клавиатуры и мыши При нажатии и отпускании любой клавиши на клавиатуре в том случае, если фокус находится в одном из элементов управления формы, возникает следующая цепо...
    Последовательность событий в отчетах
    Последовательность событий в отчетах В отчетах события возникают только для самого отчета и его разделов. Для полей отчета события отсутствуют. При выводе отчета на печать события обычно возникают...
    Создание процедур обработки событий
    Создание процедур обработки событий Теперь рассмотрим, как создавать процедуры обработки событий. Для большинства элементов управления формы, а также самой формы и отчета, стандартный набор действ...
    Рис. 13.32. Диалоговое окно событий формы
    Рис. 13.32. Диалоговое окно событий формы Если процедура обработки выбранного события имеет аргументы, они будут также присутствовать в заголовке процедуры (рис. 13.34). Теперь нужно ввести код пр...
    Рис. 13.33. Заготовка процедуры обработки события
    Рис. 13.33. Заготовка процедуры обработки события Рис. 13.34. Процедура обработки событий с аргументом Cancel...
    Синхронизация данных в связанных формах
    Синхронизация данных в связанных формах Пример синхронизации данных в двух связанных формах с помощью процедуры обработки события Текущая запись (Current) можно увидеть в модуле формы Поставщики (...
    Проверка дублирования значений первичного ключа
    Проверка дублирования значений первичного ключа Обычно проверка дублирования значений первичного ключа задается на уровне таблицы, т. е. когда вы определили поле в таблице как первичный ключ, знач...
    Создание перекрестного отчета с изменяющимся числом столбцов
    Создание перекрестного отчета с изменяющимся числом столбцов Рассмотрим возможности обработки событий в отчете на примере отчета Выработка сотрудников. Этот отчет строится на базе перекрестного за...
    Рис. 13.35. Перекрестный запрос...
    Рис. 13.35. Перекрестный запрос Выработка сотрудников Поле Отпускная цена является вычисляемым, и для его вычисления используется формула CCur(CLng([Заказано].[Цена]* [Количество]*(1-[Скидка])*100...
    Листинг 13.1. Процедура обработки...
    Листинг 13.1. Процедура обработки события Форматирование верхнего колонтитула Private Sub PageHeader()_Format(Cancel As Integer,_ FormatCount As Integer) Dim intx As Integer ' Помещает заголовки с...
    Листинг 13.2. Процедура обработки...
    Листинг 13.2. Процедура обработки события Форматирование области данных 1 Private Sub Detaill_Format(Cancel As Integer,_ FormatCount As Integer) ' Вводит значения в поля и скрывает пустые поля. Di...
    Листинг 13.3. Процедура обработки...
    Листинг 13.3. Процедура обработки события Печать области данных Private Sub Detaill_Print(Cancel As Integer, PrintCount As Integer) Dim intX As Integer Dim IngRowTotal As Long ' Вычисляет сумму по...
    Листинг 13.4. Процедура обработки события Печать примечания
    Листинг 13.4. Процедура обработки события Печать примечания Private Sub ReportFooter4_Print(Cancel As Integer,_ PrintCount As Integer) Dim intX As Integer ' Помещает суммы по столбцам в поля приме...
    Листинг 13.5. Процедура обработки события Закрытие отчета
    Листинг 13.5. Процедура обработки события Закрытие отчета Private Sub Report_Close() On Error Resume Next rstReport.Close End Sub...
    Листинг 13.6. Процедура обработки...
    Листинг 13.6. Процедура обработки события Отсутствие данных отчета Private Sub Report_NoData(Cancel As Integer) MsgBox He найдены записи, удовлетворяющие указанным_ условиям., vbExclamation, Запис...
    Использование функций для обработки событий
    Использование функций для обработки событий Обычно для обработки событий в формах и отчетах используют процедуры типа Sub (подпрограммы) или макросы. Однако иногда можно и даже нужно использовать...








Начало