Чтение онлайн

на главную - закладки

Жанры

Access 2002. Самоучитель
Шрифт:

Макрос9 производит основную операцию – удаление записи. После этого выполняется цикл. Рассмотрим его подробнее.

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

Цикл имеет следующий синтаксис:

A:

DoCmd.RunMacro «Макрос7»

If IsNull(Forms![Hазначение]![Hазначение] = "") = True Then

DoCmd.RunMacro «МакросЗ»

DoCmd.RunMacro «Макрос9»

GoTo A

Else

End If

Программа Макрос7 осуществляет переход к последней записи. Затем уже знакомая нам логическая конструкция Then… If…Else (Если…То…Иначе) проверяет утверждение Forms![Hазначение]![Hазначение] = "". Иными словами, вы уточняете, есть ли в поле Назначение одноименной формы пустая строка. Проверка выполняется с помощью функции IsNull , которая возвращает значение типа Boolean. Оно показывает, является ли результатом выражения пустое значение (Null). Синтаксис функции:

IsNull(выражение)

Итак, функция IsNull возвращает True (Истина), если выражение имеет значение Null, в противном случае – False (Ложь). Предположим, результатом проверки будет True: в записи обнаружена пустая строка. Тогда с помощью программы Макрос7 блокируется вывод сообщения, а оператор Макрос9 удаляет эту запись и осуществляет переход на метку А. Она повторяет описанные процедуры для следующей пустой записи, и так продолжается до тех пор, пока не выяснится, что подобных записей больше нет. Тогда цикл заканчивается и начинает выполняться следующая группа операторов:

DoCmd.RunMacro «Макрос1»

Cod = DMax(«[Kод]», «Назначение») + 1

Forms![Hазначение]![Kод] = [Cod]

DoCmd.RunMacro «Макрос29»

Приведенный набор команд задает установку на последнюю пустую запись и определяет соответствующее значение для ее кода. (Подробно все это рассматривалось в предыдущем разделе.) Вот полный текст процедуры:

Private Sub Удалить_запись_Click

On Error GoTo Err Назначение Удалить_запись_Click

Dim Cod As Integer

DoCmd.RunMacro «МакросЗ»

DoCmd.RunMacro «Макрос9»

A:

DoCmd.RunMacro «Макрос7»

If IsNull(Forms![Hазначение]![Hазначение] = "") = True Then

DoCmd.RunMacro «МакросЗ»

DoCmd.RunMacro «Макрос9»

GoTo A

Else

End If

DoCmd.RunMacro «Макрос1»

Cod = DMax(«[]», «Назначение») + 1

Forms![Hазначение]![Kод] = [Cod]

DoCmd.RunMacro «Макрос29»

Exit_Назначение_Удалить_запись_Click:

Exit Sub

Err_Назначение_Удалить_запись_Click:

MsgBox Err.Description

Resume Exit_Назначение_Удалить_запись_Click

End Sub

Резюме

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

2. Сфера приложения VBA практически безгранична. В качестве примера в этой главе выбрано «обустройство» собственно базы данных – обеспечение удобства работы с ней для пользователя. Обычно у каждого пользователя свои взгляды на то, что удобно, а что нет, и нередко сервис базы данных приходится дорабатывать.

3. Обращение к VBA оправдано тогда, когда средства, заложенные в Access, либо не позволяют добиться нужного результата, либо предлагают сложное и громоздкое решение.

4. В качестве конкретных примеров использования языка VBA в настоящей главе рассмотрены:

– предупреждение дублирования записей при их вводе с помощью формы;

– установка на последнюю запись при открытии формы;

– удаление записи с дальнейшей установкой на последнюю запись.

Приложение 1 Количественные характеристики объектов Access 2002

Таблица П1.1.

База данных Microsoft Access

1 Под базой данных Microsoft Access (.mdb) понимается совокупность данных и объектов, относящихся к определенной задаче. Управление данными выполняется ядром базы данных Microsoft Jet.

2 Встроенный объект базы данных, определенный как системный, например таблица MSysIndexes, или системные объекты, определенные пользователем. Для определения системного объекта необходимо, чтобы его имя начиналось с символов USys. Объект – некоторая структура, рассматриваемая как самостоятельный файл в пределах Microsoft Access (таблица, запрос, форма, отчет, макрос, модуль, страница доступа к данным и др.).

3 Наборы описаний, инструкций и процедур, сохраненных под общим именем для организации программ на языке Microsoft Visual Basic.

Таблица П1.2. Таблица

Таблица П1.3. Запрос

Таблица П1.4. Форма и отчет

Таблица П1.5. Макрос

Таблица П1.6. Проект Microsoft Access

1 Проект Microsoft Access. Файл Microsoft Access, имеющий подключение к базе данных Microsoft SQL Server, который используется для создания приложений в архитектуре клиент/сервер. Проект не содержит данные или объекты определения данных, такие как таблицы и представления.

Таблица П1.7. Форма и отчет

Таблица П1.8. Макрос

Приложение 2 Словарь Microsoft Access 2002

Bookmark (закладка). Свойство объекта Recordset или формы, содержащее двоичную строку, определяющую текущую запись.

Building Applications with Forms and Reports (Разработка приложений с помощью форм и отчетов). Руководство, содержащее дополнительные сведения о языке Visual Basic, защите, элементах ActiveX и распространении приложений Microsoft Access. Доступно на Web-узле Microsoft www.microsoft.com.

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

MSDE. Совместимое с Microsoft SQL Server 7.0 ядро обработки данных в архитектуре клиент/сервер, обеспечивающее локальное сохранение данных на малых компьютерах, таких как рабочие станции пользователей или малые серверы рабочих групп.

Поделиться:
Популярные книги

Кодекс Охотника. Книга XXVI

Винокуров Юрий
26. Кодекс Охотника
Фантастика:
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXVI

Хозяин Теней 2

Петров Максим Николаевич
2. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней 2

Зодчий. Книга III

Погуляй Юрий Александрович
3. Зодчий Империи
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Зодчий. Книга III

Газлайтер. Том 20

Володин Григорий Григорьевич
20. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
5.00
рейтинг книги
Газлайтер. Том 20

Я до сих пор не царь. Книга XXVII

Дрейк Сириус
27. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я до сих пор не царь. Книга XXVII

Хозяин Теней 5

Петров Максим Николаевич
5. Безбожник
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Хозяин Теней 5

Воплощение Похоти

Некрасов Игорь
1. Воплощение Похоти
Фантастика:
юмористическое фэнтези
попаданцы
рпг
аниме
5.00
рейтинг книги
Воплощение Похоти

Вернувшийся: Новая жизнь. Том I

Vector
1. Вернувшийся
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Вернувшийся: Новая жизнь. Том I

Вперед в прошлое 7

Ратманов Денис
7. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 7

За Горизонтом

Вайс Александр
8. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
За Горизонтом

Бастард Императора. Том 5

Орлов Андрей Юрьевич
5. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 5

Телохранитель Генсека. Том 1

Алмазный Петр
1. Медведев
Фантастика:
попаданцы
альтернативная история
7.00
рейтинг книги
Телохранитель Генсека. Том 1

Прорыв

Круз Андрей
3. Эпоха мертвых
Фантастика:
боевая фантастика
9.33
рейтинг книги
Прорыв

Запечатанный во тьме. Том 1. Тысячи лет кача

NikL
1. Хроники Арнея
Фантастика:
уся
эпическая фантастика
фэнтези
5.00
рейтинг книги
Запечатанный во тьме. Том 1. Тысячи лет кача