Эти категории объектов предназначены как для автоматизации повторяющихся операций при работе с СУБД, так и для создания новых функций путем программирования. В СУБД Microsoft Access макросы состоят из последовательности внутренних команд СУБД и являются одним из средств автоматизации работы с базой. Модули создаются средствами внешнего языка программирования, в данном случае языка Visual Basic for Applications. Это одно из средств, с помощью которых разработчик базы может заложить в нее нестандартные функциональные возможности, удовлетворить специфическое требование заказчика, повысить быстродействие системы управления, а также уровень ее защищенности.
Методически правильно начинать работу с карандашом и листом бумаги в руках, не используя компьютер. На данном этапе он просто не нужен. Неоптимальные решения и прямые ошибки, заложенные на этапе проектирования, впоследствии очень трудно устраняются, поэтому этот этап является основополагающим.
Техническое задание на проектирование базы данных должен предоставить заказчик. Однако для этого он должен владеть соответствующей терминологией и знать, хотя бы в общих чертах, технические возможности основных СУБД. К сожалению, на практике такое положение встречается не всегда. Поэтому обычно используют следующие подходы:
Демонстрируют заказчику работу аналогичной базы данных, после чего согласовывают спецификацию отличий;
Если аналога нет, выясняют круг задач и потребностей заказчика, после чего помогают ему подготовить техническое задание.
При подготовке технического задания составляют:
· Список исходных данных, с которыми работает заказчик;
· Список выходных данных, которые необходимы заказчику для управления структурой своего предприятия;
· Список выходных данных, которые не являются необходимыми для заказчика, но которые он должен предоставить в другие организации (в вышестоящие структуры, в органы статистического учета, прочие административные и контролирующие организации).
При этом очень важно не ограничиваться взаимодействием с головным подразделением заказчика, а провести обсуждение со всеми службами и подразделениями, которые могут оказать оказаться поставщиками данных в базу или их потребителями.
Выяснив основную часть данных, которые заказчик потребляет или поставляет, можно приступать к созданию структуры базы, то есть структуры ее основных таблиц.
1. Работа начинается с составления генерального списка полей – он может насчитывать десятки и даже сотни позиций.
2. В соответствии с типом данных, размещаемых в каждом поле, определяют наиболее подходящий тип для каждого поля.
3. Далее распределяют поля генерального списка по базовым таблицам. На первом этапе распределение производят по функциональному признаку. Цель – обеспечить, чтобы ввод данных в одну таблицу производился, по возможности, в рамках одного подразделения, а еще лучше – на одном рабочем месте.
4. В каждой из таблиц намечают ключевое поле. В качестве такого выбирают поле, данные в котором повторяться не могут. Например, для таблицы данных о студентах таким поле может служить индивидуальный шифр студента. Для таблицы, в которой содержаться расписание занятий, такого поля можно и не найти, но его можно создать искусственным комбинированием полей «Время занятия» и «Номер аудитории». Эта комбинация не повторима, так как в одной аудитории в одно и то же время не принято проводить два различных занятия. Если в таблице вообще нет ни каких полей, которые можно было бы использовать, как ключевые, всегда можно ввести дополнительное поле типа Счетчик – оно не может содержать повторяющихся данных по определению.
5. С помощью карандаша и бумаги расчерчивают связи между таблицами. Такой чертеж называется схемой данных. Существует несколько типов возможных связей между таблицами. Наиболее распространенными являются связи «один ко многим» и «один к одному». Связь между таблицами организуется на основе общего поля, причем в одной из таблиц оно обязательно должно быть ключевым, то есть на стороне «один» должно выступать ключевое поле, содержащее уникальные, неповторяющиеся значения. Значения на стороне «многие» могут повторяться.
6. Разработкой схемы данных заканчивается «бумажный» этап работы над техническим предложением. Эту схему можно согласовать с заказчиком, после чего приступать к непосредственному созданию базы данных.
Следует помнить, что по ходу разработки проекта заказчику непременно будут приходить в голову новые идеи. На всех этапах проектирования он стремится охватить единой системой все новые и новые подразделения и службы предприятия. Возможность гибкого использования его пожеланий во многом определяется квалификацией разработчика базы данных. Если схема данных составлена правильно, подключать к базе новые таблицы нетрудно. Если структура базы нерациональна, разработчик может испытать серьезные трудности и войти в противоречие с заказчиком. Противоречия исполнителя с заказчиком всегда свидетельствуют о недостаточной квалификации исполнителя. Именно по этому этап предварительного проектирования базы данных следует считать основным. От его успеха зависит, насколько база данных станет удобной, и будут ли с ней работать пользователи. Если отмечается, что пользователи базы «саботируют» ее эксплуатацию и предпочитают работать традиционными методами, это говорит не о низкой квалификации пользователей, а о недостаточной квалификации разработчика базы.
На этом этапе завершается предварительное проектирование базы данных, и на следующем этапе начинается ее непосредственная разработка. С этого момента следует начать работу с СУБД.
В ходе проделанной работы, нами были созданы:
- 8 таблиц (Структура таблицы «Билет» указан в Приложении №1).
- 10 запросов, из них 9 на выборку и 1 на удаление (Структура запроса «№ билета запрос» указан в Приложении №2)
- 19 таблиц (Пример формы «Пассажиры» указан в Приложении №3)
- 1 отчет, который используется для печати билета (Пример отчета «Пассажиры Запрос1» указан в Приложении №4)
- 28 макросов (Структура макроса «открытие запроса рейс» указана в Приложении №5)
- Написано несколько процедур на языке VBA, рассмотрим одну из них:
Как известно, система защиты СУБД ACCESS не очень надежна, к примеру, для того чтобы отключить макрос при запуске приложения, достаточно просто удерживать нажатой клавишу «Shift», как раз эту и еще некоторые другие горячие клавиши отключает эта процедура, так же она не позволяет добавлять новые Панели инструментов, а включает только одну (Пример указан в Приложении №6).
Рассмотримкод:
Private Sub butProtOff_Click()
setProtShift True MsgBox "Защитаудалена!" & Chr(13) & Перезапустите базу данных!"
EndSub
Private Sub butProtOn_Click()
setProtShift False MsgBox "Защитаустановлена!" & Chr(13) & "Перезапустите базу данных!"
EndSub
Private Sub setProtShift(myFlag As Boolean) dbChangeProperty "StartupForm",DB_TEXT, "пароль" – Перваяформа(см. Приложение №6)
dbChangeProperty "StartupShowStatusBar", DB_BOOLEAN, myFlag – Нижняяполоскаэкрана
dbChangeProperty "AllowBuiltinToolbars", DB_BOOLEAN, myFlag – Панелиинструментов
dbChangeProperty "AllowFullMenus", DB_BOOLEAN, myFlag –Менютаблиц, формит.п.
dbChangeProperty "AllowBreakIntoCode", DB_BOOLEAN, myFlag – Ошибкивмодуле
dbChangeProperty "AllowSpecialKeys", DB_BOOLEAN, myFlag – Специальныеключи (CTRL+BREAK,...)
dbChangeProperty "AllowBypassKey", DB_BOOLEAN, myFlag – Ключ Shift
End Sub
Function dbChangeProperty(strName As String, varType As Variant, varValue As Variant) As Boolean
Dim prp As Variant, dbs As Database
On Error GoTo 999 – Назначаем переход по ошибке
dbChangeProperty = False – Возвращаем результат при ошибке
Set dbs = CurrentDb – Выбираем базу
dbs.Properties(strName) = varValue – Присваиваем значение
dbChangeProperty = True – Возвращаем результат
Exit Function – Выходим из программы
999:If Err = 3270 Then – Свойство не найдено
Set prp = dbs.CreateProperty(strName, varType, varValue) – Создаемсвойство
dbs.Properties.Append prp – Добавляемсвойство
Err.Clear – Очищаемпотокотошибки
Resume Next – Возвращаемся к следующему оператору
End If
Err.Clear – Очищаем от незнакомой ошибки
End Function
1. Информатика. Базовый курс /Симонович С.В. и др. - СПб: Издательство «Питер», 2000. – 640с.
2. Информатика. Учебное пособие /Под ред. В.Г. Кирия. – Иркутск: ИрГТУ,1998 часть 2. – 382с.
3. Информатика. Учебное пособие /Ломтадзе В.В., Шишкина Л.П. – Иркутск: ИрГТУ, 1999. – 116с.
Структура формы «Билет»
Структура запроса «№ билета запрос»
Внешний вид формы «Пассажиры»
Внешний вид отчета «Пассажиры Запрос1»
Структура макроса «открытие запроса рейс»