Кузин А.В., Левонисова С.В. Базы данных (5-е издание, 2012) (1084448), страница 31
Текст из файла (страница 31)
3.19);162Рис. 3.19. Диалоговое окно событий формы•выбрать из контекстного меню пункт Построить (Build). В открывшемся диалоговом окне Построитель (Choose Builder) выбрать из списка элемент Программы (Code Builder) и нажать кнопку [ОК]. Откроется окно редактора VBA, в котором появятся первая и последняя строки процедуры (рис. 3.20).Если процедура обработки выбранного события имеет аргументы, они будут также присутствовать в заголовке процедуры(рис.
3.21).Private Sub Form_Current()IEnd SubРис. 3.20. Заготовка процедуры обработки событий,H Борей - Рогт_Клиенты (Code)Я FormPrivate Sub Form Open(Cancel As Integer)IEnd SubРис. 3.21. Процедура обработки событий с аргументом Cancel163Теперь нужно ввести код процедуры между этими двумя строками.Пример 3.13.
Синхронизация данных в двух связанных формах с помощью процедуры обработки события Текущая запись (Current) в модуле формы Поставщики (Supplier).В форме есть кнопка [Просмотр товаров] (Review Products), при нажатии которой выводится форма Список товаров (Product List), показывающая товары данного поставщика. Естественно, что при переходе кновой записи в форме Поставщики, записи в форме Список товаров тожедолжны быть заменены.Процедура обработки имеет следующий вид:Private Sub Form_Current()On Error GoTo Err_Form__Current'Отображение товаров текущего поставщика при открытии формы С п и с о к т о в а р о в .Dim strDocName As StringDim strLinkCriteria As StringstrDocName = "Список товаров"strLinkCriteria = " [КодПоставщика] =Forms![Поставщики]![КодПоставщика]"If IsNull(Me ![Название]) ThenExit SubElself IsLoaded("Список товаров") ThenDoCmd.OpenForm strDocName,,, StrLinkCriteriaEnd IfExit_Form_Current:Exit SubErr_Form_Current:MsgBox Err.DescriptionRésumé Exit Form_CurrentEnd SubЕсли текущая запись в форме Поставщики пустая, т.е.
добавляетсяновая запись, то сразу выполняется выход из процедуры.Если текущая запись отображает конкретного поставщика, то проверяется, загружена ли форма Список товаров.Если форма загружена, то меняется набор записей в ней. Делаетсяэто с помощью макрокоманды ОткрытьФорму (OpenForm) с соответствующим условием отбора записей.
При этом на самом деле форма неоткрывается, просто повторно запрашивается источник данных.3.3. Защита базы данныхMicrosoft Access обеспечивает два традиционных способа защиты базы данных: установку пароля, требуемого при ее откры164гии, и защиту на уровне пользователя, позволяющую ограничивать ту часть БД, к которой пользователь будет иметь доступ илисможет изменять. Кроме того, можно удалить изменяемую программуVisual Basic из базы данных, чтобы предотвратить изменения структуры форм, отчетов и модулей, сохранив БД как файл MDE.Простейшим способом защиты БД является установка пароля.В этом случае при каждом открытии базы данных будет появляться диалоговое окно, в которое требуется ввести пароль, и толькоте пользователи, которые введут правильный пароль, смогут открыть эту базу данных.
Данный способ достаточно надежен дляБД, которая совместно используется небольшой группой пользователей или на автономном компьютере, установка пароля обычно оказывается достаточной.Наиболее гибким и распространенным является способ защиты базы данных на уровне пользователей, который подобен способам защиты, используемым в большинстве сетевых систем.
В этомслучае от пользователей требуется идентифицировать себя и ввести пароль, когда они запускают Microsoft Access.С помощью средств защиты можно указать, какие операции пообработке объектов базы данных разрешается выполнять конкретному пользователю или группе пользователей. При этом о каждомпользователе или группе пользователей ведутся учетные записи суказанием прав доступа к тем или иным объектам.Рабочей называется группа пользователей, работающих с одной базой данных и имеющих общий файл.Файл рабочей группы — это системный файл с информацией огруппе пользователей, работающих с БД коллективного доступа.В файлах рабочих групп хранятся учетные записи, пароли, а такжеданные о правах доступа к объектам БД.Изменение стандартного или создание нового файла рабочейгруппы выполняет программа Администратор рабочих групп,находящаяся в папке System папки Windows.После установки Access пользователь получает право доступако всем объектам БД, т.е.
становится членом группы Admins сименем Admin. Члены группы Admins (администраторы) имеютправо на модификацию БД.Чтобы устранить произвольный доступ в систему всех членовгруппы Admins, следует установить пароль для каждого администратора в ее регистрационной записи. В противном случае при каждом запуске Access администратор будет регистрироваться какпользователь Admin, т. е. без указания пароля.После создания рабочей группы можно приступить к созданиюучетных (регистрационных) записей. По умолчанию создается учетная запись Admin, а также учетные записи групп Admins (Администраторы) и Users (Пользователи) и предоставляются правадоступа ко всем объектам.165Учетная запись администратора включается в рабочую группуAdmins. Администратор имеет право доступа ко всем объектам,созданным в этой группе.Кроме администратора в рабочей группе может быть указанвладелец базы данных (в системе обеспечения безопасности Accessвладельцы объектов имеют особый статус).
По умолчанию пользователь, создавший объект, становится владельцем этого объектаи имеет право на работу с ним.Администраторы и владельцы имеют следующие права:администратор БД всегда может получить право доступа ко всемобъектам, созданным членами данной рабочей группы;владелец БД всегда может открыть базу данных;владелец объекта наделен полными правами доступа к этомуобъекту.Пользователь Admin является владельцем любой базы данныхи всех объектов. Поскольку для него не устанавливается пароль,то для защиты БД от несанкционированного доступа необходимоизменить право владения базой и ее объектами.Существует несколько способов смены владельца объектов базыданных:импортирование всех объектов БД в новый файл;использование вкладки Смена владельца диалогового окна Разрешения.Администратор БД предоставляет всем или некоторым членамрабочей группы права доступа к различным объектам базы данных.
Права доступа хранятся в файле базы данных и характеризуют ее объекты.К разграничению прав доступа пользователей и групп приступают после создания рабочей группы, определения администратора и владельца базы данных, а также создания учетных записейпользователей и групп. Пользователь наследуют права той группы, к которой принадлежит.Перечень прав доступа, определенных в Access, приведен втабл. 3.23.Из таблицы видно, что некоторые права доступа обуславливают наличие других прав.
Так, таблица, в которой разрешено обновление данных, доступна для чтения данных и макета. При наличии прав администратора пользователю доступны все перечисленные выше права.Определить права доступа к некоторому объекту может владелец этого объекта, администратор в рабочей группе Admins илипользователь, которому присвоены права администратора именно для этого объекта.Все права доступа к объекту сохраняются при его изменениитолько в том случае, если не применялся буфер обмена или невыполнялся импорт/экспорт объекта. Однако все связанные с166Т а б л и ц а 3.23Перечень прав доступа, определенных в AccessПраво доступаДействиеОбъекты доступаОткрытие/ЗапускОткрытие БД, формы,отчета или запускмакросаБД, формы, отчеты имакросыЧтение макетаПросмотр объектов врежиме конструктораТаблицы, запросы,формы, отчеты,макросы и модулиИзменение макетаПросмотр, изменениеи удаление объектов врежиме конструктораАдминистратораПолный доступ к объектам и данным, включая возможность присвоения прав доступаБазы данных, таблицы, запросы, формы,отчеты, макросы имодулиЧтение данныхПросмотр данныхТаблицы и запросыОбновление данныхПросмотр и изменениеданных без вставки иудаленияТо жеВставка данныхПросмотр и вставкаданных без измененияи удаления»Удаление данныхПросмотр и удалениеданных»Монопольный доступОткрытие БД в монопольном режимеБазы данныхТо жеобъектом права доступа могут быть утеряны при сохранении объекта под новым именем посредством команды Сохранить как\Экспорт.Если база данных содержит программы Visual Basic, то ее сохранение как M DE-файла скомпилирует все модули, удалит всеизменяемые исходные программы и выполнит сжатие базы данных.
Программы Visual Basic будут по-прежнему выполняться, ноих нельзя будет просмотреть или изменить, благодаря чему уменьшится размер базы данных. Кроме того, будет оптимизированоиспользование памяти, а следовательно, повысится быстродействие.Сохранение базы данных как M DE-файла сделает невозможным выполнение следующих действий:167просмотр, изменение или создание форм, отчетов или модулей в режиме конструктора;добавление, удаление или изменение ссылок на библиотекиобъектов или базы данных;изм енение программы с помощ ью свойств или методовMicrosoft Access или модели объектов VBA, так как M DE-файл несодержит текстов исходных программ;изменение названия проекта VBA базы данных в диалоговомокне Параметры',импорт и экспорт форм, отчетов и модулей. Однако таблицы,запросы и макросы можно будет импортировать и экспортироватьв базы данных, не являющиеся M DE-файлами.Еще одним способом защиты является шифрование — это защита БД от несанкционированного доступа с помощью текстового редактора или средств работы с файлами, например, входящихв состав Windows или Norton Utilities.