ВВЕДЕНИЕ
Впервые Windows была выпущена в свет в 1985 году фирмой Microsoft. В
течение 1987-1989 гг. появилось большое количество мощных и удобных
программ, работающих в среде Windows, например, Microsoft Word для Windows,
Excel, Aldus PageMaker и т.д., что обусловило все растущую популярность
Windows у пользователей. А начиная с версии 3.0, созданной в 1990 г. и
предоставившей дополнительные удобства пользователям, Windows начала свое
победоносное шествие, став фактически стандартом для IBM PC - совместимых
компьютеров.
Windows - это графическая оболочка, которая открывает новые возможности в использовании персонального компьютера. Windows представляет собой интегрированную среду, которая позволяет создать удобное окружение для запуска программ, обеспечив при этом одновременную работу сразу нескольким приложениям.
Каждая программа в Windows имеет хотя бы одно окно, которое предназначено для связи пользователя с данной программой. Экран монитора представляется в Windows как рабочий стол, на котором располагаются окна работающих в данный момент программ. Программа также может быть представлена в виде небольшого изображения - иконки. Соответственно, любое окно (программа) может быть сжато до иконки и восстановлено в нормальных размерах. Это существенно повышает информационную емкость экрана при работе с Windows. Все это объединяется удобным управлением, рассчитанным, в основном, на применение мыши.
Помимо большого набора программ, характерных для интегрированной среды, текстового и графического редактора, базы данных и т.п., - Windows поддерживает обширный программный интерфейс, что позволяет создавать свои собственные программы для работы в среде Windows. Изучение этого программного интерфейса важно уже и потому, что этот интерфейс стал
стандартом и поддерживается многими производителями вычислительной техники и программного обеспечения.
Ниже мы рассмотрим один из наиболее распространенных и популярных
среди пользователей персональных компьютеров программный пакет Microsoft
Office и покажем некоторые возможности одной из его программ управления
данными Access, предназначенную главным образом для программистов и
поставляемую только в составе профессионального издания пакета Office.
1. Microsoft Office
Большинство обычных пользователей компьютеров сталкиваются с различными проблемами. Например, вы используете текстовый редактор одной фирмы, программу для работы с электронными таблицами - другой, программу деловой графики - третьей, а производительность вашего электронного помощника в итоге оказывается невысокой. В чем дело? Да просто эти программы не предназначены для совместной работы.
К счастью, решение у этой проблемы есть: пакет Microsoft Office, который содержит большую часть необходимого программного обеспечения.
Элементы интерфейса входящих в него программ оформлены одинаково и
“общаются“ друг с другом на одном и том же языке.
Пакет Office - это нечто большее, чем просто набор программ в одной коробке. Уже его название подсказывает, что он должен содержать мощные прикладные программы для коммерческого применения, которые легко и непринужденно работают с текстами, числами и изображениями.
Но самое привлекательное в пакете Office то, что связывает эти
приложения воедино, - все эти программы имеют общее меню и наборы кнопок,
которые выглядят очень похоже. Научившись работать с одним из приложений,
вы тем самым в значительной степени продвинетесь в изучении остальных. К
тому же в пакете имеется простой в использовании управляющий центр -
Диспетчер Microsoft Office, позволяющий запускать отдельные программы и
выходить из них, либо получать подробные указания и оперативную помощь
простым щелчком кнопки мыши.
В состав пакета Office входят:
1.1. Большие прикладные программы
1. WORD - мощный текстовый редактор, позволяющий быстро создать документ любой сложности из разрозненных заметок и довести до совершенства информационный бюллетень или брошюру.
Это уже общепризнанно - редактор Word фирмы Microsoft является сегодня
самой популярной в мире программой. Word начинен “быстрыми“ командами и
самыми современными средствами такими, как встроенная программа проверки
правописания и словарь синонимов, которые помогают грамотно составлять
документы, и готовыми шаблонами, позволяющими сводить воедино заметки,
письма, счета и брошюры без больших усилий.
1. EXCEL - производит с числами то же, что Word с существительными и глаголами. Каждый, кто работает с цифрами, почувствует себя в среде Excel как рыба в воде. Программу Excel используют для составления бюджетов и финансовых отчетов, для превращения цифр в наглядные диаграммы и графики, для проведения анализа типа «А что будет, если?», а также для сортировки длиннейших списков в считанные секунды.
С помощью электронных таблиц Excel можно впечатывать числа строку за строкой и столбец за столбцом, будучи вполне уверенным в том, что Excel правильно сложит, вычтет, умножит, разделит и вообще обойдется с ними как следует.
1. PowerPoint - позволит профессионально подготовить презентацию, выгодно отличающуюся броской графикой и эффектно оформленными тезисами. Но что самое замечательное, можно превратить документ, подготовленный в редакторе Word, в презентацию всего лишь одним щелчком мыши. Если работа состоит в том, чтобы рекламировать изделия, идеи или проекты, то
PowerPoint будет просто необходим.
1. ACCESS - представляет собой мощную программу управления данными, предназначенную главным образом для программистов. Access поставляется только в составе профессионального издания пакета Office.
1.2. Программы - помощники:
Программа Graph, позволяет ввести несколько чисел и быстро превратить их в
график.
Программа Organization Chart поможет создать штатное расписание фирмы.
Программа Equation Editor кажется довольно сложной, если нет базового
образования по математике.
Программа WordArt поможет изменить почти до неузнаваемости форму букв или
цифр, чтобы использовать их при создании привлекательных логотипов или
заголовков.
Программа ClipArt Gallery может просмотреть несколько сотен рисунков в
поисках наилучшей иллюстрации для информационного бюллетеня или
презентации.
1.3. Система оперативной помощи:
Пакет Office и его приложения изобилуют полезными подсказками и пошаговыми
указаниями того, как выполнять ту или иную операцию.
Талантливые Мастера (Wizards) проведут шаг за шагом к решению сложных
задач.
Карточки - шпаргалки (Cue Cards) предложат подробные указания, которые постоянно будут перед глазами во время работы.
Функция Просмотр (Preview) и Примеры (Demos) продемонстрируют выполнение
сложных задач.
1.4. Диспетчер Microsoft Office (MOM):
МОМ позволяет запустить любую программу пакета Office. Его можно даже использовать для управления всей работы ПК.
2. Microsoft Access
2.1. Основные сведения
Приложение Microsoft Access 97/2000 (далее Access) является мощной и
высокопроизводительной 32-разрядной системой управления реляционной базой
данных (далее СУБД).
База данных – это совокупность структурированных и взаимосвязанных данных и
методов, обеспечивающих добавление выборку и отображение данных.
Реляционная база данных. Практически все СУБД позволяют добавлять новые данные в таблицы. С этой точки зрения СУБД не отличаются от программ электронных таблиц (Excel), которые могут эмулировать некоторые функции баз данных.
Существует три принципиальных отличия между СУБД и программами
электронных таблиц:
1. СУБД разрабатываются с целью обеспечения эффективной обработки больших объёмов информации, намного больших, чем те, с которыми справляются электронные таблицы.
1. СУБД может легко связывать две таблицы так, что для пользователя они будут представляться одной таблицей. Реализовать такую возможность в электронных таблицах практически невозможно.
1. СУБД минимизируют общий объём базы данных. Для этого таблицы, содержащие повторяющиеся данные, разбиваются на несколько связанных таблиц.
Access – мощное приложение Windows. При этом производительность СУБД органично сочетаются со всеми удобствами и преимуществами Windows.
Как реляционная СУБД Access обеспечивает доступ ко всем типам данных и
позволяет одновременно использовать несколько таблиц базы данных. Можно
использовать таблицы, созданные в среде Paradox или dBase.
Работая в среде Microsoft Office, пользователь получает в своё распоряжение
полностью совместимые с Access текстовые документы (Word) , электронные
таблицы (Excel), презентации (PowerPoint). С помощью новых расширений для
Internet можно напрямую взаимодействовать с данными из World Wide Web и
транслировать представление данных на языке HTML, обеспечивая работу с
такими приложениями как Internet Explorer и Netscape Navigator.
Access специально спроектирован для создания многопользовательских
приложений, где файлы базы данных являются разделяемыми ресурсами в сети. В
Access реализована надёжная система защиты от несанкционированного доступа
к файлам.
База данных храниться в одном файле, но профессиональные пользователи предпочитают разделять базу данных на два файла: в одном хранятся объекты данных (таблицы, запросы), в другом объекты приложения (формы, отчёты, макросы, модули).
В последних версиях Access представлен новый формат файла (MDE)
–библиотеки, с помощью которого можно создавать приложения, не включая VBA-
код.
Несмотря на то, что Access является мощной и сложной системой, его
использование не сложно для непрофессиональных пользователей.
2.2. Системные требования
1. 80486DX33 или мощнее
2. Windows 95/98/2000 или Windows NT (версия не ниже 3.51)
3. Не мене 12 Мб оперативной памяти (для совместной работы с другими приложениями не менее 24 Мб)
4. Около 100 Мб дискового пространства (только для Access и новых баз данных).
2.3. Основные функции
1. Организация данных. Создание таблиц и управление ими.
2. Связывание таблиц и обеспечение доступа к данным. Access позволяет связывать таблицы по совпадающим значениям полей, с целью последующего соединения нескольких таблиц в одну.
3. Добавление и изменение данных. Эта функция требует разработки и реализации представленных данных, отличных от табличных (формы).
4. Представление данных. Access позволяет создавать различные отчёты на основе данных таблиц и других объектов базы данных.
5. Макросы. Использование макросов позволяет автоматизировать повторяющиеся операции. В последних версиях Access макросы используют для совместимости.
6. Модули. Модули представляют собой процедуру или функцию, написанные на
Access VBA (диалект Visual Basic Application). Эти процедуры можно использовать для сложных вычислений. Процедуры на Access VBA превышают возможности стандартных макросов.
7. Защита базы данных. Эти средства позволяют организовать работу приложения в многопользовательской среде и предотвратить несанкционированный доступ к базам данных.
8. Средства печати. С помощью этой функции Access позволяет распечатать практически всё, что можно увидеть в базе данных.
Access так же позволяет создавать дистрибутивные диски для
распространения готового приложения (с помощью Office Developer Edition
Tools). Распространение подразумевает поставку всех необходимых файлов на
каком-либо носителе.
Пакет ODE Tools включает мастер установки, автоматизирующий создание
средств распространения и программы установки. Он так же позволяет
выполнение приложения на компьютерах, на которых не установлен Access.
2.4. Элементы базы данных
1. Таблицы. В базе данных информация хранится в виде двумерных таблиц.
Можно так же импортировать и связывать таблицы из других СУБД или систем управления электронными таблицами. Одновременно могут быть открыты 1024 таблицы.
2. Запросы. При помощи запросов можно произвести выборку данных по какому- нибудь критерию из разных таблиц. В запрос можно включать до 255 полей.
3. Формы. Формы позволяют отображать данные из таблиц и запросов в более удобном для восприятия виде. С помощью форм можно добавлять и изменять данные, содержащиеся в таблицах. В формы позволяют включать модули.
4. Отчёты. Отчёты предназначены для печати данных, содержащихся в таблицах и запросах, в красиво оформленном виде. Отчёты так же позволяют включать модули.
5. Макросы (см. выше)
6. Модули. Модули содержат VBA-код, используемый для написания процедур обработки событий таких, как, например, нажатия кнопки в форме или отчёте, для создания функций настройки, для автоматического выполнения операций над объектами базы данных и программного управления операциями, т.е. добавление VBA-кода позволяет создать полную базу данных с настраиваемыми меню, панелями инструментов и другими возможностями.
Модули снимают с пользователя приложения необходимость помнить последовательность
выбора объектов базы данных для выполнения того или иного действия и повышают эффективность работы.
База данных может содержать до 32768 объектов.
В состав Access входит множество мастеров, построителей и надстроек,
которые позволяют упростить процесс создания объектов базы данных.
2.5. Таблицы
1. Создание таблицы в режиме Мастера таблиц
Процесс создания объекта базы данных при помощи мастера делится на несколько шагов, на каждом из которых можно установить требуемые характеристики создаваемого объекта. Мастер таблиц позволяет создать новую таблицу на основе 33 образцов таблиц делового применения и 20 образцов таблиц личного применения (для английской версии Access соответственно 77 и 44). Многие таблицы базы данных Борей созданы на основе образцов Мастера таблиц.
Использование Мастера таблиц служит отличным примером, позволяющим
понять общую процедуру работы с мастерами Access. Создание таблиц на основе
образцов Мастера таблиц имеет ограниченные возможности в настоящих
приложениях. В большинстве случаев для создания таблиц используется импорт
или связывание данных с другими базами данных или электронными таблицами.
2. Создание таблицы в режиме Конструктора таблиц
Если импортировать или связать данные нельзя, то чаще всего таблицы создаются в режиме конструктора, который позволяет определить требуемую структуру таблицы. В режиме конструктора таблиц можно увидеть названия, типы данных, описания назначения, а также некоторые дополнительные свойства полей таблицы. То, что появляется в верхней части окна таблицы, открытой в режиме конструктора, называется бланком структуры таблицы или просто бланком таблицы. В нижней части окна таблицы, открытой в режиме конструктора, выводятся свойства полей таблицы, а также краткое описание активного свойства таблицы.
3. Создание таблицы непосредственно в режиме таблицы
Access дает возможность создания таблиц непосредственно в режиме таблицы. При этом Access создает пустую таблицу на основе таблицы, используемой по умолчанию, со структурой, имеющей 20 полей и 30 пустых записей. После этого можно вводить данные прямо в таблицу. При ее сохранении Access анализирует данные и выбирает тот тип для каждого поля, который больше всего соответствует введенным данным. Создание таблиц в режиме таблицы имеет ограниченное применение. Поля таблицы не имеют содержательных имен, так что почти всегда нужно будет редактировать структуру, чтобы переименовать поля.
Кроме того, из примера Access не всегда может правильно определить тип данных. Таблицы, которые созданы в режиме таблицы, не могут включать объекты OLE и мемо-поля. Если есть желание иметь такие поля, вам нужно изменить структуру таблицы. При создании таблицы в режиме таблицы не происходит экономии времени по сравнению с традиционным способом определения полей и установки их свойств в структуре пустой таблицы.
При разработке структуры таблицы необходимо указать, какую информацию
она должна содержать. После того как определена информация, которая должна
быть включена в таблицу, ее следует разбить по полям. Этот процесс включает
в себя выбор имени поля, которое в таблице должно быть уникальным.
Необходимо включать в имя поля как можно больше информации о его
содержимом, но в то же время стараться избегать длинных имен. Обычно при
разработке баз данных в различных таблицах могли содержаться поля с
одинаковыми именами (чаще всего таблицы связывались по этим полям). Access
также позволяет использовать одинаковые имена полей в различных таблицах,
но по причине того, что Access использует имена полей при определении
условий целостности данных, лучше не допускать повторения имен полей.
Перед началом заполнения таблицы нужно определить связи этой таблицы с другими таблицами базы данных, определить ключевое поле и создать индексы.
Связь между таблицами устанавливает отношения между совпадающими
значениями в ключевых полях — обычно между полями разных таблиц. В
большинстве случаев связывают ключевое поле одной таблицы с соответствующим
ему полем (часто имеющим то же имя), которое называют полем внешнего ключа
во второй таблице. Таблица, содержащая ключевое поле, называется главной, а
таблица, содержащая внешний ключ — связанной. Существует четыре вида
отношений:
Один к одному. При использовании отношения "один к одному" запись в
таблице "А" (главной таблице) может иметь не более одной связанной записи в
таблице "В" (связанной таблице) и наоборот. Этот тип связи используют не
очень часто, поскольку такие данные могут быть помещены в одну таблицу.
Связь с отношением "один к одному" используют для разделения очень широких
таблиц или для отделения части таблицы по соображениям защиты. В таблицах
связанных отношением "один к одному" ключевые поля должны быть уникальными.
Один ко многим. Связь с отношением "один ко многим" является наиболее часто используемым типом связи между таблицами. В такой связи каждой записи в таблице "А" могут соответствовать несколько записей в таблице "В", а запись в таблице "В" не может иметь более одной
соответствующей ей записи в таблице "А". В таблице "А" ключевое поле должно
быть уникальным. Связь с отношением "один ко многим" таблиц "А" и "В" можно
рассматривать как связь с отношением "многие к одному" таблиц "В" и "А".
Многие к одному. При использовании отношения "многие к одному" одной записи
в таблице "А" может соответствовать одна запись в таблице “B”, а запись в
таблице "В" может иметь более одной соответствующей ей записи в таблице
"А". В таблице "А" ключевое поле должно быть уникальным. Связь с
отношением "один ко многим" таблиц "А" и "В" можно рассматривать как связь
с отношением "многие к одному" таблиц "В" и "А".
Многие ко многим. При использовании отношения "многие ко многим" одной
записи в таблице "А" могут соответствовать несколько записей в таблице "В",
а одной записи в таблице "В" несколько записей в таблице "А". В этом случае
не требуется уникальности ключевых полей таблиц "А" и "В". Этот вид
отношения используется для связывания таблиц, имеющих только внешние ключи.
Связанные поля не обязательно должны иметь одинаковые имена, однако, они должны иметь одинаковые типы данных. Кроме того, связываемые поля типа "Числовой" должны иметь одинаковые значения свойства "Размер поля". Исключениями из этого правила являются поля счетчика с последовательной нумерацией, которые могут связываться с числовыми полями размера "Длинное целое". Существует возможность создать связь между текстовыми полями разной длины, но это может вызвать сложности при создании запросов.
Автоматическое обеспечение ссылочной целостности данных является важной особенностью Access. Если на связь между таблицами наложены условия ссылочной целостности, то Access не позволяет добавлять в связанную таблицу записи, для которых нет соответствующих записей в главной таблице, и изменять записи в главной таблице таким образом, что после этого в связанной таблице появятся записи, не имеющие главных записей; а также удалять записи в главной таблице, для которых имеются подчиненные записи в связанной таблице. Условия целостности данных определяют систему правил, используемых в Access для поддержания связей между записями в связанных таблицах. Эти правила делают невозможным случайное удаление или изменение связанных данных. После наложения условий целостности данных на операции со связанными таблицами накладываются ограничения. Невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержащееся в ключевом поле главной таблицы.
Необходимо так же определить первичный ключ. Если таблица никогда не будет использоваться в качестве главной, то ключ для нее определять не
нужно. В главных таблицах обычно содержится информация о реальных объектах, причем с каждым объектом ассоциируется только одна запись. Определение ключа таблицы является простейшим способом предотвращения появления в таблице одинаковых записей. В главной таблице связи должен быть определен первичный ключ. Access считает таблицы, у которых такой ключ не определен, подозрительными. При открытии таких таблиц в режиме конструктора появляется диалоговое окно, сообщающее о том, что ключ таблицы не определен. Ключ можно определить и в связанных таблицах, что поможет избежать появления повторяющихся данных. Ключ таблицы можно задать по значению нескольких полей. Access автоматически индексирует таблицу по значению ключа, но может потребоваться создать дополнительные индексы по значениям других полей. Индексы позволяют ускорить поиск данных в тех полях таблицы, по которым она проиндексирована. Каждая таблица Access может иметь до 32 индексов, 5 из которых могут быть составными (в составной индекс может входить не более 10 полей). Тем не менее, не стоит увлекаться созданием индексов для каждого поля таблицы и всех их комбинаций, поскольку это может существенно замедлить процесс заполнения таблицы (при изменении или добавлении записи автоматически обновляются все индексы).
Одним из основных принципов разработки реляционных баз данных является то, что все данные, содержащиеся в поле таблицы, должны иметь один и тот же тип. Для каждого поля таблицы необходимо задать тип данных. По умолчанию используется тип данных «Текстовый». При задании типа данных поля можно также указать размер, формат и другие параметры, влияющие на отображение значения поля и точность числовых данных.
Основные типы данных:
1. Текстовый. Текст или числа, не требующие проведения расчётов.
2. МЕМО. Поле этого типа предназначено для хранения небольших текстовых данных (до 64000 символов). Поле этого типа не может быть ключевым или проиндексированным.
3. Числовой. Этот тип данных содержит множество подтипов. От выбора подтипа
(размера) зависит точность вычислений.
4. Счётчик. Уникальные, последовательно возрастающие числа, автоматически вводящиеся при добавлении новой записи в таблицу.
5. Логический. Логические значения, а так же поля, которые могут содержать одно из двух возможных значений.
6. Денежный. Денежные значения и числовые данные, используемые в математических вычислениях.
7. Дата/Время. Дата и время хранятся в специальном фиксированном формате.
8. Поле объекта OLE. Включает звукозапись, рисунок и прочие типы данных.
Поле этого типа не может быть ключевым или проиндексированным.
9. Гиперсвязь. Содержит адреса Web-страниц.
2.6. Запросы
Запросы являются важным инструментом в любых системах управления
базами данных. Они используются для выделения, обновления и добавления
новых записей в таблицы. Чаще всего запросы используются для выделения
специфических групп записей, чтобы удовлетворить определенному критерию.
Кроме того, их можно использовать для получения данных из различных таблиц,
обеспечивая единое представление связанных элементов данных.
В Access существует четыре типа запросов для различных целей
Запросы на выборку отображают данные из одной или нескольких таблиц в виде
таблицы.
Перекрестные запросы собирают данные из одной или нескольких таблиц в
формате, похожем на формат электронной таблицы. Эти запросы используются
для анализа данных и создания диаграмм, основанных на суммарных значениях
числовых величин из некоторого множества записей.
Запросы на изменение используются для создания новых таблиц из результатов
запроса и для внесения изменений в данные существующих таблиц. С их помощью
можно добавлять или удалять записи из таблицы и изменять записи согласно
выражениям, задаваемым в режиме конструктора запроса.
Запросы с параметрами — это такие запросы, свойства которых изменяются
пользователем при каждом запуске. При запуске запроса с параметром
появляется диалоговое окно, в котором нужно ввести условие отбора. Этот тип
запроса не является обособленным, т. е. параметр можно добавить к запросу
любого типа.
2.7. Формы
Формы Access позволяют создавать пользовательский интерфейс для таблиц базы данных. Хотя для выполнения тех же самых функций можно использовать режим таблицы, формы предоставляют преимущества для представления данных в упорядоченном и привлекательном виде. Формы позволяют также создавать списки значений для полей, в которых для представления множества допустимых значений используются коды. Правильно разработанная форма ускоряет процесс ввода данных и минимизирует ошибки.
Формы создаются из набора отдельных элементов управления: текстовые поля для ввода и редактирования данных, кнопки, флажки, переключатели, списки, метки полей, а также рамки объектов для отображения графики и
объектов OLE. Форма состоит из окна, в котором размещаются два типа элементов управления: динамические (отображающие данные из таблиц), и статические (отображающие статические данные, такие, как метки и логотипы).
Формы Access являются многофункциональными; они позволяют выполнять задания, которые нельзя выполнить в режиме таблицы. Формы позволяют производить проверку корректности данных, содержащихся в таблице. Access позволяет создавать формы, включающие другие формы (форма внутри формы называется подчиненной). Формы позволяют вычислять значения и выводить на экран результат.
Приложения для работы с базами данных можно разделить на три основных категории:
. Управление транзакциями. Эти формы, работают непосредственно с таблицами, при условии, что активна только одна таблица. Если для добавления и редактирования информации в более чем одной таблице используется единственная форма, то можно создать запрос на обновление, включающий все нужные поля, а затем создать форму на основе этого запроса. Главная форма также может использовать единственную таблицу в качестве источника данных, но, кроме того, включать подчиненные формы, в качестве источника данных которых используются другие таблицы. Подчиненная форма, которая появляется ниже текстовых полей главной формы, используется для просмотра и добавления данных в таблицу, связанную с подчиненной формой.
. Доступ к данным. Такие формы предназначены только для просмотра информации. Формы, предназначенные только для доступа к данным, можно разрабатывать как с целью перспективного планирования действий, так и для принятия экстренного решения. Экстренное решение приводит к единственному действию, такому, например, как предоставление большого кредита клиенту, или посылка представителя по продажам для определения причины отказа клиента от товара. Приложения Access позволяют использовать три уровня вложенности форм: главная, подчиненная и подчиненная форма, включенная в предыдущую подчиненную форму. Формы, предназначенные только для доступа к данным, в качестве источника данных часто используют запросы, которые суммируют данные по временным промежуткам.
. Администрирование баз данных. Приложения этой категории выполняют административные функции такие, как создание баз данных или таблиц, разграничение прав доступа пользователей к объектам баз данных, обеспечение безопасности с помощью шифрования, периодическое уплотнение базы данных, а также операции резервного копирования.
Приложения для администрирования баз данных требуют наличия полного доступа
ко всем объектам, содержащимся в базе данных.
Простейший путь создания основной и подчиненной форм - использование
Мастера форм, который позволяет создавать формы (с подчиненными или без),
содержащие поля из одной или более таблиц или запросов. Мастер форм создает
базовый внешний вид формы и добавляет текстовые поля для отображения и
редактирования значений полей таблиц. Независимо от того, являетесь ли вы
профессиональным разработчиком приложений или начинающим пользователем,
использование Мастера форм заметно упрощает и ускоряет процесс создания
простых форм, которые затем можно усовершенствовать в режиме конструктора.
2.8. Отчёты
Конечным продуктом большинства приложений баз данных является отчет. В
Access отчет представляет собой специальный тип непрерывных форм,
предназначенных для печати. Для создания отчета, который можно распечатать
и распределить между потребителями, Access комбинирует данные в таблицах,
запросах и даже формах. Распечатанная версия формы может служить отчетом.
Создаваемые Access отчеты делятся на шесть основных типов:
1. Отчеты в одну колонку представляют собой один длинный столбец текста, содержащий значения всех полей каждой записи таблицы или запроса. Надпись указывает имя, а справа от нее указывается значение поля. Новое средство
Access Автоотчет позволяет создать отчет в одну колонку щелчком по кнопке панели инструментов Автоотчет. Отчеты в одну колонку используются редко, поскольку такой формат представления данных приводит к лишней трате бумаги.
2. В ленточных отчетах для каждого поля таблицы или запроса выделяется столбец, а значения всех полей каждой записи выводятся по строчкам, каждое в своем столбце. Если в записи больше полей, чем может поместиться на странице, то дополнительные страницы будут печататься до тех пор, пока не будут выведены все данные; затем начинается печать следующей группы записей.
3. Многоколоночные отчеты создаются из отчетов в одну колонку при использовании колонок "газетного" типа или колонок "змейкой", как это делается в настольных издательских системах и текстовых процессорах.
Информация, которая не помещается в первом столбце, переносится в начало второго столбца, и так далее. Формат многоколоночных таблиц позволяет сэкономить часть бумаги, но применим не во всех случаях, поскольку выравнивание столбцов едва ли соответствует ожиданиям пользователя.
В основном отчёты проще всего построить при помощи Мастера отчётов.
Мастер отчетов старается создать оптимальный вариант окончательного отчета
с первой попытки. Обычно мастер в достаточной степени приближается к
законченному варианту, так что тратиться намного меньше времени на
редактирование базового отчета мастера, чем ушло бы на создание отчета из
незаполненного шаблона.
2.9. Макросы
При работе с базой данных часто приходится снова и снова выполнять
одни и те же задачи. Чтобы не повторять одни и те же действия, можно
использовать макросы. База данных неуклонно разрастается по мере того, как
туда вносятся новые записи в формы, создаются запросы и распечатываются
новые отчеты. При этом разрабатываются и сохраняются для последующего
использования новые объекты. Приходится регулярно выполнять некоторые
задачи. Для выполнения таких регулярных задач удобно использовать макросы
Access. После создания этих небольших программ можно запускать их
автоматически при определенных действиях пользователя (например, при щелчке
на кнопке или при открытии определенной формы). Для автоматического запуска
макросов в Access используются так называемые события. Макросы Access
позволяют автоматически повторять различные действия и тем самым избавляют
от написания сложных программ и подпрограмм. Выполнение прикладной задачи
можно представить как результат последовательного выполнения действий,
каждое из которых может быть записано соответствующей командой на языках
Visual Basic и VBA. Кроме того, с помощью макроса можно имитировать выбор
команды меню или перемещение мыши. Макросы Access обычно не дублируют
отдельных нажатий клавиш или перемещений мыши, выполняя особые, заданные
пользователем задачи, например открытие формы или запуск отчета. Используя
макросы для выполнения рутинных операций, в существенно экономит время и
силы. Кроме того, поскольку всякий раз при запуске макроса будет
осуществляться одна и та же последовательность действий, макрос сделает
работу с базой данных более эффективной и аккуратной.
Назначать макросы, зависящие от событий, можно с помощью окна свойств
форм и отчетов. Что касается таблиц и запросов, они свойствами событий не
обладают. Кроме того, при работе с формами можно запускать макросы с
помощью имеющихся в Access панелей инструментов, командных кнопок и меню.
Использование этих особенностей позволяет очень легко и эффективно
использовать макросы, связанные с событиями.
Макросы можно запускать и на уровне отдельных элементов управления, используя для этого соответствующие события. Например, можно проверить правильность ввода сложных данных непосредственно на уровне поля (а не после выхода этой записи), используя для этого свойство данного поля, а не свойства на уровне всей формы.
Любой макрос может состоять из одной или нескольких макрокоманд. Можно ввести последовательность выполняемых макрокоманд в столбец
Макрокоманда, а напротив каждой команды в столбце Примечание дать описание соответствующей команды. Примечания не оказывают влияния на выполнение макроса. В нижней части окна находится область Аргументы макрокоманды. В этой области можно задать необходимые аргументы (свойства, параметры) для соответствующих макрокоманд. Многие макрокоманды требуют введения дополнительной информации, например о том, над каким объектом следует выполнять указанное действие.
После создания макросов можно объединить несколько взаимосвязанных макросов в один.
2.10. Панели и меню
До сих пор приходилось иметь дело с отдельными объектами Access. И с
каждым из них нужно работать в интерактивном режиме, открывая в окне базы
данных вкладку требуемого объекта.
Но можно связать объекты в единое приложение. При этом вам не потребуется
умение создавать сложные программы. Благодаря использованию кнопочных форм,
диалоговых окон и меню работу с приложением можно автоматизировать и
упростить, скрывая от пользователя ненужные в текущий момент объекты
Access.
Кнопочная форма представляет собой созданную пользователем форму с
кнопками. С их помощью можно, например, запускать макросы открытия форм и
печати отчетов. С помощью кнопочной формы выполнить несколько действий
можно, щелкнув на одной кнопке. Используя кнопочную форму и другие объекты
можно объединять созданные ранее объекты базы данных в одном приложении
(при этом приложение может иметь вид, отличный от внешнего вида Access). В
основном кнопочная форма используется в качестве главного меню приложения.
Поскольку кнопочная форма выполняет только роль меню приложения, в ней
следует использовать минимальное число элементов управления. Поэтому обычно
в кнопочную форму включают только кнопки, надписи, рамки объектов, линии и
прямоугольники. Другие типы элементов управления, такие как текстовые поля
(связанные с полями базы данных), списки, поля со списком, диаграммы и
подчиненные формы, обычно в этой форме не используются. Создавая кнопочную
форму, в ней следует разместить надписи, а также линии, прямоугольники или
рисунки, чтобы сделать ее эстетически более привлекательной. Кнопка
является простейшим элементом управления формы и используется для запуска
макроса. В Access благодаря макросам, запускаемым с помощью кнопок, можно
выполнять самые различные задачи.
Помимо кнопочной формы Access позволяет создать специальное меню, с помощью которого можно расширить возможности разрабатываемой системы. В это меню можно добавить часто используемые команды, а также
команды, которые уже заданы для кнопок формы. Созданное меню заменит стандартное меню Access. Специальное меню связано с формой. Можно создать одно меню и использовать его в нескольких формах.
В Access можно создать три типа меню:
1. Menu Bar. Обычное меню, которое может располагаться вверху формы и иметь выпадающие подменю.
2. Tool Bars. Группы пиктограмм, обычно располагающиеся под меню.
3. Shortcut Bar. Меню, всплывающие после щелчка правой кнопки мыши.
2.11. Visual Basic for Application
В Access пользователь может управлять выполнением приложении,
например, изменить информацию в таблице или щелкнуть на командной кнопке.
Используя в приложении макросы и процедуры, можно реализовать реакцию
пользователя на эти действия. Для этого в Access предусмотрены
характеристики событий для каждого элемента управления, который помещается
в форму. Подключая макрос или процедуру к определенному событию элемента
управления, можно не заботиться о последовательности действий, выполняемых
пользователем в форме. Обработка событий представляет собой программный
код, выполняемый при возникновении этого события. Код непосредственно
присоединяется к форме или отчету, содержащему обрабатываемое событие.
В предыдущих версиях Access имела собственный язык Basic, называемый
Access Basic. В последних версиях Access он заменен языком Visual Basic
for Applications (VBA) компании Microsoft. Несмотря на некоторую схожесть,
между этими языками есть существенные различия. VBA становится общим языком
для всех приложений Microsoft Office. VBA является современным языком
структурного программирования. Находясь в окне модулей, можно создавать и
редактировать код VBA и процедуры.Visual Basic для приложений играет важную
роль при разработке баз данных Access. С помощью VBA можно настроить формы
и отчеты, запустить макросы, а также отобразить объект Access в других
приложениях или извлечь данные. Используя Visual Basic для приложений,
можно вывести формы и отчеты, выполнить методы объектов, а также создать и
изменить элементы. Кроме того, имеется возможность работать с информацией
непосредственно: можно создать наборы данных, задать их параметры и
изменить информацию в них.
2.12 Что такое фильтр?
На наш взгляд, при изучении БД центральным понятием должен быть запрос
(точнее, запрос на выборку). Ведь основное назначение БД – отвечать на
запросы. Однако запрос – довольно сложное понятие. К счастью, есть понятие
близкое к запросу, но более простое. Это – фильтр. По сути дела фильтр –
это запрос для одной таблицы. Поэтому прежде, чем приступать к изучению
запрос, уместно рассмотреть фильтр.
Что же говорится о фильтре в “пользовательских” учебниках, рассматривающих
Access? В пособии С. Симоновича и др. [10] фильтр, к сожалению, не
рассматривается. В учебнике под редакцией проф. Н. Макаровой о фильтре
говорится следующее. “В созданной базе данных можно группировать записи
разными способами, т.е. отбирать записи по условию. Для этого необходимо
нажать кнопку Изменить фильтр, в появившемся окне указать в выбранных полях
условия отбора, после чего после чего нажать кнопку Применить фильтр (рис.
…). После применения фильтра в окне базы данных мы увидим только те записи,
которые удовлетворяют условию отбора (рис. …). Кстати, условие отбора может
вводиться как для одного, так и для нескольких полей.” ([7], стр. 240)
Кроме этого текста, в учебнике проф. Н. Макаровой к фильтру относятся еще
две иллюстрации.
На наш взгляд, этот текст обладает одним существенным изъяном. Авторы
объясняют, какие кнопки и в какой последовательности нажимать, а вот для
чего это делать, что получится в результате – не ясно. Что означают слова
“группировать …, т.е. отбирать записи по условию”? Что, группировка и отбор
– это синонимы? И затем, по какому условию отбирать? Сначала говорится, что
в фильтре задается несколько условий отбора, а потом - что в результате
отбираются записи, которые удовлетворяют одному условию. Что это за
условия, как из нескольких условий получается одно, авторы не разъясняют.
Конечно, если школьник пришел на урок информатики, чтобы поиграть на
компьютере, или посмотреть “прикольные” картинки, если “болтовню” учителя
он привык пропускать мимо ушей, то ему и так сойдет. Ну, а если он
задумается над словами учителя? Что он поймет из такого объяснения?
Ю.Шафрин определяет фильтр так. “Совокупность условий (логическое
выражение) которую указывает пользователь для выделения некоторого
подмножества строк таблицы в реляционной базе данных. Частный случай
запроса” (стр. 671).
Как мы видим, и здесь наблюдается некая коллизия единственного и
множественного числа. С одной стороны – много условий, а с другой – одно
логическое выражение. Опять неясно, как из многих условий получается одно
логическое выражение.
Обратимся к “фирменным” источникам. Надо сказать, что фирма Microsoft очень
не любит разрешать пользователям копаться в “подводной части айсберга”. Она
пространно объясняет, как с данным понятием работать, но неохотно и крайне
невнятно объясняет, что же это понятие означает.
Help определяет фильтр так. “Набор условий, применяемых для отбора
подмножества записей или для сортировки записей. В Microsoft Access
существуют фильтры четырех типов: фильтр по выделенному фрагменту, обычный
фильтр, расширенный фильтр и фильтр по вводу.” В свою очередь, условие
отбора определяется как “набор ограничительных условий, например, =
"Россия" (означающее, что требуется строковое значение "Россия") или >
30000, используемых для вывода определенного набора записей при создании
запроса или фильтра.”
Итак, фильтр - это набор (или даже набор наборов) условий вида = "Россия"
или > 30000. И что это такое? Ну, искушенный читатель (или пользователь)
может догадаться, что на самом деле речь идет об условиях вида Х= "Россия"
или У> 30000, где Х и У - это, скорее всего, атрибуты. Но что значит
“набор”? Просто совокупность таких условий? Нет, скажет вдумчивый ученик,
тут что-то не так. Это все равно, что сказать, что дом - это совокупность
кирпичей. Но ведь все дело в том, как эти кирпичи (или условия) связаны!
Скажем, Х= "Россия" AND У> 30000 - это одно, а Х= "Россия" OR У> 30000 –
совсем другое.
Примерно на таком же уровне определяется фильтр и во “взрослой” литературе.
В справочнике [2] на стр. 191 говорится: “Фильтр – это набор условий,
которые можно применить к данным. Применение другого фильтра к результату
предыдущего дополнительно урезает результирующий набор данных.” В том же
справочнике на стр. 395 фильтр определяется так. “Режим, позволяющий
отображать только некоторые записи таблицы. В программе Access с помощью
фильтра можно также отсортировать информацию. В отличии от запросов,
фильтры не являются объектами, и не появляются в окне базы данных.”
Так что же такое фильтр: режим или набор условий? Ни то, ни другое.
Оказывается это – нечто!
“Фильтр – нечто, отсеивающее определенные элементы, - одно или несколько
условий, которым должна удовлетворять запись, чтобы попасть на экран.”
([8], стр. 72)
На самом деле фильтр – это просто логическое выражение. Фильтрация таблицы
– это отбор тех кортежей, для которых соответствующее выражение истинно.
Здесь мы согласны с Ю.Шафриным, определяющим фильтр как логическое
выражение. Нужно только пояснить, как оно строится из пресловутых
“условий”. Но прежде нам придется вспомнить, что такое арифметическое
выражение.
Арифметические и логические выражения
Help определяет выражение так. “Любая комбинация операторов, констант,
значений текстовых констант, функций, имен полей, элементов управления или
свойств, результатом которой является конкретное значение.”
Нас такое определение не устраивает. Оно не конструктивно. Мы хотели бы,
чтобы по виду текста можно было бы узнать, является ли оно выражением. А
как узнать, является ли результатом данной комбинации “конкретное
значение”?
Попробуем найти более конструктивное определение. Чтобы не загромождать
изложение непринципиальными деталями, мы ограничимся случаем, когда в
таблице все атрибуты – числовые (т.е. в клетках таблицы могут стоять только
числа).
Как арифметические, так и логические выражения строятся из неких “кирпичей”
с помощью определенного набора операций. В случае арифметических выражений
“кирпичами” служат числа и атрибуты (других “кирпичей” мы для простоты не
рассматриваем), а соединяют их обычные арифметические операции. Формально
арифметические выражения определяются так.
1. Всякое число или атрибут есть арифметическое выражение.
2. Если А и В - арифметические выражения, то выражения (А+В), (А-В),
(А*В), (А/В) и (А**В) тоже являются арифметическими.
Символы +, -, *, / и ** интерпретируются, соответственно, как операции
сложения, вычитания, умножения, деления и возведения в степень.
Вот примеры арифметических выражений: 7, х, 2+2, 2*(х+3).
Имея формальное определение, мы можем доказать, что, скажем, выражение
2*(х+3) является арифметическим. Действительно, согласно правилу 1,
выражения х и 3 являются арифметическими. Отсюда, по правилу 2, следует,
что выражение (х+3) тоже является арифметическим. По правилу 1, выражение 2
– арифметическое. Значит, по правилу 2, и выражение 2*(х+3) -
арифметическое. В этом смысле приведенное определение конструктивно.
Переходим к определению логических выражений. Мы будем считать, что
“кирпичи” логических выражений имеют вид х? Т, где х – атрибут, Т –
арифметическое выражение, а ? - один из символов сравнения: = (равно),
(не равно), < (меньше) или > (больше). Соединяются они при помощи
логических операций AND, OR и NOT.
Как и для арифметических выражений, мы хотим дать формальное определение.
Сначала определим простейшие логические выражения, или атомы.
Определение 1. Пусть х – атрибут, Т – арифметическое выражение. Тогда
выражения х=Т, хТ, хТ являются атомами.
Теперь можно формально определить логические выражения. Мы будем обозначать
их большими латинскими буквами.
Определение 2.
1. Всякий атом есть логическое выражение.
2. Если Х и У - логические выражения, то выражения (Х AND У), (Х OR У) и
(NOT Х) тоже являются логическими.
Вот примеры арифметических выражений: (NOT х = 7), (х = 2+2, AND у >
2*(х+3)).
Замечание 1. На практике при записи формул можно во многих случаях опускать
скобки, что мы и будем делать без особых оговорок.
Теперь переходим к значениям выражений. Значениями арифметических выражений
являются числа, а значениями логических выражений – Истина и Ложь.
Если мы знаем значения всех атрибутов, входящих в выражение, то мы можем
вычислить и значение самого выражения. Скажем, если значение х и у есть,
соответственно, 7 и 8, то значением выражения (х+2*у) есть 23. Значением
атома х=(х+2*у) будет Ложь, потому что на самом деле 7 не равно 23.
Ну, а как вычислять значений логических выражений, не являющихся атомами?
Для этого служат так называемые таблицы истинности. Они позволяют вычислить
значение логического выражения, если известны значения его подвыражений.
Вот например таблица истинности для операции AND.
|Х |У |Х AND У |
|Истина |Истина |Истина |
|Истина |Ложь |Ложь |
|Ложь |Истина |Ложь |
|Ложь |Ложь |Ложь |
Она показывает, как, зная значения выражений Х и У, вычислить значение
выражения (Х AND У).
А вот таблицы истинности для OR и NOT:
|Х |У |Х OR У |
|Истина |Истина |Истина |
|Истина |Ложь |Истина |
|Ложь |Истина |Истина |
|Ложь |Ложь |Ложь |
|Х |NOT Х |
|Истина |Ложь |
|Ложь |Истина |
Зная значения атомов, вы можете с помощью этих таблиц вычислить значение
любого выражения, построив для него свою таблицу истинности. В качестве
примера построим такую таблицу для выражения NOT (Х OR У)
|Х |У |Х OR У |NOT(Х OR У) |
|Истина |Истина |Истина |Ложь |
|Истина |Ложь |Истина |Ложь |
|Ложь |Истина |Истина |Ложь |
|Ложь |Ложь |Ложь |Истина |
Замечание 2. С подобными конструкциями мы встречаемся в естественных
языках, например в русском. Там аналогами логических выражений являются
повествовательные предложения, аналогами атомов – простые повествовательные
предложения, а аналогами логических операций – слова И, ИЛИ, НЕТ и др.
Конечно, аналогия здесь далеко не полная, но все же она позволяет понять
основные идеи алгебры логики.
В самом деле, когда истинно предложение “На улице потемнело ИЛИ у меня
устали глаза”? Когда истинно хотя бы одно из предложений “На улице
потемнело” или “у меня устали глаза”. Таким образом, в данном случае ИЛИ
действует аналогично операции OR (правда, в других фразах ИЛИ может
употребляться в другом смысле). Точно так же союз И можно считать аналогом
операции AND. Например, фраза “Вдруг заиграла музыка И в зал вошла она”
истинна если и только истинны обе ее составные части: “вдруг заиграла
музыка” и “в зал вошла она”. НЕ или НЕТ часто выступает аналогом операции
NOT. Скажем предложение “я НЕ знаю этого человека” истинно в точности в тех
случаях, когда ложна фраза “я знаю этого человека”. Вообще, язык алгебры
логики можно рассматривать как попытку формализовать естественный язык.
Замечание 3. Выше мы говорили о классической, двузначной логике, когда
имеется всего два значения истинности ДА и НЕТ (употребляются еще и другие
обозначения, скажем ИСТИНА и ЛОЖЬ или TRUE и FALSE). Кроме двузначной
логики в принципе можно рассматривать и другие логики, например
трехзначную, в которой кроме ДА и НЕТ есть еще и третье значение –
НЕИЗВЕСТНО (в Access оно обозначается как Null). На самом деле в Access
реализована некая мешанина из двузначной и трехзначной логики. Оговоримся
сразу, что мы не рекомендуем учителю выходить за рамки классической логики.
Тем не менее, для полного понимания работы Access нам придется коснуться и
трехзначной логики.
Наличие в Access трехзначной логики связано с тем, что в таблицах Access
допускаются пустые клетки (так называемые Null-значения). Например, таблица
ЗНАКОМЫЕ может выглядеть так:
|Фамилия |Имя |Отчество |
|Иванов |Петр | |
(Отчество Иванова мы не знаем.)
Спрашивается, как должна такая БД отвечать на запрос “Верно ли, что у Петра
Иванова отчество – Сергеевич?” Ясно, что ни ДА, ни НЕТ тут не подходит.
Необходимо ввести третье значение.
Надо сказать, что попытки ввести в БД Null-значения и трехзначную логику
многим авторам представляются неуместными. Вот что говорит по этому поводу
известный специалист в области БД К.Дейт в своей последней монографии.
“Автор данной книги разделяет мнение многих других авторов о том, что null-
значения и трехзначная логика являются ошибочными понятиями и им нет места
в число формальных системах, подобных реляционной модели.” ([4], стр. 544).
На наш взгляд, забивать школьнику голову трехзначной логикой и Null-
значениями при изучении Access не стоит. Дай Бог ему разобраться с обычной,
двузначной логикой.
Мы рекомендуем ограничиться случаем, когда таблицы не имеют пустых клеток.
Можно даже установить значение ДА параметра Свойства поля/Обязательное
поле. В этом случае Access будет сам следить, чтобы все клетки были
заполнены. Тогда пользователь гарантирован ото всех неприятностей,
связанных с Null-значениями.
Замечание 4. Обычно логику определяют как науку о правильных рассуждениях
([1, 3, 5, 9]). На наш взгляд, это не совсем верно. В вычислительной науке
и, в особенности, в теории баз данных на первый план выходит другой аспект.
Здесь логика используется как формальная модель естественного языка. На
это, конечно, можно возразить, что язык и мышление тесно связаны. Но ведь
мышление отнюдь не сводится к дедуктивным (т.е. основанным на
доказательствах) методам.
Пусть логическое выражение Х не содержит атрибутов, кроме х1, х2, … , хк.
Придав этим атрибутам некоторые значения, мы, тем самым, придаем числовые
значения всем арифметическим выражениям, входящим в Х. Выполнив
соответствующие сравнения, мы узнаем значения всех атомов, входящих в Х.
Далее, с помощью таблиц истинности, мы можем вычислить и значение выражения
Х.
Теперь пусть у нас есть кортеж К с атрибутами х1, х2, … , хк. Он
сопоставляет каждому из этих атрибутов некоторое число. Следовательно, он
обращает выражение Х либо в ИСТИНУ, либо в ЛОЖЬ.
Итак, мы доказали следующее утверждение.
Теорема 1. Пусть Х логическое выражение, не содержащее атрибутов, кроме х1,
х2, …, хк, а К - кортеж с атрибутами х1, х2, … , хк. Тогда выражение Х либо
истинно, либо ложно.
В первом случае мы говорим, что выражение Х ИСТИННО на кортеже К, а во
втором – что оно ЛОЖНО.
Таким образом, логическое выражение можно трактовать как функцию,
перерабатывающую кортеж в одно из двух значений ИСТИНА или ЛОЖЬ.
Теорема 1 позволяет использовать логические выражения в качестве фильтров.
Каждое такое выражение будет выбирать из таблицы те кортежи, на которых оно
истинно.
Как задать фильтр?
Теперь переходим к процедурной части. Чтобы посмотреть фильтр (если он
есть), нужно открыть соответствующую таблицу в режиме конструктора и
выполнить команду “Свойства” меню Вид или контекстного меню. Откроется окно
“Свойства таблицы”, в котором есть строка “Фильтр”.
Установив курсор в поле Фильтр, вы можете распахнуть его с помощью
комбинации Shift+F2.
Если фильтра еще нет, то вы можете создать его прямо в этом окне. Там же
можно и корректировать его.
Однако, это не единственный способ задания фильтра. Вы можете
воспользоваться также специальным окном “Фильтр”, вызываемым командой
Записи| Фильтр| Расширенный фильтр.
В окне “Фильтр” находится бланк QBE.
Окно фильтра состоит из двух частей. В верхней части находится схема
отношения (прямоугольник, содержащий имя таблицы и перечень атрибутов). В
нижней части находится бланк запроса QBE. Он содержит строку ПОЛЕ, в
которой указываются атрибуты, по которым идет фильтрация, либо сортировка.
Ниже располагается строка СОРТИРОВКА, в которой для некоторых атрибутов
указывается порядок сортировки (по убыванию, или по возрастанию). Еще ниже
располагается строка УСЛОВИЕ ОТБОРА и строки ИЛИ (из них обычно видна
только одна).
На наш взгляд, сортировку стоит объяснять отдельно, и мы пока не будем ее
рассматривать. Отметим также, что сортировка несколько выходит за рамки
классической реляционной модели, поскольку там отношение мыслится как
множество (т.е. неупорядоченный набор) кортежей. Впрочем, тот, кто прилежно
изучал информатику, знает, что любая хорошая модель проще, чем
соответствующая реальность.
Этот бланк удобно применять, если фильтр имеет некоторый специальный вид, о
котором мы сейчас поговорим. Это так называемая дизъюнктивная нормальная
форма (сокращенно – ДНФ). Она заслуживает внимание не только в связи с
изучением Access, и поэтом мы уделим ей особое внимание.
Вот примеры выражений в ДНФ (мы будем для краткости называть их ДНФ-
выражениями).
(Вес = 2 AND NOT (Высота >3) AND Ширина 5 AND
NOT (Ширина 4 AND Высота >6 AND Ширина 80 AND NOT (Зарплата 80) AND Зарплата
80 AND NOT (Зарплата 80) AND
Зарплата 80 OR NOT (Зарплата 80) AND Зарплата
3) AND Ширина 5 AND
NOT (Ширина 4 AND Высота >6 AND Ширина 3 |5 |NOT 4 |>6 | 18, то тем самым вы сформулировали
логическое выражение [ Балл] =5 AND [ Код] > 18.
Условные выражения, набранные в соседних строках одного и того же столбца,
соединяются между собой знаком OR. Например, если столбец имеет имя Балл и
набрали в строке Условие отбора: =8, а в строке Или: =12, то тем самым вы
сформулировали логическое выражение [ Балл] =5 OR [ Балл] =12.” ([ Ш] ,
стр. 614).
Это, конечно, верно. Но отсюда нельзя понять, как записать на бланке,
скажем, выражение [ Балл] =5 OR [ Код] > 18. Мы считаем, что примеры должны
не заменять точных определений, а дополнять их. (Правда, еще раз
подчеркнем, что мы не претендуем на формализацию Access в полном объеме. Мы
предлагаем формально описать лишь некоторый его фрагмент).
Итак, бланк QBE ориентирован на запись ДНФ-выражений. Но ведь фильтры могут
задаваться любыми логическими выражениями, в том числе и не являющимися ДНФ-
выражениями! И тут у любознательного ученика может возникнуть вопрос: а
почему так сделано? Как быть, если фильтр не является ДНФ-выражением? Это
что, недосмотр разработчиков, или тут есть какой-то резон?
К сожалению, “пользовательская” информатика (видимо вслед за разработчиками
программного продукта), очень не любит отвечать на подобные вопросы. А зря.
Мы считаем, что школьная информатика должна не только отвечать на эти
вопросы, но и стимулировать их появление у учащихся.
Оказывается, резон есть. Дело в том, что всякое логическое выражение
эквивалентно некоторому ДНФ-выражению. И мы это сейчас докажем. А заодно
дадим и алгоритм сведения произвольного логического выражения к ДНФ-
выраженнию.
Сведение произвольного логического выражения к ДНФ-выраженнию.
Определение 4. Пусть Х и У – логические выражения с одинаковыми наборами
атомов. Скажем, что Х и У равносильны, если они принимают одинаковые
значения для любого набора значений входящих в них атомов.
Символически эквивалентность выражений Х и У обозначается как Х? У.
Лемма 1. Пусть Х и У – произвольные логические выражения. Тогда NOT(Х OR У)
? (NOT Х) AND (NOT У)
Доказательство. Мы только что построили таблицу истинности для NOT(Х OR У).
Постройте такую же таблицу для ? (NOT Х) AND (NOT У) и сравните обе
таблицы.
Лемма 2. Пусть Х и У – произвольные логические выражения. Тогда NOT(Х AND
У) ? (NOT Х) OR (NOT У).
Доказательство: аналогично доказательству леммы 1.
Лемма 3. Пусть Х, У и Z– произвольные логические выражения. Тогда Х AND (У
OR Z) ? (Х AND У) OR (Х AND Z).
Доказательство: постройте таблицы истинности для обоих выражений.
Теорема 2. Всякое логическое выражение эквивалентно некоторому ДНФ-
выражению.
Эскиз доказательства. Идея доказательства очень проста. Сначала мы с
помощью лемм 1 и 2 загоняем все NOT внутрь AND и OR, а потом, с помощью
леммы 3 – все AND внутрь OR. Формальное описание этой процедуры довольно
громоздко, и поэтому мы ограничимся примером. Пусть Х, У и Z– произвольные
атомы. Тогда Х AND NOT(У AND Z) ? Х AND (NOT У OR NOT Z) ? (Х AND NOT У) OR
(Х AND NOT Z).
Заключение.
Итак, мы убедились, что фильтр – это просто логическое выражение, а
фильтрование – выбор кортежей, на которых это выражение истинно. Фильтр
записывается на бланке QBE. Этот бланк приспособлен для записи ДНФ-
выражений. Такой выбор не случаен: любое логическое выражение эквивалентно
некоторому ДНФ-выражению. Таковы, на наш взгляд, основные идеи, лежащие в
основе реализации фильтра в Access.
Отметим, кстати, что в Access существуют еще и другие конструкции, идейно
очень близкие к фильтру, но оформленные, порою, совершенно по-другому. В
частности, это ЗАПРОСЫ НА УДАЛЕНИЕ (см. [6]), а также УСЛОВИЯ НА ЗНАЧЕНИЕ,
задаваемые либо в СВОЙСТВАХ ТАБЛИЦЫ, либо в СВОЙСТВАХ ПОЛЯ. Соотношение
фильтра, условия на значение и ЗАПРОСА НА УДАЛЕНИЯ можно пояснить так.
Каждое из них задается логическим выражением, которое мы будем называть
“законом”. ФИЛЬТР позволяет скрыть все “незаконные” кортежи, УСЛОВИЯ НА
ЗНАЧЕНИЕ – не допустить появления в таблице “незаконных” кортежей, а ЗАПРОС
НА УДАЛЕНИЯ – удалить все “незаконные” кортежи из таблицы.
.
Общие сведения
Microsoft Excel - табличный процессор, программа для создания и обработки
электронных таблиц (Электронная таблица - таблица, используемая для
размещения в ячейках данных для последующей обработки с помощью формул,
описывающих зависимости между значениями этих ячеек).
Microsoft Excel позволяет работать с таблицами в двух режимах:
- обычный - наиболее удобный для выполнения большинства операций.
- разметка страниц - удобен для окончательного форматирования таблицы перед распечаткой. Границы между страницами в этом режиме отображаются синими пунктирными линиями. Границы таблицы - сплошной синей линией, перетягивая которую, можно изменять размеры таблицы.
Для перехода между режимами Обычный и Разметка страниц используются соответствующие пункты меню Вид.
Рабочая книга, ячейки
Файл Microsoft Excel называется рабочей книгой. Рабочая книга состоит из рабочих листов, имена которых (Лист1, Лист2, …) выведены на ярлыках в нижней части окна рабочей книги (рис.2). Щелкая по ярлыкам, можно переходить от листа к листу внутри рабочей книги. Для прокручивания ярлыков используются кнопки слева от горизонтальной координатной линейки:
Рабочий лист представляет собой таблицу, состоящую из 256 столбцов и
65536 строк. Столбцы именуются латинскими буквами, а строки – цифрами.
Каждая ячейка (Ячейка - минимальный элемент электронной таблицы, над которым можно выполнять те или иные операции.) таблицы имеет адрес, который состоит из имени строки и имени столбца. Например, если ячейка находится в столбце F и строке 7, то она имеет адрес F7. Диапазон ячеек - две или более ячеек листа. Ячейки диапазона могут быть как смежными, так и несмежными.
Форматирование строк, столбцов и ячеек
Для изменения ширины столбца перемещайте правую границу заголовка столбца
до тех пор, пока его ширина не достигнет необходимого размера. Отображаемая
ширина столбца говорит о среднем числе символов 0-9 стандартного шрифта,
помещающихся в ячейке.
Чтобы изменить ширину столбца вручную, выделите столбец, выберите команду
Столбец в меню Формат, затем — команду Ширина и введите необходимую ширину.
Чтобы столбцы имели одинаковую ширину, выделите ячейку в одном из столбцов, нажмите кнопку Копировать на панели инструментов Стандартная и затем выделите столбец, ширина которого изменяется. В меню Правка выберите команду Специальная вставка и затем выберите Ширины столбцов.
Для изменения высоты строки перемещайте с помощью мыши нижнюю границу
заголовка строки до тех пор, пока высота строки не достигнет необходимого
размера.
Чтобы подобрать высоту строки в соответствии с содержимым, поместите указатель на нижнюю границу заголовка и дважды нажмите кнопку мыши.
Чтобы изменить высоту нескольких строк, выделите строки, которые необходимо изменить, а затем переместите нижнюю границу заголовка строки. Чтобы изменить высоту всех строк на листе, нажмите кнопку Выделить все, а затем переместите нижнюю границу заголовка любой строки.
Управление отображением строк и столбцов
Для скрытия строки или столбца проделайте следующие действия:
. выберите строки или столбцы, которые нужно скрыть;
. в меню Формат установите указатель на пункт Строка или Столбец и выберите команду Скрыть.
Для отображения скрытых строк выделите ячейки в строках над и под скрытыми строками. Чтобы вывести на экран скрытые столбцы, выделите ячейки в столбцах слева и справа от скрытых столбцов. В меню Формат установите указатель на пункт Строка или Столбец и выберите команду Показать.
Если первая строка или столбец листа являются скрытыми, выберите команду
Перейти в меню Правка. В поле Ссылка введите A1 и нажмите кнопку OK.
Установите указатель на пункт Строка или Столбец в меню Формат и выберите
команду Показать.
Форматы ячеек
Чтобы изменить формат ячейки или диапазона ячеек выделите их, затем нажмите
правую кнопку мыши, в открывшемся меню выберите пункт “Формат ячеек”.
Существует множество форматов ячеек, также можно создавать свои, используя
встроенный в Excel язык форматов ячеек.
Для копирования форматов одних ячеек на другие проделайте следующие действия:
. выделите ячейку или диапазон ячеек, формат которых необходимо скопировать;
. на панели инструментов Стандартная нажмите кнопку Формат по образцу;
. выделите ячейку или диапазон ячеек, в который необходимо скопировать формат.
Форматирование ячеек
Для отображения нескольких строк текста внутри ячейки проделайте следующие действия:
. выделите ячейки, формат которых необходимо изменить;
. в меню Формат выберите команду Ячейки, а затем откройте вкладку
Выравнивание;
. в поле Отображение установите флажок переносить по словам.
Для начала новой строки текста с определенного места на панели формул
(рис1) (или в ячейке, если редактирование производится в ячейке) выберите
место, где строка должна прерваться, а затем нажмите клавиши ALT+ENTER.
Для использования рамок в ячейках проделайте следующие действия:
. выделите ячейки, в которые необходимо добавить рамку;
. чтобы использовать последний выбранный цвет, нажмите кнопку Границы на панели инструментов Форматирование;
. для использования другого типа рамки нажмите стрелку рядом с кнопкой
Границы и выберите требуемый тип рамки.
Для затенения фона ячеек цветом проделайте следующие действия:
. выделите ячейки, которые необходимо затенить;
. чтобы использовать последний выбранный цвет, выберите мышью элемент
Цвет заливки на панели инструментов Форматирование;
. для использования другого цвета нажмите стрелку рядом с кнопкой Цвет заливки, а затем выберите необходимый цвет.
Для затенения ячеек узором проделайте следующие действия:
. выделите ячейки, которые необходимо затенить;
. в меню Формат выберите команду Ячейки, а затем перейдите к вкладке
Вид;
. для использования цвета фона с узором выберите необходимый цвет в поле
Заливка ячеек;
. нажмите стрелку рядом с полем Узор, а затем выберите необходимый узор и цвет.
Для удаления границ проделайте следующие действия:
. выделите ячейки, границы которых требуется удалить;
. на панели инструментов Форматирование щелкните стрелку рядом с кнопкой
Границы и нажмите на открывшейся панели кнопку.
Для удаления затенения проделайте следующие действия:
. выделите ячейки, для которых необходимо удалить затенение;
. на панели инструментов Форматирование, щелкните стрелку рядом с кнопкой Цвет заливки, и выберите Нет заливки.
Объединение ячеек
В объединенную ячейку Microsoft Excel помещает только данные верхнего
левого угла из выделенного диапазона. Для включения в объединенную ячейку
всех данных диапазона скопируйте все данные в верхнюю левую ячейку внутри
диапазона.
Проделайте следующие действия:
. выделите ячейки, которые необходимо объединить;
. для объединения ячеек и выравнивания по центру содержимого ячеек нажмите кнопку Объединить и поместить в центре [pic]на панели инструментов Форматирование;
. чтобы объединить все выделенные ячейки в строке или столбце, в меню
Формат выберите команду Ячейки, затем перейдите к вкладке Выравнивание и установите флажок объединение ячеек.
Для разбивки объединенной ячейки на несколько ячеек проделайте слеующие
действия:
. выберите объединенную ячейку;
. в меню Формат выберите команду Ячейки, а затем откройте вкладку
Выравнивание;
. cнимите флажок объединение ячеек.
В ячейках, в которых по умолчанию установлен общий формат, текст выровнен
по левому краю, а числа, даты, время - по правому. При изменении
выравнивания тип данных не меняется. Для центрирования данных или
выравнивания по левому или правому краю проделайте следующие действия:
. выделите ячейки, формат которых необходимо изменить;
. нажмите соответствующую кнопку на панели инструментов Форматирование
(По левому краю, По центру, По правому краю ).
Для центрирования текста, занимающего несколько столбцов, например, названия столбцов, в строке выделенные ячейки можно объединить, и центрировать текст в полученной объеденной ячейке.
Для восстановления выравнивания, установленного по умолчанию, выделите ячейки, в меню Формат выберите команду Ячейки, а затем перейдите к вкладке Выравнивание. В поле Горизонтальное установите флажок Обычное.
Для сдвига текста от левого края ячейки проделайте следующие действия:
. выделите ячейки, содержащие текст, который необходимо сдвинуть;
. на панели инструментов Форматирование выберите кнопку Увеличить отступ;
. для уменьшения сдвига или его отмены нажмите кнопку Уменьшить отступ.
Для вращения текста в ячейке проделайте следующие действия:
. выделите ячейки, внутри которых необходимо перевернуть текст;
. в меню Формат выберите команду Ячейки, а затем перейдите к вкладке
Выравнивание;
. в поле Ориентация выберите градус поворота либо переместите индикатор на необходимый угол;
. для отображения текста вертикально сверху вниз в поле Ориентация выберите поле с вертикальным Текстом.
Для выравнивания данных наверху, в центре и внизу ячейки проделайте
следующие действия:
. выделите ячейки, формат которых необходимо изменить;
. в меню Формат выберите команду Ячейки, а затем перейдите к вкладке
Выравнивание;
. в поле Вертикальное выберите необходимый параметр.
В объединенной ячейке текст можно выровнять при помощи кнопок По левому
краю, По центру или По правому краю на панели инструментов Форматирование.
Для внесения других изменений в форматирование текста, включая выравнивание
по вертикали, используйте параметры вкладки Выравнивание (команда Ячейки в
меню Формат).
Выделение элементов таблицы
Одна из ячеек таблицы всегда является активной. Активная ячейка выделяется рамкой. Чтобы сделать ячейку активной, необходимо клавишами управления курсором подвести рамку к этой ячейке или щелкнуть в ней мышью.
Для выделения нескольких смежных ячеек необходимо установить указатель мыши в одну из ячеек, нажать левую кнопку мыши и, не отпуская ее, растянуть выделение на всю область. Для выделения нескольких несмежных групп ячеек следует выделить одну группу, нажать клавишу Ctrl и, не отпуская ее, выделить другие ячейки.
Чтобы выделить целый столбец или строку таблицы, необходимо щелкнуть мышью на его имени. Для выделения нескольких столбцов или строк следует щелкнуть на имени первого столбца или строки и растянуть выделение на всю область.
Для выделения нескольких листов необходимо нажать клавишу Ctrl и, не отпуская ее, щелкать на ярлыках листов.
[pic]
Рис.1
Заполнение ячеек
Для ввода данных в ячейку необходимо сделать ее активной и ввести
данные с клавиатуры. Данные появятся в ячейке и в строке редактирования
(рис.8). Для завершения ввода следует нажать Enter или одну из клавиш
управления курсором. Процесс ввода данных закончится и активной станет
соседняя ячейка.
Чтобы отредактировать данные в ячейке, необходимо:
. сделать ячейку активной и нажать клавишу F2 или дважды щелкнуть в ячейке мышью;
. в ячейке появится текстовый курсор, который можно передвигать клавишами управления курсором;
. отредактировать данные;
. выйти из режима редактирования клавишей Enter.
Перед выполнением любой команды Microsoft Excel следует завершить работу с
ячейкой, т. е. выйти из режима ввода или редактирования.
Формулы в Excel, формат ячеек.
Возможность использования формул (Формула - cовокупность значений, ссылок
на другие ячейки, именованных объектов, функций и операторов, позволяющая
получить новое значение. Формулы в Excel всегда начинаются со знака
равенства (=).) и функций является одним из важнейших свойств программы
обработки электронных таблиц. Это, в частности, позволяет проводить
статистический анализ числовых значений в таблице.
Текст формулы, которая вводится в ячейку таблицы, должен начинаться со
знака равенства (=), чтобы программа Excel могла отличить формулу от
текста. После знака равенства в ячейку записывается математическое
выражение, содержащее аргументы, арифметические операции и функции.
В качества аргументов в формуле обычно используются числа и адреса ячеек.
Для обозначения арифметических операций могут использоваться следующие
символы: + (сложение); - (вычитание); * (умножение); / (деление).
Формула может содержать ссылки на ячейки, которые расположены на
другом рабочем листе или даже в таблице другого файла. Однажды введенная
формула может быть в любое время модифицирована. Встроенный
Менеджер формул помогает пользователю найти ошибку или неправильную
ссылку в большой таблице.
Кроме этого, программа Excel позволяет работать со сложными
формулами, содержащими несколько операций. Для наглядности можно
включить текстовый режим, тогда программа Excel будет выводить в ячейку
не результат вычисления формулы, а собственно формулу.
Ввод формул.
Программа Excel интерпретирует вводимые данные либо как текст
(выравнивается по левому краю), либо как числовое значение
(выравнивается по правому краю). Для ввода формулы необходимо ввести
алгебраическое выражение, которому должен предшествовать знак равенства
(=).
Предположим, что в ячейке А1 таблицы находится число 100, а в ячейке В1 -
число 20. Чтобы разделить первое число на второе и результат поместить
в ячейку С1, в ячейку С1 следует ввести соответствующую формулу (=А1/В1) и
нажать [Enter].
Ввод формул можно существенно упростить, используя маленький трюк.
После ввода знака равенства следует просто щелкнуть мышью по первой
ячейке, затем ввести операцию деления и щелкнуть по второй ячейке.
Сложные формулы.
Сложная формула – это та, которая содержит 2 и более действий (см пример Прайс1.xls.)
Редактирование формул.
Чтобы начать редактировать содержимое ячейки, нужно сначала
промаркировать эту ячейку. На следующем шаге необходимо включить
режим редактирования, нажав клавишу [F2] или выполнив двойной щелчок
мышью. В режиме редактирования в верхней части экрана (под строкой
пиктографического меню) активизируется наборная строка, в которой видна
сама формула, а не результат ее вычисления.
Операторы
Все математические функции описываются в программах с помощью специальных символов, называемых операторами. Полный список операторов дан в таблице.
Оператор Функция Пример
Арифметические операторы
- 10 -
+ сложение =A1+1
- вычитание =4-С4
* умножение =A3*X123
/ деление =D3/Q6
% процент =10%
Операторы связи
: диапазон =СУММ(A1:C10)
; объединение =СУММ(A1;A2;A6)
Текстовый оператор соединения
& соединение текстов
Текстовый оператор соединения преднозначен для того, чтобы при
создании образца документа не вносить, например, каждый раз вручную, даты
- программа сама будет обращаться к ячейке, в которой проставили дату.
Абсолютная и относительная адресация
Каждая ячейка имеет уникальное имя (идентификатор), которое составляется из
номеров столбца и строки, на пересечении которых располагается ячейка.
Нумерация столбцов обычно осуществляется с помощью латинских букв
(поскольку их всего 26, а столбцов значительно больше, то далее идёт такая
нумерация — AA, AB, ..., AZ, BA, BB, BC, ...), а строк — с помощью
десятичных чисел, начиная с единицы. Таким образом, возможны имена (или
адреса) ячеек B2, C265, AD11 и т.д.
В формулах при обращении к ячейкам используется два способа адресации –
абсолютная (Абсолютная ссылка - часть формулы, являющаяся адресом ячейки, и
ссылающаяся на данную ячейку независимо от местоположения ячейки с
формулой. Примерами абсолютных ссылок на ячейки являются: $A$1, $B$1.
Возможны и смешанные ссылки на ячейки. Абсолютные ссылки на строки задаются
как A$1, B$1. Абсолютные ссылки на столбцы задаются как $A1, $B1. В отличие
от относительных ссылок абсолютные ссылки не обновляются автоматически при
копировании формул в другие строки и столбцы.) и относительная адресации.
При использовании относительной адресации (Относительная ссылка - cсылка на ячейку в формуле, например A1, которая обновляется автоматически при копировании формулы в другую ячейку или диапазон ячеек. После копирования и вставки формулы взаимное расположение ссылаемой ячейки и формулы сохраняется прежним. Например, если в ячейке A3 записана формула «=A1+A2», после копирования ее в ячейку B3, эта формула примет вид «=B1+B2».) копирование, перемещение формулы, вставка или удаление строки (столбца) с изменением местоположения формулы приводят к перестраиванию формулы относительно её нового местоположения. В силу этого сохраняется правильность расчётов при любых указанных выше действиями над ячейками с формулами.
В некоторых же случаях необходимо, чтобы при изменении местоположения формулы адрес ячейки (или ячеек), используемой в формуле, не изменялся. В таких случаях используется абсолютная адресация.
Примеры
Пример относительной адресации: если в ячейке I3 записана формула
«=СУММ(H3;H4;I4)», после копирования ее в ячейку N4, эта формула примет вид
«=СУММ(M4;M5;N5)».
Примеры абсолютной адресации (в Microsoft Excel): $A$10; $B$5:$D$12; $M10;
K$12 (в предпоследнем примере фиксирован только столбец, а строка может
изменяться, в последнем — фиксирована строка, столбец может изменяться).
Применение формул, работу с ячейками, использование разных форматов ячеек на практике, также продемонстрируем на примере.
Пример на дискете: пример Прайс 1.xls
В столбце С приведенной таблицы указано время (в часах), затраченное на выполнение работы, в столбце D - стоимость одного часа работы, а в столбце Е - промежуточная сумма, которую надо заплатить за эту работу.
Умножьте время/ч на цену за час, чтобы получить промежуточные
суммы за
1) Настройку клавиатуры.
2) Обслуживание машин.
3) Настройку формуляров.
Поместите их в ячейки
1) E2: C2*D2 (формат ячейки D2 – денежный, C2 – собственный #"ч ")
2) E3: C3*D3 (формат ячейки D3 – денежный, C3 - собственный #"ч ")
3) E4: C4*D4 (формат ячейки D4 – денежный, C4 - собственный #"ч ") соответственно.
В ячейке Е8 (формат ячейки – денежный) нужно вычислить общую стоимость всех работ, не учитывая НДС . Для этого туда надо записать следующую
формулу: =Е2+Е3+Е4. Полученную сумму умножьте на НДС (ячейка D9, формат
ячейки - процентный), чтобы вычислить налог на добавленную стоимость, а
затем прибавьте к полученному произведению общую сумму без НДС, чтобы
вычислить сумму с НДС, поместите результат в ячейку E9: D9*E8+E8. Строки,
столбцы, ячейки отформатированы в соответствии с главой – Форматирование
строк, столбцов и ячеек. Столбец F и строка 10 – скрыты.
ЗАКЛЮЧЕНИЕ
Современную жизнь представить без современной техники просто невозможно.
Ни одна фирма не обходится без помощи компьютеров. Хранение данных, написание документов, составление графиков, таблиц, расписаний, создание презентаций во всем в этом нам помогает компьютер, и помогает успешно.
Мы вкратце рассмотрели программный пакет Microsoft Office, с помощью которого можно достичь всего вышеперечисленного, в частности одни из его программ: Excel и Access .
От того, насколько профессионально будет выполнена ваша работа, будет зависеть успех вашей фирмы.
-----------------------
[pic]