Введение в Access - eDrive
Введение в Access - eDrive
Введение в Access - eDrive
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
В. М. Водо<strong>в</strong>озо<strong>в</strong><br />
<strong>В<strong>в</strong>едение</strong> <strong>в</strong> <strong>Access</strong><br />
Санкт-Петербург<br />
2003
К 681.3.016<br />
В.М.Водо<strong>в</strong>озо<strong>в</strong>. <strong>В<strong>в</strong>едение</strong> <strong>в</strong> <strong>Access</strong>. СПб, 2003. 35 с.<br />
Рассмотрены осно<strong>в</strong>ы создания баз данных <strong>Access</strong> для начинающих.<br />
© В.М.Водо<strong>в</strong>озо<strong>в</strong>, 2003.
Огла<strong>в</strong>ление<br />
<strong>В<strong>в</strong>едение</strong>..............................................................................................................................................4<br />
Модели предста<strong>в</strong>ления данных ........................................................................................................4<br />
Обзор и классификация со<strong>в</strong>ременных СУБД..................................................................................5<br />
Этапы проектиро<strong>в</strong>ания информационных систем..........................................................................7<br />
1 этап проектиро<strong>в</strong>ания: функциональное моделиро<strong>в</strong>ание.............................................................8<br />
2 этап проектиро<strong>в</strong>ания: инфологическое моделиро<strong>в</strong>ание..............................................................8<br />
3 этап проектиро<strong>в</strong>ания: даталогическое моделиро<strong>в</strong>ание...............................................................9<br />
4 этап проектиро<strong>в</strong>ания: физическое моделиро<strong>в</strong>ание <strong>в</strong> MS <strong>Access</strong>...............................................12<br />
Организация <strong>Access</strong> .....................................................................................................................12<br />
Среда разработки баз данных .....................................................................................................13<br />
Таблицы.............................................................................................................................................14<br />
Чтение и пра<strong>в</strong>ка таблиц...............................................................................................................14<br />
Создание таблиц...........................................................................................................................17<br />
С<strong>в</strong>язы<strong>в</strong>ание таблиц.......................................................................................................................19<br />
Запросы .............................................................................................................................................20<br />
Язык запросо<strong>в</strong> QBE......................................................................................................................20<br />
Язык запросо<strong>в</strong> SQL ......................................................................................................................23<br />
Формы и отчеты ...............................................................................................................................28<br />
Чтение и пра<strong>в</strong>ка данных через форму........................................................................................28<br />
Создание формы...........................................................................................................................29<br />
Отчеты ...........................................................................................................................................31<br />
Макросы............................................................................................................................................32
<strong>В<strong>в</strong>едение</strong><br />
В ходе раз<strong>в</strong>ития информационных систем были сформулиро<strong>в</strong>аны принципы организации<br />
больших масси<strong>в</strong>о<strong>в</strong> данных:<br />
• принцип интеграции данных, <strong>в</strong> соот<strong>в</strong>етст<strong>в</strong>ии с которым для хранения информации<br />
целесообразно образо<strong>в</strong>ы<strong>в</strong>ать централизо<strong>в</strong>анную динамически обно<strong>в</strong>ляемую модель<br />
предметной области,<br />
• принцип неза<strong>в</strong>исимости прикладных программ от данных, т.е. отделения логической<br />
модели данных от средст<strong>в</strong> упра<strong>в</strong>ления ими.<br />
Удо<strong>в</strong>лет<strong>в</strong>орение этим принципам с<strong>в</strong>язано с <strong>в</strong>ыделением единого для <strong>в</strong>сех задач блока<br />
данных, назы<strong>в</strong>аемого базой данных и разработкой единой упра<strong>в</strong>ляющей программы для<br />
манипулиро<strong>в</strong>ания данными, назы<strong>в</strong>аемой системой упра<strong>в</strong>ления базами данных — СУБД.<br />
База данных организуется и обрабаты<strong>в</strong>ается <strong>в</strong> накопителях <strong>в</strong> соот<strong>в</strong>етст<strong>в</strong>ии с<br />
определенными пра<strong>в</strong>илами хранения и доступа. Логическая а<strong>в</strong>тономность данных я<strong>в</strong>ляется<br />
пер<strong>в</strong>ым сущест<strong>в</strong>енным отличием баз данных от прочего программного обеспечения. Строго<br />
ого<strong>в</strong>оренная принадлежность данных к определенным классам и их безусло<strong>в</strong>ная типизация<br />
отличает базу данных от тексто<strong>в</strong>ых и табличных процессоро<strong>в</strong>, а широкая гамма допустимых<br />
операций над множест<strong>в</strong>ами я<strong>в</strong>ляется <strong>в</strong>ажным преимущест<strong>в</strong>ом ее перед пакетами прикладных<br />
программ и системами программиро<strong>в</strong>ания. Выделение базы данных как особой части<br />
программного обеспечения способст<strong>в</strong>ует:<br />
• эффекти<strong>в</strong>ной структуризации информации;<br />
• с<strong>в</strong>едению к минимуму по<strong>в</strong>торяющихся данных;<br />
• ускорению обработки информации прямо на носителе;<br />
• удобст<strong>в</strong>у обно<strong>в</strong>ления документо<strong>в</strong>;<br />
• обеспечению целостности данных;<br />
• регулиро<strong>в</strong>анию пра<strong>в</strong> доступа к информации;<br />
• облегчению а<strong>в</strong>томатизации обработки данных и <strong>в</strong>едения отчетности.<br />
Модели предста<strong>в</strong>ления данных<br />
Различают иерархическую, сете<strong>в</strong>ую, реляционную и ряд других моделей данных.<br />
Иерархическая модель отражает структуру с<strong>в</strong>язей между сущностями <strong>в</strong> <strong>в</strong>иде дере<strong>в</strong>а с<br />
узлами, <strong>в</strong> которых хранятся данные, и <strong>в</strong>ет<strong>в</strong>ями, с<strong>в</strong>язы<strong>в</strong>ающими их между собой. Узел, <strong>в</strong><br />
который не <strong>в</strong>ходит ни одна <strong>в</strong>ет<strong>в</strong>ь, назы<strong>в</strong>ается корнем. В с<strong>в</strong>ою очередь, любой узел дере<strong>в</strong>а —<br />
это <strong>в</strong> то же <strong>в</strong>ремя и корень поддере<strong>в</strong>а. Число таких поддере<strong>в</strong>ье<strong>в</strong> именуется степенью узла.<br />
Конце<strong>в</strong>ой узел, имеющий нуле<strong>в</strong>ую степень, назы<strong>в</strong>ается листом. Таким образом, объекты,<br />
описы<strong>в</strong>аемые иерархической моделью, должны удо<strong>в</strong>лет<strong>в</strong>орять определенным ограничениям:<br />
узлы могут обмени<strong>в</strong>аться информацией только через <strong>в</strong>ышестоящие узлы.<br />
Снятие части этих ограничений послужило толчком к созданию сете<strong>в</strong>ой модели,<br />
объектами которой я<strong>в</strong>ляются и записи, и с<strong>в</strong>язи между ними. Сете<strong>в</strong>ая модель предста<strong>в</strong>лена<br />
обширным множест<strong>в</strong>ом систем, среди которых наиболее раз<strong>в</strong>итой считается стандарт на<br />
архитектуру и языко<strong>в</strong>ый интерфейс CODASYL (Conference On Data System Languages).<br />
Согласно этому стандарту, между объектами базы данных устана<strong>в</strong>ли<strong>в</strong>аются отношения<br />
наследо<strong>в</strong>ания типа «родитель-потомок», причем любой компонент может оказаться<br />
потомком нескольких «родителей» и наоборот. С<strong>в</strong>язи <strong>в</strong> базе данных сете<strong>в</strong>ого типа<br />
реализуются с использо<strong>в</strong>анием системы указателей. Поскольку каждый компонент данных<br />
должен содержать ссылки на другие компоненты, такая модель требует значительных<br />
ресурсо<strong>в</strong> памяти и <strong>в</strong>ысокого быстродейст<strong>в</strong>ия компьютера. В настоящее <strong>в</strong>ремя <strong>в</strong>едутся<br />
исследо<strong>в</strong>ания <strong>в</strong> области создания объектно-ориентиро<strong>в</strong>анных сете<strong>в</strong>ых баз данных,
5<br />
финансируемые такими компаниями, как IBM <strong>в</strong> США, Франгоферо<strong>в</strong>ский институт<br />
программного обеспечения и системотехники <strong>в</strong> ФРГ и др. Примером коммерческой сете<strong>в</strong>ой<br />
базы данных для персональных компьютеро<strong>в</strong> я<strong>в</strong>ляется DB-Vista (Century Software), а для<br />
больших ЭВМ — IDMS.<br />
Идея реляционной, или табличной, организации данных принадлежит польскому<br />
математику З.Я. Слонимскому, <strong>в</strong> 1845 г. удостоенному Демидо<strong>в</strong>ской премии Петербургской<br />
академии наук за изобретение математической машины, использующей таблицы с<br />
определенными пра<strong>в</strong>илами считы<strong>в</strong>ания. До него многочисленные таблицы —<br />
арифметические, тригонометрические, логарифмические — были широко распространены <strong>в</strong><br />
Е<strong>в</strong>ропе еще <strong>в</strong> 17-18 <strong>в</strong>еках и применялись <strong>в</strong> на<strong>в</strong>игации, астрономии, банко<strong>в</strong>ском деле,<br />
архитектуре. Эти таблицы постоянно дополнялись, перепро<strong>в</strong>ерялись, и каждое переиздание<br />
их требо<strong>в</strong>ало труда множест<strong>в</strong>а специалисто<strong>в</strong> и содержало ошибки, неизбежные при ручных<br />
расчетах и переписы<strong>в</strong>ании. Концепция реляционной модели была разработана Э.Ф. Коддом <strong>в</strong><br />
70-х годах нашего <strong>в</strong>ека. Согласно этой концепции, реляционная база данных — это<br />
множест<strong>в</strong>о таблиц (отношений), содержащих <strong>в</strong>сю информацию, характеризующую<br />
предметную область.<br />
Таблица описы<strong>в</strong>ает множест<strong>в</strong>о объекто<strong>в</strong> одного класса. С<strong>в</strong>едения о каждом объекте<br />
предста<strong>в</strong>ляется <strong>в</strong> таблице <strong>в</strong> <strong>в</strong>иде отдельной записи, каждый элемент которой размещен <strong>в</strong><br />
с<strong>в</strong>оем поле. Запись, состоящую из элементо<strong>в</strong> одного типа, назы<strong>в</strong>ают масси<strong>в</strong>ом данных, или<br />
<strong>в</strong>ектором, кортежем. Сим<strong>в</strong>ольный масси<strong>в</strong> принято имено<strong>в</strong>ать строкой. В с<strong>в</strong>ою очередь,<br />
таблица однотипных записей предста<strong>в</strong>ляет собой д<strong>в</strong>ухмерный масси<strong>в</strong>, а число<strong>в</strong>ая таблица —<br />
матрицу. Число полей <strong>в</strong> таблице характеризует ее степень, число записей — мощность, а их<br />
произ<strong>в</strong>едение — размер таблицы, то есть общее число ее элементо<strong>в</strong>. В при<strong>в</strong>еденном здесь<br />
примере степень таблицы ра<strong>в</strong>на трем, мощность<br />
д<strong>в</strong>ум, а размер шести.<br />
Обычно мощность таблицы я<strong>в</strong>ляется<br />
переменной <strong>в</strong>еличиной, тогда как степень<br />
фиксируется при проектиро<strong>в</strong>ании базы данных.<br />
Сра<strong>в</strong>нительная простота инструментальных средст<strong>в</strong> поддержки реляционной модели<br />
я<strong>в</strong>ляется ее достоинст<strong>в</strong>ом. Но по<strong>в</strong>едение объекто<strong>в</strong> реляционная таблица не описы<strong>в</strong>ает,<br />
поэтому методы обработки данных относятся к компетенции СУБД, а не базы данных.<br />
Отсутст<strong>в</strong>ующие функций обработки данных, их анализа и синтеза переклады<strong>в</strong>аются на такие<br />
инструменты, как табличные процессоры, графические программы и специализиро<strong>в</strong>анные<br />
пакеты прикладных программ. Однако тем же Э.Ф. Коддом был предложен метод<br />
динамической аналитической обработки OLAP (On-Line Analitical Processing), который<br />
ускоряет решение указанных задач. Он предполагает многомерное концептуальное<br />
предста<strong>в</strong>ление данных и их прозрачность для пользо<strong>в</strong>ателя, доступность и <strong>в</strong>ысокую<br />
произ<strong>в</strong>одительность <strong>в</strong> работе. Перспекти<strong>в</strong>на и гибридная объектно-реляционная модель,<br />
сочетающая способность реляционных баз данных эффекти<strong>в</strong>но <strong>в</strong>ыполнять обработку<br />
небольших объемо<strong>в</strong> информации с <strong>в</strong>озможностями объектно-ориентиро<strong>в</strong>анных баз данных<br />
поддержи<strong>в</strong>ать динамические методы обработки.<br />
Обзор и классификация со<strong>в</strong>ременных СУБД<br />
Фирма Год Президент<br />
Microsoft 1975 Балмер<br />
Apple 1975 Джобс<br />
Различают персональные («легкие») и корпорати<strong>в</strong>ные («тяжелые») СУБД.<br />
Персональная реляционная СУБД <strong>Access</strong> фирмы Microsoft характеризуется тесной<br />
интеграцией с другими приложениями этой фирмы. Сущест<strong>в</strong>енный элемент ее – комплекс<br />
специальных драй<strong>в</strong>еро<strong>в</strong> открытого интерфейса ODBC (Open DataBase Connectivity) —<br />
обеспечи<strong>в</strong>ает с<strong>в</strong>язь с реляционными СУБД других произ<strong>в</strong>одителей, <strong>в</strong>заимодейст<strong>в</strong>ие между<br />
различными форматами баз данных. <strong>Access</strong> располагает с<strong>в</strong>оим процедурным языком,<br />
реализует запросы на примере (QBE) и запросы SQL <strong>в</strong> сочетании со <strong>в</strong>семи преимущест<strong>в</strong>ами<br />
Windows <strong>в</strong> графике, эффекти<strong>в</strong>но работает <strong>в</strong> сети, акти<strong>в</strong>но использует графические объекты.
6<br />
Система <strong>в</strong>ключает функции обмена данными и обработки файло<strong>в</strong>, формиро<strong>в</strong>ания интерфейса<br />
пользо<strong>в</strong>ателя и упра<strong>в</strong>ления периферийными устройст<strong>в</strong>ами.<br />
Персональная СУБД DBase фирмы Borland поддержи<strong>в</strong>ает языки запросо<strong>в</strong> QBE и SQL, а<br />
также <strong>в</strong>ключающие языки Си, Паскаль, ассемблеры. В соста<strong>в</strong> языка DBase <strong>в</strong>ходит более 300<br />
функций и операторо<strong>в</strong>. Запросы SQL а<strong>в</strong>томатически преобразуются <strong>в</strong> последо<strong>в</strong>ательность<br />
команд DBase. К дополнительным средст<strong>в</strong>ам языка относятся шаблоны для с<strong>в</strong>язи с<br />
а<strong>в</strong>томатическим генератором кода, утилиты создания приложений, средст<strong>в</strong>а тестиро<strong>в</strong>ания<br />
многопользо<strong>в</strong>ательских баз данных <strong>в</strong> сети и модуль запуска приложений. Язык<br />
поддержи<strong>в</strong>ает а<strong>в</strong>томатическое сохранение информации, многоуро<strong>в</strong>не<strong>в</strong>ую парольную защиту<br />
и кодиро<strong>в</strong>ание данных.<br />
Во многом подобна <strong>Access</strong> СУБД Paradox на осно<strong>в</strong>е язык PAL (Paradox Application<br />
Language) фирмы Borland, длительное <strong>в</strong>ремя удержи<strong>в</strong>а<strong>в</strong>шая лидерст<strong>в</strong>о на рынке СУБД для<br />
персональных компьютеро<strong>в</strong><br />
В <strong>Access</strong> программа может распространяеться только с интегриро<strong>в</strong>анной средой. В<br />
отличие от нее, <strong>в</strong> FoxPro (Microsoft) и Clipper (Computer Associates) гото<strong>в</strong>ые программы<br />
распространяются <strong>в</strong> <strong>в</strong>иде исполнительных модулей или динамически загружаемых<br />
библиотек. FoxPro имеет быстродейст<strong>в</strong>ие, на порядок пре<strong>в</strong>ышающее Paradox и <strong>в</strong> несколько<br />
десятко<strong>в</strong> раз — DBase, а приложения, созданные на FoxPro под MS-DOS, можно<br />
адаптиро<strong>в</strong>ать под Windows. Набор команд и функций, предлагаемых разработчикам<br />
программных продукто<strong>в</strong> <strong>в</strong> среде FoxPro, по мощи и гибкости от<strong>в</strong>ечает самым со<strong>в</strong>ременным<br />
требо<strong>в</strong>аниям к предста<strong>в</strong>лению и обработке данных. Он поз<strong>в</strong>оляет организо<strong>в</strong>ать максимально<br />
удобный пользо<strong>в</strong>ательский Windows-интерфейс. Система обеспечи<strong>в</strong>ает многоуро<strong>в</strong>не<strong>в</strong>ый<br />
доступ к файлам, упра<strong>в</strong>ление ц<strong>в</strong>етом, настройку принтеро<strong>в</strong>, генерацию экранных форм и<br />
отчето<strong>в</strong>, поддержку языка SQL и функциониро<strong>в</strong>ание <strong>в</strong> сети.<br />
К наиболее распространенным корпорати<strong>в</strong>ным СУБД относятся Infomix, Ingres, Sybase,<br />
Oracle, SQL Server.<br />
Реляционная система Ingres для средних и крупных компаний <strong>в</strong>ключает средст<strong>в</strong>а<br />
а<strong>в</strong>томатизации разработки приложений, систему упра<strong>в</strong>ления знаниями, библиотеку<br />
приложений на национальных языках. В СУБД реализо<strong>в</strong>ана прямая адресация запросо<strong>в</strong><br />
конкретным клиентам с назначением приоритето<strong>в</strong>, работает контекстное переключение<br />
между различными базами данных. Многотомные таблицы поз<strong>в</strong>оляют распределять базы<br />
данных по различным дискам, хранить <strong>в</strong> базах не только данные, но и коммутируемые<br />
процедуры <strong>в</strong> <strong>в</strong>иде распределенных объекто<strong>в</strong> с доступом из разных приложений.<br />
Оптимизатор запросо<strong>в</strong> Ingress учиты<strong>в</strong>ает множест<strong>в</strong>о факторо<strong>в</strong>, таких как размер таблиц, тип<br />
данных, статистическое распределение данных <strong>в</strong> таблицах и индексах. При оптимизации <strong>в</strong>се<br />
запросы при<strong>в</strong>одятся к нормализо<strong>в</strong>анной форме, не за<strong>в</strong>исящей от исходной записи.<br />
Специальный механизм пра<strong>в</strong>ил поз<strong>в</strong>оляет программиро<strong>в</strong>ать обработку ситуаций при<br />
<strong>в</strong>ключении, обно<strong>в</strong>лении, исключении строк и изменении записей.<br />
Более 10 лет предста<strong>в</strong>лен на миро<strong>в</strong>ом рынке пакет Oracle. Долгое <strong>в</strong>ремя каждая третья<br />
прода<strong>в</strong>аемая <strong>в</strong> мире СУБД работала под Oracle. Она наиболее часто используется <strong>в</strong><br />
операционной среде Unix, хотя может работать на множест<strong>в</strong>е других системных платформ.<br />
На Oracle разработано значительное число прикладных систем для банко<strong>в</strong>, промышленных<br />
предприятий, энергетических объекто<strong>в</strong>, учреждений здра<strong>в</strong>оохранения. Она обеспечи<strong>в</strong>ает<br />
целостность баз данных при <strong>в</strong>ыполнении распределенных запросо<strong>в</strong>, а<strong>в</strong>тономию узло<strong>в</strong> базы и<br />
<strong>в</strong>ысокую произ<strong>в</strong>одительность. Система поддержи<strong>в</strong>ает открытую архитектуру: <strong>в</strong> едином<br />
приложении ее могут согласо<strong>в</strong>анно работать компоненты СУБД различных фирм, файлы<br />
операционной системы, аппаратура (промышленные контроллеры, кассо<strong>в</strong>ые аппараты).<br />
Инструментарий Oracle поз<strong>в</strong>оляет созда<strong>в</strong>ать графический интерфейс пользо<strong>в</strong>ателя со<br />
сложной логикой обработки данных. Постепенно реляционная СУБД Oracle преобразуется <strong>в</strong><br />
объектно-ориентиро<strong>в</strong>анную систему на осно<strong>в</strong>е языка SQL++, хранящую данные <strong>в</strong> <strong>в</strong>иде<br />
объекто<strong>в</strong> <strong>в</strong>место таблиц.
7<br />
Под упра<strong>в</strong>лением СУБД Pick сотни пользо<strong>в</strong>ателей могут со<strong>в</strong>местно использо<strong>в</strong>ать один<br />
компьютер. Приложения Pick со<strong>в</strong>местимы с MS-DOS и Unix, благодаря чему около<br />
полумиллиона предприятий <strong>в</strong> мире используют Pick <strong>в</strong> качест<strong>в</strong>е программного обеспечения<br />
администрати<strong>в</strong>ных и экономических систем.<br />
Профессиональная СУБД SQL Server (Microsoft) – это еще одна раз<strong>в</strong>итая реляционная<br />
система, решающая задачи как <strong>в</strong> режиме непосредст<strong>в</strong>енной обработки сложных очередей,<br />
так и <strong>в</strong> качест<strong>в</strong>е поддержки информационных систем принятия решения. Она имеет<br />
надежную защиту от несанкциониро<strong>в</strong>анного доступа и сбое<strong>в</strong> и обладает широкими<br />
<strong>в</strong>озможностями администриро<strong>в</strong>ания <strong>в</strong> режиме удаленного доступа.<br />
К числу непроцедурных многопользо<strong>в</strong>ательских СУБД относятся продукты фирмы Gupta<br />
— одного из миро<strong>в</strong>ых лидеро<strong>в</strong> <strong>в</strong> области профессиональных распределенных СУБД. Эти<br />
программные средст<strong>в</strong>а устано<strong>в</strong>лены более чем <strong>в</strong> 500 компаниях. Одних только копий SQL<br />
Base насчиты<strong>в</strong>ается с<strong>в</strong>ыше 20 тысяч <strong>в</strong> разных странах. Неограниченное число ее<br />
пользо<strong>в</strong>ателей работает на платформах MS-DOS, OS/2, NetWare, SUN, Unix. SQL. Gupta<br />
поддержи<strong>в</strong>ает многозадачность, обеспечи<strong>в</strong>ает целостность данных, обрабаты<strong>в</strong>ает типы<br />
данных любого размера <strong>в</strong> национальных алфа<strong>в</strong>итах, обладает <strong>в</strong>озможностями операти<strong>в</strong>ной<br />
архи<strong>в</strong>ации и а<strong>в</strong>томатического <strong>в</strong>осстано<strong>в</strong>ления данных после сбоя. Gupta предоста<strong>в</strong>ляет<br />
разработчикам полностью объектно-ориентиро<strong>в</strong>анную среду. Она поддержи<strong>в</strong>ает DDE и OLE,<br />
MDI и множест<strong>в</strong>о библиотек. А сете<strong>в</strong>ой набор программных продукто<strong>в</strong> обеспечи<strong>в</strong>ает доступ<br />
к данным различных баз данных <strong>в</strong> сети.<br />
Интегриро<strong>в</strong>анные системы программиро<strong>в</strong>ания, <strong>в</strong>ключающие генераторы кодо<strong>в</strong> и<br />
процедурные языки, назы<strong>в</strong>ают CASE-инструментами (Computer Aided Software Engineering).<br />
В таких комплексах среда проектиро<strong>в</strong>ания не отделена от прикладной системы. Примерами<br />
CASE-инструменто<strong>в</strong> я<strong>в</strong>ляются системы BPWin и ERWin компании LogicWorks,<br />
Designer/2000 компании Oracle, SilverRun компании SilverRun Technologies, Rational Rose и<br />
др. В частности, <strong>в</strong> Oracle CASE. Для создания конкретной прикладной системы, например<br />
банко<strong>в</strong>ской, проектиро<strong>в</strong>щик предста<strong>в</strong>ляет с<strong>в</strong>ои знания о работе конкретного банка <strong>в</strong><br />
системный сло<strong>в</strong>арь. Настройка проектируемой системы на технологию работы банка<br />
заклады<strong>в</strong>ается уже на пер<strong>в</strong>оначальных стадиях проектиро<strong>в</strong>ания средст<strong>в</strong>ами конструктора.<br />
При любых изменениях технологии меняется лишь предста<strong>в</strong>ление знаний <strong>в</strong> системном<br />
сло<strong>в</strong>аре. Затем <strong>в</strong>ыполняется генерация сразу же гото<strong>в</strong>ой системы. Для по<strong>в</strong>ышения<br />
произ<strong>в</strong>одительности Oracle CASE оснащена моделью-прототипом системы а<strong>в</strong>томатизации<br />
деятельности коммерческого банка. Проектиро<strong>в</strong>ание по прототипу снижает трудоемкость<br />
реализации и модификации системы, гарантирует целостность и непроти<strong>в</strong>оречи<strong>в</strong>ость<br />
данных, полную документируемость, переносимость, «прозрачность» работы <strong>в</strong> различных<br />
сете<strong>в</strong>ых средах.<br />
Этапы проектиро<strong>в</strong>ания информационных систем<br />
Базы данных и СУБД создаются методом нисходящего проектиро<strong>в</strong>ания<br />
последо<strong>в</strong>ательности моделей, описы<strong>в</strong>ающих предметную область различными средст<strong>в</strong>ами.<br />
Вначале произ<strong>в</strong>одится предпроектное обследо<strong>в</strong>ание предметной области и<br />
разрабаты<strong>в</strong>ается ее функциональная модель, описы<strong>в</strong>ающая потоки данных, их источники и<br />
приемники. Такое описание служит обосно<strong>в</strong>анием технического задания на проектиро<strong>в</strong>ание<br />
информационной системы.<br />
Функциональная модель заклады<strong>в</strong>ается <strong>в</strong> осно<strong>в</strong>у инфологической модели,<br />
предста<strong>в</strong>ляющей обобщенное концептуальное описание информационной системы на<br />
естест<strong>в</strong>енном языке с при<strong>в</strong>лечением, при необходимости, математических формул, таблиц,<br />
диаграмм.<br />
Характер такого описания определяет предста<strong>в</strong>ление следующего уро<strong>в</strong>ня —<br />
даталогическую модель данных, описы<strong>в</strong>ающую данные на языке программиро<strong>в</strong>ания<br />
конкретной СУБД.
8<br />
На нижнем уро<strong>в</strong>не находится физическая модель данных, характеризующая среду их<br />
хранения посредст<strong>в</strong>ом электрических, магнитных, оптических сигнало<strong>в</strong>.<br />
Благодаря такой четырехуро<strong>в</strong>не<strong>в</strong>ой системе проектиро<strong>в</strong>ания обеспечи<strong>в</strong>ается <strong>в</strong>ысокая<br />
досто<strong>в</strong>ерность, надежность сохранения и неза<strong>в</strong>исимость данных от использующих их<br />
программ.<br />
1 этап проектиро<strong>в</strong>ания: функциональное моделиро<strong>в</strong>ание<br />
Функциональные модели строятся различными методами: DFD — Data Flow Diagrams,<br />
структурными схемами с использо<strong>в</strong>анием языко<strong>в</strong> И.Де Марко, OMT, SSADM, Гейна-<br />
Сарсона. В терминологии функционального моделиро<strong>в</strong>ания источники и приемники данных<br />
назы<strong>в</strong>аются <strong>в</strong>нешними сущностями. Обработанная информация помещается <strong>в</strong> хранилища,<br />
или <strong>в</strong>нутренние сущности, изображаемые <strong>в</strong> DFD прямоугольниками Точка преобразо<strong>в</strong>ания<br />
<strong>в</strong>ходных данных <strong>в</strong> <strong>в</strong>ыходные именуется процессом и <strong>в</strong> нотации Йордана–Де Марко<br />
обозначается окружностью. Данные, участ<strong>в</strong>ующие <strong>в</strong> процессах, назы<strong>в</strong>аются потоками и<br />
предста<strong>в</strong>ляются напра<strong>в</strong>ленными дугами, которые могут раз<strong>в</strong>ет<strong>в</strong>ляться и сли<strong>в</strong>аться. Для<br />
каждого информационного потока и хранилища определяются с<strong>в</strong>язанные с ними<br />
имено<strong>в</strong>анные элементы данных.<br />
Техническое задание содержит обычно формулиро<strong>в</strong>ку наимено<strong>в</strong>ания, цели и области<br />
применения разработки, перечень источнико<strong>в</strong> информации, требо<strong>в</strong>ания к информационной<br />
системе, заданные экономические и эргономические показатели, описание стадий разработки<br />
и перечень <strong>в</strong>ыходных документо<strong>в</strong>.<br />
2 этап проектиро<strong>в</strong>ания: инфологическое моделиро<strong>в</strong>ание<br />
Осно<strong>в</strong>ными компонентами инфологических моделей я<strong>в</strong>ляются объекты предметной<br />
область, назы<strong>в</strong>аемые здесь сущностями с их элементарными с<strong>в</strong>ойст<strong>в</strong>ами, именуемыми <strong>в</strong><br />
данном подходе атрибутами.<br />
Каждая сущность рассматри<strong>в</strong>ается как отдельный экземпляр модели, а схожие<br />
экземпляры группируются <strong>в</strong> коллекции — типы сущностей. Для нахождения конкретных<br />
экземпляро<strong>в</strong> сущности <strong>в</strong> некотором типе используются специальные атрибуты –<br />
идентификаторы.<br />
Минимальная группа идентификаторо<strong>в</strong>, однозначно определяющая требуемый экземпляр<br />
сущности, назы<strong>в</strong>ается ключом. В каждом типе сущностей может быть задано несколько<br />
ключей, и <strong>в</strong> этом случае один из них назначается пер<strong>в</strong>ичным ключом, а <strong>в</strong>се остальные —<br />
<strong>в</strong>озможными ключами. При <strong>в</strong>ыборе пер<strong>в</strong>ичного ключа следует отда<strong>в</strong>ать предпочтение<br />
идентификаторам, соста<strong>в</strong>ленным из минимального числа атрибуто<strong>в</strong> (соста<strong>в</strong>ным ключам), <strong>в</strong><br />
частности — из одного атрибута (несоста<strong>в</strong>ному ключу). Атрибуты, идентифицирующие<br />
сущности, схожие по нескольким атрибутам <strong>в</strong> типе, назы<strong>в</strong>аются <strong>в</strong>торичными ключами, или<br />
ключами поиска. При с<strong>в</strong>язы<strong>в</strong>ании типо<strong>в</strong> сущностей используются <strong>в</strong>нешние ключи,<br />
соот<strong>в</strong>етст<strong>в</strong>ующие пер<strong>в</strong>ичным ключам с<strong>в</strong>язы<strong>в</strong>аемых типо<strong>в</strong>.<br />
Отношения между сущностями характеризуются с<strong>в</strong>язями, которые бы<strong>в</strong>ают бинарными<br />
(парными) или n-арными (множест<strong>в</strong>енными). Пусть <strong>в</strong> д<strong>в</strong>ух типах сущностей с атрибутами i,<br />
j, k,... имеются экземпляры A1{a 1i , a 1j , a 1k }, A2{ a 2i , a 2j , a 2k } такие, что i-е атрибуты их с<strong>в</strong>язаны<br />
между собой однозначной за<strong>в</strong>исимостью a 1i → f(a 2i ). В этом случае го<strong>в</strong>орят, что между<br />
соот<strong>в</strong>етст<strong>в</strong>ующими типами сущностей определена степень с<strong>в</strong>язи «один к одному» (1:1). При<br />
этом каждый экземпляр одного типа соотносится ро<strong>в</strong>но с одним экземпляром <strong>в</strong> с<strong>в</strong>язанном<br />
типе и наоборот, каждый экземпляр с<strong>в</strong>язанного типа соот<strong>в</strong>етст<strong>в</strong>ует не более чем одному<br />
экземпляру другого типа. Как пра<strong>в</strong>ило, <strong>в</strong> этом случае с<strong>в</strong>язы<strong>в</strong>ают друг с другом ключи типо<strong>в</strong>.<br />
Наряду с этим, между атрибутами сущностей может сущест<strong>в</strong>о<strong>в</strong>ать степень с<strong>в</strong>язи «один<br />
ко многим» (1:N) a 1i → f(a 2i ), a 1i → f(a 2j ),... Такая с<strong>в</strong>язь устана<strong>в</strong>ли<strong>в</strong>ается, когда одному<br />
экземпляру <strong>в</strong> с<strong>в</strong>язанном типе сущностей соот<strong>в</strong>етст<strong>в</strong>ует один экземпляр <strong>в</strong> осно<strong>в</strong>ном типе, но
9<br />
одному экземпляру осно<strong>в</strong>ного типа может соот<strong>в</strong>етст<strong>в</strong>о<strong>в</strong>ать несколько экземпляро<strong>в</strong><br />
с<strong>в</strong>язанного типа.<br />
Сущест<strong>в</strong>уют, также, отношения «много ко многим» (M:N) a 1i → f(a 2i ), a 1i → f(a 2j ), a 2j →<br />
f(a 1i ),... С<strong>в</strong>язь «много ко многим» многозначна. Ее можно заменить промежуточной с<strong>в</strong>язью<br />
через сущности, объединенные отношением «один ко многим».<br />
В некоторых случаях целесообразно рассматри<strong>в</strong>ать однонапра<strong>в</strong>ленную с<strong>в</strong>язь от типа<br />
сущности к другому типу. В за<strong>в</strong>исимости от количест<strong>в</strong>енных характеристик отображения<br />
различают простую и многозначную с<strong>в</strong>язь. При простой однонапра<strong>в</strong>ленной с<strong>в</strong>язи одному и<br />
тому же экземпляру одного типа соот<strong>в</strong>етст<strong>в</strong>ует один и тот же экземпляр сущности другого<br />
типа, а обратная с<strong>в</strong>язь не определена. При многозначной однонапра<strong>в</strong>ленной с<strong>в</strong>язи одному<br />
экземпляру одного типа соот<strong>в</strong>етст<strong>в</strong>ует несколько экземпляро<strong>в</strong> другого типа, а обратная с<strong>в</strong>язь<br />
не определена. Сущест<strong>в</strong>уют и более сложные с<strong>в</strong>язи.<br />
Разработаны многочисленные инструменты построения инфологических моделей:<br />
ERD (Entity-Relationship Diagrams), IDEF1X, SADT (Structured Analysis and Design<br />
Technique), языки Мартина, Баркера и др. В частности, <strong>в</strong> языке ER-диаграмм (нотация Чена)<br />
сущности изображаются прямоугольниками, атрибуты — окружностями, <strong>в</strong> которые<br />
<strong>в</strong>писы<strong>в</strong>аются имена атрибуто<strong>в</strong>. Идентифицирующие атрибуты подчерки<strong>в</strong>аются,<br />
характеристики изображаются трапециями, обозначения — параллелограммами, с<strong>в</strong>язи<br />
(отношения) – ромбами или шестиугольниками, соединенными с соот<strong>в</strong>етст<strong>в</strong>ующими типами<br />
сущностей ребрами. Возле сущностей на ребрах цифрами указы<strong>в</strong>ается степень отношения. В<br />
нотациях Мартина, IDEF1X и Баркера список атрибуто<strong>в</strong> при<strong>в</strong>одится <strong>в</strong>нутри прямоугольника,<br />
обозначающего сущность. В пер<strong>в</strong>ой из них ключи подчерки<strong>в</strong>аются, <strong>в</strong>о <strong>в</strong>торой располагаются<br />
перед другими атрибутами, а <strong>в</strong> третьей отмечаются знаком #, а с<strong>в</strong>язи <strong>в</strong>о <strong>в</strong>сех изображаются<br />
имено<strong>в</strong>анными дугами.<br />
3 этап проектиро<strong>в</strong>ания: даталогическое моделиро<strong>в</strong>ание<br />
Даталогическая реляционная модель должна иметь структуру как минимум одной<br />
таблицы с уникальными именами полей и записями одинако<strong>в</strong>ой длины, например, такую:<br />
Когда записи <strong>в</strong> таблице по<strong>в</strong>торяются,<br />
<strong>в</strong>озникают проблемы, с<strong>в</strong>язанные с поиском и<br />
систематизацией с<strong>в</strong>едений. Для их разрешения <strong>в</strong><br />
тех случаях, когда исходная комбинация полей не<br />
обеспечи<strong>в</strong>ает уникальности записей, <strong>в</strong> таблицу<br />
<strong>в</strong><strong>в</strong>одят дополнительное поле идентификатора<br />
записи (ID) с непо<strong>в</strong>торяющимися<br />
значениями:<br />
Поле или группа полей таблицы,<br />
содержащая данные, однозначно<br />
идентифицирующие каждую запись,<br />
предста<strong>в</strong>ляют пер<strong>в</strong>ичный ключ.<br />
Благодаря уникальности ключа, <strong>в</strong><br />
таблице исключается пересечение<br />
Стенд Экспонат Страна<br />
100 Компьютеры США<br />
200 Программы США<br />
300 Программы Россия<br />
ID Стенд Экспонат Страна<br />
1 100 Компьютеры США<br />
2 100 Компьютеры США<br />
3 200 Программы США<br />
4 300 Программы Россия<br />
записей. Именно ключ <strong>в</strong> пер<strong>в</strong>ую<br />
очередь определяет порядок предста<strong>в</strong>ления записей пользо<strong>в</strong>ателю. Он же регулирует<br />
расположение, поиск и обработку данных. Так, <strong>в</strong> пер<strong>в</strong>ой таблице роль ключа может играть<br />
поле Стенд, а <strong>в</strong>о <strong>в</strong>торой — ID.<br />
Ключ, занимающий одно поле, назы<strong>в</strong>ают простым ключом, а ключ, образо<strong>в</strong>анный<br />
группой полей, именуют соста<strong>в</strong>ным ключом. Поля соста<strong>в</strong>ного ключа назы<strong>в</strong>ают частичными<br />
(усеченными) ключами. Например, <strong>в</strong> следующей таблице <strong>в</strong> качест<strong>в</strong>е соста<strong>в</strong>ного ключа<br />
целесообразно принять группу полей Стенд - Экспонат:
10<br />
Стенд Экспонат Площадь Участник Должность Оклад Фирма Страна<br />
100 Компьютеры 50 Лунин Дилер 2000 IBM США<br />
100 Станции 100 Смирно<strong>в</strong> Дилер 2000 IBM США<br />
200 Программы 25 И<strong>в</strong>ано<strong>в</strong>а Дилер 2000 IBM США<br />
300 Дисплеи 40 Петро<strong>в</strong> Прода<strong>в</strong>ец 1500 Acer Тай<strong>в</strong>ань<br />
400 Программы 25 Степано<strong>в</strong> Прода<strong>в</strong>ец 1500 Scan Россия<br />
400 Дисплеи 40 Ск<strong>в</strong>орцо<strong>в</strong> Прода<strong>в</strong>ец 1500 Scan Россия<br />
Для ускорения обработки данных часто используют <strong>в</strong>торичные ключи, именуемые<br />
индексами. На практике индексы часто реализуются <strong>в</strong> <strong>в</strong>иде <strong>в</strong>нутренних, часто скрытых от<br />
пользо<strong>в</strong>ателя таблиц из д<strong>в</strong>ух полей: поля индексного <strong>в</strong>ыражения и поля местоположения<br />
каждой записи индексируемой таблицы. Цель создания индексо<strong>в</strong> — ускорение доступа к<br />
данным <strong>в</strong> ходе поиска за счет ограничения количест<strong>в</strong>а просматри<strong>в</strong>аемых записей <strong>в</strong><br />
индексируемом поле. Для пер<strong>в</strong>ичного ключа обычно а<strong>в</strong>томатически создается индекс, не<br />
допускающий со<strong>в</strong>падения значений <strong>в</strong> полях ключа. В то же <strong>в</strong>ремя, использо<strong>в</strong>ание индексо<strong>в</strong><br />
сопряжено с определенными трудностями. При доба<strong>в</strong>лении но<strong>в</strong>ых записей СУБД<br />
приходится тратить дополнительное <strong>в</strong>ремя на обно<strong>в</strong>ление индексо<strong>в</strong>, а при редактиро<strong>в</strong>ании<br />
индексиро<strong>в</strong>анного поля приходится обно<strong>в</strong>лять <strong>в</strong>се измени<strong>в</strong>шиеся индексы. Поэтому<br />
индексами целесообразно снабжать таблицы большой мощности, используемые <strong>в</strong><br />
приложениях для анализа и принятия решений, стараясь избегать их <strong>в</strong><br />
многопользо<strong>в</strong>ательских сете<strong>в</strong>ых приложениях с блокиро<strong>в</strong>ками, а также <strong>в</strong> объемных базах<br />
данных, требующих регулярного доба<strong>в</strong>ления и удаления информации.<br />
Преобразо<strong>в</strong>ание инфологического предста<strong>в</strong>ления объекто<strong>в</strong> предметной области <strong>в</strong><br />
даталогическую реляционную модель назы<strong>в</strong>ается нормализацией данных. Именно <strong>в</strong> ходе<br />
нормализации данные группируются <strong>в</strong> таблицы, а таблицы — <strong>в</strong> базу данных. Целью<br />
нормализации я<strong>в</strong>ляется описание заданной системы сущностей конечным множест<strong>в</strong>ом<br />
с<strong>в</strong>язанных между собой таблиц, обладающим оптимальными характеристиками процессо<strong>в</strong><br />
хранения, поиска и обработки данных. Обычно нормализация предста<strong>в</strong>ляет собой обратимый<br />
пошаго<strong>в</strong>ый процесс декомпозиции, или разложения, исходной таблицы на более мелкие и<br />
простые таблицы. Аппарат нормализации базируется на понятии нормальных форм, каждая<br />
из которых по-с<strong>в</strong>оему ограничи<strong>в</strong>ает типы допустимых функциональных за<strong>в</strong>исимостей.<br />
Рассмотрим нормализацию на примере при<strong>в</strong>еденной <strong>в</strong>ыше таблицы Стенд-Экспонат-<br />
Площадь-Участник-Должность-Оклад-Фирма-Страна. Эта таблица описы<strong>в</strong>ает некоторое<br />
множест<strong>в</strong>о экспонато<strong>в</strong>, размещаемых на <strong>в</strong>ыста<strong>в</strong>очных стендах различными фирмами. В<br />
качест<strong>в</strong>е исходных данных для нее может <strong>в</strong>ыступать план <strong>в</strong>ыста<strong>в</strong>ки, на котором показано<br />
размещение стендо<strong>в</strong>, или ее каталог, предста<strong>в</strong>ляющий участнико<strong>в</strong>; это может быть<br />
рекламный проспект, рассказы<strong>в</strong>ающий об экспонатах, либо картотека стран-участниц.<br />
Пер<strong>в</strong>ой нормальной формой (1НФ) назы<strong>в</strong>ается «плоская» модель данных, значения<br />
элементо<strong>в</strong> которой атомарны, <strong>в</strong>се записи от<strong>в</strong>ечают одному и тому же макету и уникальны.<br />
Рассматри<strong>в</strong>аемая таблица относится к 1НФ.<br />
Всякое неключе<strong>в</strong>ое поле таблицы находится <strong>в</strong> определенной функциональной<br />
за<strong>в</strong>исимости от ключе<strong>в</strong>ых полей. Отношение полей назы<strong>в</strong>ается полной функциональной<br />
за<strong>в</strong>исимостью, если содержимое неключе<strong>в</strong>ого поля за<strong>в</strong>исит от <strong>в</strong>сего соста<strong>в</strong>ного ключа. В<br />
проти<strong>в</strong>ном случае речь идет о частичной функциональной за<strong>в</strong>исимости. В частности, поле<br />
Участник находится <strong>в</strong> полной функциональной за<strong>в</strong>исимости от соста<strong>в</strong>ного ключа Стенд –<br />
Экспонат. Поле Фирма находится <strong>в</strong> частичной функциональной за<strong>в</strong>исимости от поля Стенд<br />
соста<strong>в</strong>ного ключа, а поле Площадь за<strong>в</strong>исит только от частичного ключа Экспонат.<br />
Частичная функциональная за<strong>в</strong>исимость <strong>в</strong>ызы<strong>в</strong>ает ряд проблем. Это дублиро<strong>в</strong>ание<br />
данных, которые могут предста<strong>в</strong>лять сразу несколько экспонато<strong>в</strong>. Это и не<strong>в</strong>озможность
<strong>в</strong>ключения <strong>в</strong> таблицу участнико<strong>в</strong>, не<br />
имеющих экспонато<strong>в</strong>. Или наоборот —<br />
необходимость исключения экспонато<strong>в</strong><br />
<strong>в</strong> случае отсутст<strong>в</strong>ия участнико<strong>в</strong>.<br />
Наличие многозначности усложняет<br />
поиск данных и их обработку. Поэтому<br />
при проектиро<strong>в</strong>ании структуры базы<br />
данных стремятся к устранению<br />
нежелательных функциональных<br />
за<strong>в</strong>исимостей между полями и<br />
лик<strong>в</strong>идируют дублиро<strong>в</strong>ания данных<br />
посредст<strong>в</strong>ом нормализации.<br />
Преобразуем исходную таблицу ко<br />
<strong>в</strong>торой нормальной форме (2НФ),<br />
разби<strong>в</strong> ее на три таблицы. Таблица<br />
принадлежит ко 2НФ, если она<br />
находится <strong>в</strong> 1НФ, но <strong>в</strong> ней отсутст<strong>в</strong>уют<br />
11<br />
Стенд Фирма Страна Экспонат Площадь<br />
100 IBM США Компьютеры 50<br />
200 IBM США Станции 100<br />
300 Acer Тай<strong>в</strong>ань Программы 25<br />
400 Scan Россия Дисплеи 40<br />
Стенд Экспонат Участник Должность Оклад<br />
100 Компьютеры Лунин Дилер 2000<br />
100 Станции Смирно<strong>в</strong> Дилер 2000<br />
200 Программы И<strong>в</strong>ано<strong>в</strong>а Дилер 2000<br />
300 Дисплеи Петро<strong>в</strong> Прода<strong>в</strong>ец 1500<br />
400 Программы Степано<strong>в</strong> Прода<strong>в</strong>ец 1500<br />
400 Дисплеи Ск<strong>в</strong>орцо<strong>в</strong> Прода<strong>в</strong>ец 1500<br />
частичные<br />
функциональные<br />
за<strong>в</strong>исимости от полей соста<strong>в</strong>ного ключа, то есть каждое ее неключе<strong>в</strong>ое поле полностью<br />
за<strong>в</strong>исит от <strong>в</strong>сего ключа. Так, после разби<strong>в</strong>ки поле Фирма за<strong>в</strong>исит от ключа Стенд, Площадь<br />
— от ключа Экспонат, а Участник — от соста<strong>в</strong>ного ключа Стенд–Экспонат.<br />
Но этого недостаточно. Если поля i, j, k с<strong>в</strong>язаны между собой по схеме a k = f(a j ), a j = f(a i ),<br />
но обратная за<strong>в</strong>исимость отсутст<strong>в</strong>ует, то го<strong>в</strong>орят, что i за<strong>в</strong>исит от k транзити<strong>в</strong>но. В д<strong>в</strong>ух<br />
таблицах присутст<strong>в</strong>уют отмеченные транзити<strong>в</strong>ные за<strong>в</strong>исимости. Так, поле Страна находится<br />
<strong>в</strong> транзити<strong>в</strong>ной за<strong>в</strong>исимости от ключа, будучи с<strong>в</strong>язанным с ним через поле Фирма. Поле<br />
Оклад транзити<strong>в</strong>но с<strong>в</strong>язано с ключом через поля Должность и Участник.<br />
Третья нормальная форма (3НФ) осно<strong>в</strong>ана на 2НФ и отсутст<strong>в</strong>ии транзити<strong>в</strong>ных<br />
за<strong>в</strong>исимостей. Дальнейшая нормализация при<strong>в</strong>одит к шести таблицам <strong>в</strong> 3НФ. Теперь<br />
изменение данных <strong>в</strong> неключе<strong>в</strong>ых полях не <strong>в</strong>лияет на содержимое других полей.<br />
Чтобы про<strong>в</strong>еденная декомпозиция была обратимой, и из полученного множест<strong>в</strong>а таблиц<br />
Экспонат Площадь<br />
Компьютеры 50<br />
Станции 100<br />
Программы 25<br />
Дисплеи 40<br />
Стенд Экспонат Участник<br />
100 Компьютеры Лунин<br />
100 Станции Смирно<strong>в</strong><br />
200 Программы И<strong>в</strong>ано<strong>в</strong>а<br />
300 Дисплеи Петро<strong>в</strong><br />
400 Программы Степано<strong>в</strong><br />
400 Дисплеи Ск<strong>в</strong>орцо<strong>в</strong><br />
Фирма Страна<br />
IBM США<br />
Acer Тай<strong>в</strong>ань<br />
Scan Россия<br />
Участник Должность<br />
Лунин Дилер<br />
Смирно<strong>в</strong> Дилер<br />
И<strong>в</strong>ано<strong>в</strong>а Дилер<br />
Петро<strong>в</strong> Прода<strong>в</strong>ец<br />
Степано<strong>в</strong> Прода<strong>в</strong>ец<br />
Ск<strong>в</strong>орцо<strong>в</strong> Прода<strong>в</strong>ец<br />
Должность Оклад<br />
Дилер 2000<br />
Прода<strong>в</strong>ец 1500<br />
Стенд Фирма<br />
100 IBM<br />
200 IBM<br />
300 Acer<br />
400 Scan<br />
можно было получить исходную информацию, их объединяют <strong>в</strong> пары, состоящие из гла<strong>в</strong>ной<br />
таблицы и с<strong>в</strong>язанной таблицы, назы<strong>в</strong>аемой также подчиненной. Ключ гла<strong>в</strong>ной таблицы<br />
именуют пер<strong>в</strong>ичным ключом, а ключ подчиненной таблицы — <strong>в</strong>нешним ключом.<br />
С<strong>в</strong>язы<strong>в</strong>аемые поля должны иметь схожие типы данных.
12<br />
Между таблицами <strong>в</strong> парах устана<strong>в</strong>ли<strong>в</strong>аются отношения, подобные отношениям<br />
инфологической модели. Если между д<strong>в</strong>умя таблицами определена за<strong>в</strong>исимость «один к<br />
одному», то каждая запись <strong>в</strong> гла<strong>в</strong>ной таблице соотносится ро<strong>в</strong>но с одной записью <strong>в</strong><br />
с<strong>в</strong>язанной таблице и наоборот, каждая запись с<strong>в</strong>язанной таблицы соот<strong>в</strong>етст<strong>в</strong>ует не более чем<br />
одной записи гла<strong>в</strong>ной таблицы. Как пра<strong>в</strong>ило, <strong>в</strong> этом случае с<strong>в</strong>язы<strong>в</strong>ают друг с другом ключи<br />
таблиц. В частности, <strong>в</strong> за<strong>в</strong>исимости 1:1 находятся таблицы Стенд-Экспонат-Участник и<br />
Участник-Должность. Ключе<strong>в</strong>ое поле Участник <strong>в</strong>торой — гла<strong>в</strong>ной — таблицы я<strong>в</strong>ляется<br />
пер<strong>в</strong>ичным ключом, а аналогичное поле пер<strong>в</strong>ой — с<strong>в</strong>язанной — таблицы предста<strong>в</strong>ляет<br />
<strong>в</strong>нешний ключ. Отношение 1:1 часто используют при разделении таблиц большой степени.<br />
При с<strong>в</strong>язи «один ко многим» каждой записи гла<strong>в</strong>ной таблицы соот<strong>в</strong>етст<strong>в</strong>ует несколько<br />
записей <strong>в</strong> с<strong>в</strong>язанной таблице, но каждой записи <strong>в</strong> с<strong>в</strong>язанной таблице соот<strong>в</strong>етст<strong>в</strong>ует не более<br />
одной записи <strong>в</strong> таблице гла<strong>в</strong>ной. Например, таблицы Стенд-Экспонат-Участник и<br />
Экспонат-Площадь с<strong>в</strong>язаны полем Экспонат <strong>в</strong> отношении 1:2. Таблица Экспонат-Площадь<br />
я<strong>в</strong>ляется здесь гла<strong>в</strong>ной, а ее ключе<strong>в</strong>ое поле Экспонат — пер<strong>в</strong>ичным ключом. Одноименное<br />
поле с<strong>в</strong>язанной таблицы играет роль <strong>в</strong>нешнего ключа.<br />
Реляционные отношения таблиц с<strong>в</strong>язаны с дальнейшей нормализацией базы данных.<br />
Считается, что таблицы находятся <strong>в</strong> чет<strong>в</strong>ертой нормальной форме (4НФ), если <strong>в</strong> них<br />
отсутст<strong>в</strong>уют неза<strong>в</strong>исимые элементы данных, с<strong>в</strong>язанные отношением «много ко многим».<br />
Иными сло<strong>в</strong>ами, <strong>в</strong> таблице, находящейся <strong>в</strong> 3НФ, не должно быть д<strong>в</strong>ух полей, с<strong>в</strong>язанных друг<br />
с другом через другую таблицу. Чтобы удо<strong>в</strong>лет<strong>в</strong>орить этому усло<strong>в</strong>ию, отношение «много ко<br />
многим» <strong>в</strong> реляционной модели обычно не устана<strong>в</strong>ли<strong>в</strong>ают между д<strong>в</strong>умя таблицами<br />
непосредст<strong>в</strong>енно — для этого <strong>в</strong><strong>в</strong>одят промежуточные таблицы с<strong>в</strong>язи, объединяя их<br />
отношением «один ко многим».<br />
Наконец, го<strong>в</strong>орят, что <strong>в</strong>се таблицы базы данных находятся <strong>в</strong> пятой нормальной форме<br />
(5НФ), если они удо<strong>в</strong>лет<strong>в</strong>оряют 4НФ и между ними устано<strong>в</strong>лено достаточное количест<strong>в</strong>о<br />
с<strong>в</strong>язей, чтобы с их помощью можно было <strong>в</strong>осстано<strong>в</strong>ить исходную общую таблицу.<br />
Таким образом, нормализация по<strong>в</strong>ышает надежность базы данных, гарантируя<br />
целостность данных уникальностью пер<strong>в</strong>ичных ключей и ссылочную целостность<br />
соот<strong>в</strong>етст<strong>в</strong>ием <strong>в</strong>нешних ключей пер<strong>в</strong>ичным ключам. Несмотря не у<strong>в</strong>еличение числа таблиц <strong>в</strong><br />
базе данных, она часто способст<strong>в</strong>ует ускорению доступа к данным и обно<strong>в</strong>ления таблиц.<br />
4 этап проектиро<strong>в</strong>ания: физическое моделиро<strong>в</strong>ание <strong>в</strong> MS <strong>Access</strong><br />
Организация <strong>Access</strong><br />
Каждая база данных <strong>Access</strong> предста<strong>в</strong>ляет собой единый файл с расширением .mdb,<br />
содержащий до шести категорий объекто<strong>в</strong> базы данных: таблицы, запросы, формы, отчеты,<br />
макросы и модули с уникальными именами. Базы данных могут объединяться <strong>в</strong> рабочие<br />
группы, регистрируемые <strong>в</strong> файле System.mdw. В за<strong>в</strong>исимости от пра<strong>в</strong>, предоста<strong>в</strong>ляемых<br />
пользо<strong>в</strong>ателям, различают три группы функций, реализуемых <strong>в</strong> <strong>Access</strong>:<br />
• доступ к данным, то есть предста<strong>в</strong>ление информации,<br />
• упра<strong>в</strong>ление транзакциями, то есть доба<strong>в</strong>ление, удаление и пра<strong>в</strong>ка записей,<br />
• программиро<strong>в</strong>ание, то есть создание и пра<strong>в</strong>ка структур баз данных и макето<strong>в</strong> таблиц,<br />
• администриро<strong>в</strong>ание, т.е. разграничение пра<strong>в</strong> пользо<strong>в</strong>ателей и упра<strong>в</strong>ление доступом к<br />
данным.<br />
Источником данных для объекто<strong>в</strong> базы данных <strong>в</strong>сех категорий я<strong>в</strong>ляются таблицы. Число<br />
таблиц задается на стадии создания базы данных и может достигать 32768 с одно<strong>в</strong>ременным<br />
открытием до 254 таблиц. Их содержание читается и при необходимости обно<strong>в</strong>ляется<br />
прикладными пользо<strong>в</strong>ателями <strong>в</strong> ходе работы с базой данных. Таблица содержит информацию<br />
о сущностях предметной области. Описание каждой сущности размещается <strong>в</strong> отдельной<br />
записи, причем каждый атрибут <strong>в</strong> этом описании занимает отдельное поле.
13<br />
Информацию о содержимом таблиц дают запросы <strong>Access</strong>. Запрос помогает пользо<strong>в</strong>ателю<br />
<strong>в</strong> про<strong>в</strong>едении поиска и <strong>в</strong>ыборки данных, поз<strong>в</strong>оляет ему комбиниро<strong>в</strong>ать с<strong>в</strong>едения из<br />
нескольких таблиц, произ<strong>в</strong>одить <strong>в</strong>ычисления, <strong>в</strong>ста<strong>в</strong>лять, изменять, удалять, группиро<strong>в</strong>ать,<br />
сра<strong>в</strong>ни<strong>в</strong>ать данные. В запрос <strong>Access</strong> можно <strong>в</strong>ключать статистические и специальные<br />
операторы, арифметические и логические <strong>в</strong>ыражения. Запросы сохраняются для<br />
последующего использо<strong>в</strong>ания и построения но<strong>в</strong>ых запросо<strong>в</strong>. <strong>Access</strong> поз<strong>в</strong>оляет делать запрос<br />
одно<strong>в</strong>ременно к 16 таблицам, <strong>в</strong>ключая <strong>в</strong> него до 255 полей.<br />
К одной и той же таблице могут обращаться самые разнообразные пользо<strong>в</strong>атели, которых<br />
<strong>в</strong> разной степени интересуют различные поля таблиц. Поэтому таблицу или запрос часто<br />
приходится предста<strong>в</strong>лять различными экранными образами, назы<strong>в</strong>аемыми формами. Форма<br />
<strong>Access</strong> — это категория объекто<strong>в</strong> базы данных, служащая осно<strong>в</strong>ным инструментом доступа к<br />
данным и <strong>в</strong>ыполнения транзакций. В форме отражают столько данных из таблиц или<br />
запросо<strong>в</strong>, сколько требуется пользо<strong>в</strong>ателю, и <strong>в</strong> таком формате, <strong>в</strong> каком он предпочитает их<br />
<strong>в</strong>идеть. Обычно форма предоста<strong>в</strong>ляет <strong>в</strong>озможность редактиро<strong>в</strong>ания записей <strong>в</strong> таблицах,<br />
дополнения таблиц но<strong>в</strong>ыми записями и ос<strong>в</strong>обождения от лишней информации. Через форму<br />
можно получить графическую и полнотексто<strong>в</strong>ую информацию, хранящуюся <strong>в</strong> базе данных.<br />
Форма снабжается на<strong>в</strong>игационными средст<strong>в</strong>ами перехода от записи к записи, а также со<br />
страницы на страницу (если не помещается на одной странице). Формы масштабируются,<br />
<strong>в</strong>ы<strong>в</strong>одятся <strong>в</strong> печать, дополняются элементами графического оформления и упра<strong>в</strong>ления по<br />
событиям.<br />
Отчет <strong>Access</strong> — это категория объекто<strong>в</strong> базы данных, обеспечи<strong>в</strong>ающая подгото<strong>в</strong>ку<br />
печатного документа, раскры<strong>в</strong>ающего содержание таблицы или запроса. В отчете можно<br />
сортиро<strong>в</strong>ать и группиро<strong>в</strong>ать записи, про<strong>в</strong>одить необходимые <strong>в</strong>ычисления, а также<br />
упорядочи<strong>в</strong>ать данные и предста<strong>в</strong>лять их <strong>в</strong> произ<strong>в</strong>ольном формате. На осно<strong>в</strong>е разных таблиц<br />
и запросо<strong>в</strong> создаются сложные отчеты, а также надписи для кон<strong>в</strong>ерто<strong>в</strong>, этикетки, <strong>в</strong>изитные<br />
карточки, письма.<br />
Наконец, программы <strong>в</strong> <strong>в</strong>иде таких категорий объекто<strong>в</strong> базы данных, как макросы на<br />
процедурном макроязыке <strong>Access</strong> и модули на <strong>в</strong>строенном <strong>в</strong> СУБД языке Visual Basic for<br />
Applications (VBA), а<strong>в</strong>томатизируют <strong>в</strong>ыполнение сложных и регулярно по<strong>в</strong>торяющихся<br />
операций над сущностями баз данных. Программы могут откры<strong>в</strong>ать и закры<strong>в</strong>ать таблицы,<br />
отображать формы, конструиро<strong>в</strong>ать отчеты и формиро<strong>в</strong>ать запросы. С помощью программ<br />
часто создают интерфейс пользо<strong>в</strong>ателя, системы меню, организуют контекстную помощь,<br />
<strong>в</strong>едут учет и контроль информационных потоко<strong>в</strong>.<br />
Полный соста<strong>в</strong> объекто<strong>в</strong> конкретной базы данных предста<strong>в</strong>лен на <strong>в</strong>кладке Соста<strong>в</strong>,<br />
откры<strong>в</strong>аемой <strong>в</strong> меню Файл .С<strong>в</strong>ойст<strong>в</strong>а базы данных.<br />
В <strong>Access</strong> <strong>в</strong>ходит ряд специализиро<strong>в</strong>анных программ, решающих задачи обучения работе<br />
и построения баз данных, формиро<strong>в</strong>ания запросо<strong>в</strong> и их оформления. Это мастера, шаг за<br />
шагом про<strong>в</strong>одящие разработчика по процедуре создания объекто<strong>в</strong> базы данных с<br />
предложением ему ряда типо<strong>в</strong>ых решений. <strong>Access</strong> также <strong>в</strong>ключает <strong>в</strong> себя механизмы,<br />
необходимые для работы с базами данных различных формато<strong>в</strong>. Специальные драй<strong>в</strong>еры<br />
ODBC обеспечи<strong>в</strong>ают с<strong>в</strong>язь пользо<strong>в</strong>ателей с реляционными СУБД других произ<strong>в</strong>одителей.<br />
Они поз<strong>в</strong>оляют напрямую обращаться к системам DBase, Paradox, Btrieve, а также упра<strong>в</strong>лять<br />
такими платформами, как Oracle, или с<strong>в</strong>язы<strong>в</strong>ать их с <strong>Access</strong>. <strong>Access</strong> располагает мощной<br />
спра<strong>в</strong>очной системой, поиско<strong>в</strong>ыми средст<strong>в</strong>ами, кон<strong>в</strong>ерторами тексто<strong>в</strong> и таблиц.<br />
Среда разработки баз данных<br />
Центральную часть среды разработчика <strong>Access</strong> занимает окно базы данных с <strong>в</strong>кладками<br />
категорий объекто<strong>в</strong> базы данных: таблиц, запросо<strong>в</strong>, форм, отчето<strong>в</strong> и программ <strong>в</strong> <strong>в</strong>иде<br />
макросо<strong>в</strong> и модулей. Каждый такой объект может быть создан и предста<strong>в</strong>лен <strong>в</strong> режиме<br />
конструктора или <strong>в</strong> режиме <strong>в</strong>ыполнения. Выполнение таблиц, запросо<strong>в</strong> и форм назы<strong>в</strong>ают<br />
открытием, <strong>в</strong>ыполнение отчето<strong>в</strong> — просмотром, а <strong>в</strong>ыполнение программ — запуском. Из<br />
любого режима можно <strong>в</strong>ернуться <strong>в</strong> окно базы данных через меню Окно 1: База данных,
14<br />
нажатием кла<strong>в</strong>иши или щелчком по кнопке панели инструменто<strong>в</strong>. Щелчок пра<strong>в</strong>ой<br />
кнопкой мыши <strong>в</strong>о многих областях окна или кла<strong>в</strong>иатурная комбинация <br />
откры<strong>в</strong>ает <strong>в</strong>сплы<strong>в</strong>ающее контекстное меню.<br />
Как инструмент разработчика, СУБД настраи<strong>в</strong>ается на его нужды. Чтобы программа была<br />
удобна <strong>в</strong> работе, следует использо<strong>в</strong>ать <strong>в</strong>озможности, предоста<strong>в</strong>ляемые меню Сер<strong>в</strong>ис<br />
.Параметры. С <strong>в</strong>кладки Общие этого меню задаются поля для печати и папка по умолчанию.<br />
На <strong>в</strong>кладке Вид уточняются детали интерфейса. Через <strong>в</strong>кладку Пра<strong>в</strong>ка/поиск можно<br />
изменить характер поиско<strong>в</strong>ых операций. Отдельные <strong>в</strong>кладки пос<strong>в</strong>ящены шаблонам таблиц,<br />
форм, отчето<strong>в</strong>, кла<strong>в</strong>иатуре, модулям. Из меню Сер<strong>в</strong>ис .Параметры запуска задается<br />
пер<strong>в</strong>оначальный <strong>в</strong>ид базы данных: ее заголо<strong>в</strong>ок, значок, меню, старто<strong>в</strong>ая форма и т.п.<br />
Плотность баз данных по<strong>в</strong>ышается командой меню Сер<strong>в</strong>ис .Служебные программы .Сжать<br />
базу данных, а по<strong>в</strong>режденные файлы иногда удается реста<strong>в</strong>риро<strong>в</strong>ать через меню Сер<strong>в</strong>ис<br />
.Служебные программы .Восстано<strong>в</strong>ить базу данных.<br />
В каждый момент <strong>в</strong>ремени <strong>Access</strong> предоста<strong>в</strong>ляет <strong>в</strong>озможность создать (кнопкой<br />
панели инструменто<strong>в</strong> или из меню Файл .Создать базу данных) или открыть (кнопкой<br />
панели инструменто<strong>в</strong> или из меню Файл .Открыть базу данных) одну базу данных.<br />
Предста<strong>в</strong>лением ее на экране упра<strong>в</strong>ляют меню Вид и Окно. Иногда организуется с<strong>в</strong>язы<strong>в</strong>ание<br />
с таблицами других приложений через меню Файл .Внешние данные. Через это же меню<br />
база данных может дополняться но<strong>в</strong>ыми таблицами. Если данные, предназначенные для<br />
импорта, созданы с помощью приложений Windows, для копиро<strong>в</strong>ания удобно использо<strong>в</strong>ать<br />
буфер обмена, доступный через меню Пра<strong>в</strong>ка .Вста<strong>в</strong>ить. СУБД про<strong>в</strong>еряет уникальность<br />
имен объекто<strong>в</strong> базы данных, обеспечи<strong>в</strong>ая ее целостность. В тех случаях, когда работа с<strong>в</strong>язана<br />
с переносом и копиро<strong>в</strong>анием информации между отдельными частями документа или<br />
разными документами, на экран <strong>в</strong>ы<strong>в</strong>одится сразу несколько окон. Окна изменяются <strong>в</strong><br />
размерах и перемещаются по экрану с помощью мыши и упорядочи<strong>в</strong>аются командами меню<br />
Окно. Лишние окна могут быть <strong>в</strong>ременно скрыты без <strong>в</strong>ыгрузки из памяти с помощью меню<br />
Окно .Скрыть и <strong>в</strong>последст<strong>в</strong>ии <strong>в</strong>осстано<strong>в</strong>лены на экране из меню Окно .Отобразить.<br />
Закры<strong>в</strong>аются окна посредст<strong>в</strong>ом <strong>в</strong>ыбора меню Файл .Закрыть или кнопкой Закрыть.<br />
<strong>Access</strong> эффекти<strong>в</strong>но работает <strong>в</strong> сети, осущест<strong>в</strong>ляя а<strong>в</strong>томатическую блокиро<strong>в</strong>ку<br />
изменяемых записей. Поэтому, если база данных устано<strong>в</strong>лена <strong>в</strong> сети, <strong>в</strong>се пользо<strong>в</strong>атели могут<br />
одно<strong>в</strong>ременно <strong>в</strong><strong>в</strong>одить и пра<strong>в</strong>ить ее записи. <strong>Access</strong> сохраняет <strong>в</strong>несенные изменения <strong>в</strong>сякий<br />
раз, когда происходит переход к но<strong>в</strong>ой записи или нажимаются кла<strong>в</strong>иши .<br />
Можно разрешить одно<strong>в</strong>ременное изменение одной записи несколькими пользо<strong>в</strong>ателями<br />
через группу Блокиро<strong>в</strong>ка по умолчанию на <strong>в</strong>кладке Другие меню Сер<strong>в</strong>ис .Параметры.<br />
Чтобы открыть <strong>в</strong> сети базу данных только для чтения, <strong>в</strong> окне диалога, упра<strong>в</strong>ляющем<br />
открытием базы данных, нажимается кнопка и <strong>в</strong>ыбирается Открыть для чтения.<br />
Флажок Монопольно <strong>в</strong> этом же окне запрещает другим пользо<strong>в</strong>ателям доступ к базе данных,<br />
например, пока изменяется ее структура.<br />
Базы данных <strong>Access</strong> можно использо<strong>в</strong>ать <strong>в</strong> качест<strong>в</strong>е источника данных при создании<br />
документо<strong>в</strong> Word, серийных писем и электронных книг Excel. Для этого предназначено<br />
меню Сер<strong>в</strong>ис .С<strong>в</strong>язи с Office и кнопка на панели инструменто<strong>в</strong> окна базы данных.<br />
Таблицы<br />
Чтение и пра<strong>в</strong>ка таблиц<br />
Таблицы я<strong>в</strong>ляются осно<strong>в</strong>ными объектами базы данных. При наличии открытой базы<br />
данных любая ее таблица откры<strong>в</strong>ается с <strong>в</strong>кладки Таблицы, доступной через меню Вид<br />
.Объекты базы данных .Таблицы. Каждая отдельная запись таблицы, соот<strong>в</strong>етст<strong>в</strong>ующая
15<br />
определенной сущности предметной области, описы<strong>в</strong>ается атрибутами данных, разнесенных<br />
по имено<strong>в</strong>анным полям. Для но<strong>в</strong>ых записей <strong>в</strong> конце таблицы оста<strong>в</strong>лено с<strong>в</strong>ободное место, <strong>в</strong><br />
которое можно перейти щелчком мыши, из меню Записи .В<strong>в</strong>од данных, Пра<strong>в</strong>ка .Перейти<br />
или <strong>в</strong>ыбором кнопки на панели инструменто<strong>в</strong>. Если таблица открыта для транзакций,<br />
пользо<strong>в</strong>атель имеет <strong>в</strong>озможность пра<strong>в</strong>ки записей, их <strong>в</strong>ста<strong>в</strong>ки и удаления. При этом он<br />
работает с каждым атрибутом данных <strong>в</strong> пред<strong>в</strong>арительно <strong>в</strong>ыделенной ему ячейке таблицы как<br />
<strong>в</strong> обычном редакторе текста. Если <strong>в</strong> ячейке не х<strong>в</strong>атает места, ее можно раскрыть<br />
кла<strong>в</strong>иатурной комбинацией . Ряд операций, с<strong>в</strong>язанных с заполнением таблицы, <strong>в</strong><br />
<strong>Access</strong> а<strong>в</strong>томатизиро<strong>в</strong>ан. Например, для копиро<strong>в</strong>ания значения предыдущей записи<br />
достаточно нажать
16<br />
фильтре после <strong>в</strong><strong>в</strong>ода критерия <strong>в</strong>ыбирается меню Фильтр .Применить фильтр или<br />
нажимается кнопка . Пункт Исключить <strong>в</strong>ыделенное контекстного меню исключает из<br />
фильтра запись с <strong>в</strong>ыделенными данными. Чтобы <strong>в</strong>но<strong>в</strong>ь отобразить <strong>в</strong>се записи, используется<br />
меню Записи .Удалить фильтр или отжимается кнопка фильтра.<br />
Перемещение и копиро<strong>в</strong>ание записей и атрибуто<strong>в</strong> данных <strong>в</strong>ыполняется после <strong>в</strong>ыделения<br />
источника перемещения (копиро<strong>в</strong>ания) с при<strong>в</strong>лечением меню Пра<strong>в</strong>ка .Вырезать или<br />
Пра<strong>в</strong>ка .Копиро<strong>в</strong>ать, а затем Пра<strong>в</strong>ка .Вста<strong>в</strong>ить или под упра<strong>в</strong>лением соот<strong>в</strong>етст<strong>в</strong>ующих<br />
кнопок<br />
на панели инструменто<strong>в</strong>. Чтобы заменить содержимое отдельных записей<br />
данными из буфера обмена, они <strong>в</strong>ыделяются перед операцией <strong>в</strong>ста<strong>в</strong>ки. Область <strong>в</strong>ыделения<br />
записей предста<strong>в</strong>лена кнопками сле<strong>в</strong>а от пер<strong>в</strong>ой записи.<br />
Нажатие при <strong>в</strong>ыделенной записи при<strong>в</strong>одит к <strong>в</strong>ыделению пер<strong>в</strong>ого поля.<br />
Группа записей <strong>в</strong>ыделяется перетаски<strong>в</strong>анием указателя-стрелки по полю <strong>в</strong>ыделения, а<br />
диапазон ячеек — перетаски<strong>в</strong>анием указателя-креста по его диагонали. Вместо мыши можно<br />
пользо<strong>в</strong>аться кла<strong>в</strong>ишами-стрелками при нажатой кла<strong>в</strong>ише . Если <strong>в</strong>ыделено меньше<br />
записей, чем хранится <strong>в</strong> буфере, то часть буфера при <strong>в</strong>ста<strong>в</strong>ке остается неиспользо<strong>в</strong>анной, а<br />
если больше, то часть <strong>в</strong>ыделенных записей не меняется. В случаях, когда <strong>в</strong>ста<strong>в</strong>ка из буфера<br />
обмена за<strong>в</strong>ершается неудачно, <strong>Access</strong> а<strong>в</strong>томатически создает таблицу Ошибки <strong>в</strong>ста<strong>в</strong>ки, <strong>в</strong><br />
которую помещает данные из буфера. Для удаления <strong>в</strong>ыделенных записей служат меню<br />
Пра<strong>в</strong>ка .Удалить, Пра<strong>в</strong>ка .Удалить запись, кла<strong>в</strong>иши и , а также кнопка<br />
. Вста<strong>в</strong>ка но<strong>в</strong>ых записей осущест<strong>в</strong>ляется из меню Вста<strong>в</strong>ка .Запись и кла<strong>в</strong>ишами . Отмена последнего из сделанных изменений <strong>в</strong> ряде случае<strong>в</strong> <strong>в</strong>озможна из меню Пра<strong>в</strong>ка<br />
.Отменить, кнопкой или кла<strong>в</strong>иатурными комбинациями , .<br />
Таблица обладает фиксиро<strong>в</strong>анным макетом, с которым можно ознакомиться из меню Вид<br />
.Конструктор или щелчком по кнопке . Макет характеризуется набором с<strong>в</strong>ойст<strong>в</strong>:<br />
описанием, усло<strong>в</strong>иями на значения, характером сообщений об ошибках, объемом (фильтром)<br />
и порядком предста<strong>в</strong>ления (сортиро<strong>в</strong>кой) информации. Кроме того, каждое поле обладает<br />
инди<strong>в</strong>идуальным набором с<strong>в</strong>ойст<strong>в</strong>. Пер<strong>в</strong>ые три из них — имя поля, тип данных и описание —<br />
указы<strong>в</strong>аются <strong>в</strong> осно<strong>в</strong>ном бланке Конструктора таблицы. С<strong>в</strong>ойст<strong>в</strong>а доступны через меню Вид<br />
.С<strong>в</strong>ойст<strong>в</strong>а или одноименную кнопку.<br />
Макет раскры<strong>в</strong>ает порядок следо<strong>в</strong>ания полей и типы их данных, предста<strong>в</strong>ляемые на<br />
<strong>в</strong>кладке Общие. С <strong>в</strong>кладки Подстано<strong>в</strong>ка можно детализиро<strong>в</strong>ать особенности предста<strong>в</strong>ления<br />
поля <strong>в</strong> таблице. По тому, как данные отображают предметную область, их относят к<br />
различным типам. Каждый тип данных <strong>Access</strong> ограничи<strong>в</strong>ает множест<strong>в</strong>о значений, которые<br />
может принимать элемент <strong>в</strong> поле.<br />
Тексто<strong>в</strong>ый тип хранит бук<strong>в</strong>ы, числа, специальные сим<strong>в</strong>олы. Конкретная длина текста <strong>в</strong><br />
поле может быть задана <strong>в</strong> пределах от 1 до 255 сим<strong>в</strong>оло<strong>в</strong>. Тексто<strong>в</strong>ые поля формируются<br />
а<strong>в</strong>томатически <strong>в</strong>сякий раз, когда проектиро<strong>в</strong>щик таблицы не задает никакого типа. Текст не<br />
подлежит математической обработке. Число<strong>в</strong>ой тип хранит числа, имеющие до 15 значащих<br />
цифр (от 1 до 16 байт), <strong>в</strong> <strong>в</strong>иде, подходящем для про<strong>в</strong>едения <strong>в</strong>ычислений. Различают число<strong>в</strong>ые<br />
поля несколько размеро<strong>в</strong>: байт, целое и длинное целое, простое и длинное с пла<strong>в</strong>ающей<br />
точкой (<strong>в</strong>ещест<strong>в</strong>енные). Денежный тип — это те же числа (4 байта), но изображаемые на<br />
экране со знаком <strong>в</strong>алюты и с <strong>в</strong>ыделением десятичных позиций, сотен, тысяч, миллионо<strong>в</strong>. Тип<br />
Счетчик <strong>в</strong>едет а<strong>в</strong>томатический учет записей от 1 до 2 млрд. Значение <strong>в</strong> поле этого типа<br />
изменяется только а<strong>в</strong>томатически. При доба<strong>в</strong>лении записи <strong>в</strong> таблицу оно у<strong>в</strong>еличи<strong>в</strong>ается на<br />
единицу при последо<strong>в</strong>ательной организации, или случайным образом при упра<strong>в</strong>лении от<br />
датчика случайных чисел, а при удалении записи не изменяется. Логический тип определяет<br />
усло<strong>в</strong>ия истины (-1, Да, True) и лжи (0, Нет, False). Тип Дата/<strong>в</strong>ремя оперирует с любой<br />
допустимой датой от 100 до 9999 г., пра<strong>в</strong>ильно обрабаты<strong>в</strong>ая <strong>в</strong>исокосные годы и столетия.
17<br />
Поле МЕМО имеет <strong>в</strong>озможность хранить до 64000 сим<strong>в</strong>оло<strong>в</strong> информации. Начальная часть<br />
содержания такого поля предста<strong>в</strong>лена <strong>в</strong> таблице, остальное может считы<strong>в</strong>аться по запросу<br />
пользо<strong>в</strong>ателя при нажатии кла<strong>в</strong>иатурной комбинации . Поле объекта OLE<br />
поддержи<strong>в</strong>ает с<strong>в</strong>язь с объектами из различных приложений и ограничи<strong>в</strong>ается <strong>в</strong> размере лишь<br />
фактическими ресурсами памяти компьютера. Объектами OLE могут быть файлы растро<strong>в</strong>ой<br />
графики (.bmp, .dib, .tif) графических процессоро<strong>в</strong> Paint, Adobe, <strong>в</strong>екторной графики (.wmf) от<br />
MS Draw, Corel Draw, Power Point, форматиро<strong>в</strong>анные тексты (.doc, .rtf) Word,<br />
неформатиро<strong>в</strong>анные упако<strong>в</strong>анные тексты (.txt), таблицы (.xls, .dib) Excel, з<strong>в</strong>укозаписи (.wav),<br />
MIDI-файлы (.mid) и <strong>в</strong>идеозаписи (.avi). Тип Гиперссылка предста<strong>в</strong>ляет строку адреса,<br />
состоящую максимум из трех частей: текста, пути к файлу (<strong>в</strong> формате пути UNC) или<br />
странице (адрес URL) и дополнительного адреса смещения <strong>в</strong>нутри файла или страницы.<br />
Чтобы <strong>в</strong>ста<strong>в</strong>ить адрес гиперссылки <strong>в</strong> поле или <strong>в</strong> элемент упра<strong>в</strong>ления, <strong>в</strong>ыбирается меню меню<br />
Вста<strong>в</strong>ка .Гиперссылка. Об отсутст<strong>в</strong>ии данных <strong>в</strong> поле с<strong>в</strong>идетельст<strong>в</strong>ует специальный тип<br />
Null. Типы Счетчик со случайными значениями, поле МЕМО, поле объекта OLE и<br />
Гиперссылка не подходят для ключе<strong>в</strong>ых полей.<br />
Структуру базы данных можно проанализиро<strong>в</strong>ать с помощью сло<strong>в</strong>аря, созда<strong>в</strong>аемого <strong>в</strong><br />
<strong>Access</strong> из меню Сер<strong>в</strong>ис .Анализ .Архи<strong>в</strong>ариус.<br />
Ознакоми<strong>в</strong>шись со структурой, удобно <strong>в</strong>ернуться <strong>в</strong> таблицу через меню Вид .Таблица<br />
или щелчком по кнопке .<br />
Создание таблиц<br />
Создание любой но<strong>в</strong>ой таблицы начинается с задания ее макета. Для этого через меню<br />
Окно или кнопкой <strong>в</strong>ыполняется переход <strong>в</strong> окно базы данных (если оно не было<br />
пред<strong>в</strong>арительно <strong>в</strong>ыделено), на <strong>в</strong>кладке Таблицы нажимается кнопка Создать и <strong>в</strong>ыбирается<br />
Конструктор. В Конструкторе таблиц задается порядок следо<strong>в</strong>ания полей, им даются<br />
уникальные имена длиной до 64 сим<strong>в</strong>оло<strong>в</strong>, устана<strong>в</strong>ли<strong>в</strong>аются типы данных и с<strong>в</strong>ойст<strong>в</strong>а полей.<br />
Простые таблицы можно заполнять и без Конструктора <strong>в</strong> Режиме таблицы, предоста<strong>в</strong>и<strong>в</strong><br />
«с<strong>в</strong>ободу» <strong>Access</strong> <strong>в</strong> имено<strong>в</strong>ании полей и назначении типо<strong>в</strong> их данных. С этой же целью может<br />
быть использо<strong>в</strong>ан Мастер таблиц, который преобразует один из множест<strong>в</strong>а <strong>в</strong>строенных<br />
шаблоно<strong>в</strong> <strong>в</strong> подходящую таблицу. Мастер Импорт таблиц используется для преобразо<strong>в</strong>ания<br />
<strong>в</strong> формат <strong>Access</strong> ранее созданных таблиц DBase, FoxPro, структуриро<strong>в</strong>анных тексто<strong>в</strong> и<br />
прочих файло<strong>в</strong>. Мастер С<strong>в</strong>язь с таблицами соединяет с базой данных доступные таблицы<br />
различных формато<strong>в</strong>, не <strong>в</strong>ключая их <strong>в</strong> базу. Такое присоединение целесообразно, когда<br />
требуемый файл имеет большие размеры, когда он часто обно<strong>в</strong>ляется или планируется работа<br />
<strong>в</strong> сети. Аналогичные операции могут быть <strong>в</strong>ыполнены и без участия программ-мастеро<strong>в</strong>.<br />
Структура базы данных будет сформиро<strong>в</strong>ана после определения макето<strong>в</strong> <strong>в</strong>сех<br />
необходимых таблиц, задания ключей, типо<strong>в</strong> и с<strong>в</strong>ойст<strong>в</strong> полей и устано<strong>в</strong>ки с<strong>в</strong>язей между<br />
ними.<br />
Ключе<strong>в</strong>ые поля назначаются из меню Пра<strong>в</strong>ка .Ключе<strong>в</strong>ое поле или кнопкой , причем<br />
<strong>в</strong> соста<strong>в</strong>ных ключах объединяются поля произ<strong>в</strong>ольных типо<strong>в</strong>. Таблица а<strong>в</strong>томатически<br />
индексируется по ключе<strong>в</strong>ым полям. Индексом я<strong>в</strong>ляется специальная, <strong>в</strong> <strong>Access</strong> обычно<br />
недоступная пользо<strong>в</strong>ателю таблица, <strong>в</strong> которой записи физически упорядочены по заданному<br />
полю, неза<strong>в</strong>исимо от порядка, <strong>в</strong> котором заполнялась исходная таблица. «При<strong>в</strong>язы<strong>в</strong>ая»<br />
данные индексиро<strong>в</strong>анных полей к их расположению на диске, индексы ускоряют доступ к<br />
записям и обеспечи<strong>в</strong>ают их уникальность. Кроме ключе<strong>в</strong>ых полей, <strong>Access</strong> поз<strong>в</strong>оляет<br />
созда<strong>в</strong>ать дополнительные индексы по другим полям. До 32 таких индексо<strong>в</strong>, содержащих от<br />
одного до десяти полей, устана<strong>в</strong>ли<strong>в</strong>аются из меню Вид .Индексы или кнопкой .<br />
С<strong>в</strong>ойст<strong>в</strong>а, определяющие <strong>в</strong>ид и по<strong>в</strong>едение полей, также задаются <strong>в</strong> Конструкторе<br />
таблиц. Щелчок по имени поля откры<strong>в</strong>ает бланк его с<strong>в</strong>ойст<strong>в</strong> с комментариями, которые
18<br />
можно прочитать и изменить. В частности, некоторые таблицы содержат поля, <strong>в</strong> которые<br />
практически <strong>в</strong>сегда <strong>в</strong><strong>в</strong>одятся одни и те же значения. С этой целью полезно устано<strong>в</strong>ить<br />
конкретное значение с<strong>в</strong>ойст<strong>в</strong>а Значение по умолчанию. Так, <strong>в</strong> поля даты часто <strong>в</strong><strong>в</strong>одится<br />
текущая дата, для чего можно устано<strong>в</strong>ить Значение по умолчанию =Date().<br />
В большинст<strong>в</strong>е случае<strong>в</strong> значения, <strong>в</strong><strong>в</strong>одимые <strong>в</strong> поля, должны удо<strong>в</strong>лет<strong>в</strong>орять определенным<br />
усло<strong>в</strong>иям. Для этого следует задать соот<strong>в</strong>етст<strong>в</strong>ующее <strong>в</strong>ыражение <strong>в</strong> строке Усло<strong>в</strong>ие на<br />
значение. В общем случае <strong>в</strong>ыражение состоит из операндо<strong>в</strong> и с<strong>в</strong>язы<strong>в</strong>ающих их операторо<strong>в</strong>:<br />
арифметических (+, -, *, /, \, Mod, ^), сра<strong>в</strong>нения (=, ), логических (And, Or, Not,<br />
Xor, Eqv), а также слияния (&), разделения объекто<strong>в</strong> (!) и с<strong>в</strong>ойст<strong>в</strong> (.), пустого поля (Is),<br />
подобия (Like), списка (In) и диапазона (Between). К операндам относятся <strong>в</strong>строенные,<br />
число<strong>в</strong>ые, тексто<strong>в</strong>ые и <strong>в</strong>ременные константы (например, True, False, Null; 1,23E02;<br />
«строка»; #10:20:30#, #1.ян<strong>в</strong>.01#), имена объекто<strong>в</strong> (например, Клиенты, [Домашний адрес]).<br />
Большую группу операндо<strong>в</strong> <strong>в</strong>оз<strong>в</strong>ращают функции — даты и <strong>в</strong>ремени (Date, Now, Time,..),<br />
обработки текста (Lcase, Left, Len, Mid, Right, Str, Ucase, Val,..), преобразо<strong>в</strong>ания данных (CStr,<br />
Cvar,..), математические (Abs, Fix, Sgn, Sin, Sqr,..) и прочие (Choose, Iif, IsNull, Switch,..).<br />
Примеры усло<strong>в</strong>ий отбора: > 0 And < 1000, Not(«Сша» Or «Канада»), Like «[N-Z]*», Like S*<br />
Or Like V*, Like «*рим*», Like «*.*.98», In(5;7;12), Between 500 And 1000, Is Null. К числу<br />
шаблоно<strong>в</strong>, применяемых <strong>в</strong> <strong>в</strong>ыражениях, относятся * — произ<strong>в</strong>ольное число любых сим<strong>в</strong>оло<strong>в</strong><br />
и — один любой сим<strong>в</strong>ол. Выражения, относящиеся не к одному полю, а ко <strong>в</strong>сей таблице,<br />
заносятся <strong>в</strong> сторку Усло<strong>в</strong>ие на значение таблицы под кнопкой С<strong>в</strong>ойст<strong>в</strong>а таблицы ,<br />
например, Year([Дата <strong>в</strong>ыдачи])=1995. Усло<strong>в</strong>ия удобно формиро<strong>в</strong>ать с помощью<br />
Построителя <strong>в</strong>ыражений, откры<strong>в</strong>аемого кнопкой <strong>в</strong> поле Усло<strong>в</strong>ие на значение или<br />
на панели инструменто<strong>в</strong>. Если пользо<strong>в</strong>атель <strong>в</strong><strong>в</strong>едет недопустимое значение, <strong>Access</strong><br />
предложит его изменить. Чтобы обязать пользо<strong>в</strong>ателя заполнять поле, <strong>в</strong>ыбирается Да для<br />
с<strong>в</strong>ойст<strong>в</strong>а Обязательное поле. Формат поля определяет до четырех шаблоно<strong>в</strong> <strong>в</strong>ы<strong>в</strong>ода, а<br />
Маска <strong>в</strong><strong>в</strong>ода ускоряет <strong>в</strong><strong>в</strong>од по<strong>в</strong>торяющихся бук<strong>в</strong>осочетаний <strong>в</strong> поле. Те и другие при<strong>в</strong>едены <strong>в</strong><br />
таблице:<br />
Шаблоны <strong>в</strong>ы<strong>в</strong>ода<br />
Маски <strong>в</strong><strong>в</strong>ода<br />
0 Цифра или незначащий нуль 0 Обязательная цифра<br />
# Цифра или ничего 9 Необязательная цифра, пробел<br />
$# Число со знаком доллара # То же и знаки +, -<br />
#,# Десятичный разделитель L Обязательная бук<strong>в</strong>а<br />
#% Умножение на 100 и сим<strong>в</strong>ол % Необязательная бук<strong>в</strong>а<br />
# # Разделитель групп разрядо<strong>в</strong> А Обязательная бук<strong>в</strong>а, цифра<br />
#Е+, #E- Экспоненциальная нотация а Необязательная бук<strong>в</strong>а, цифра<br />
. Разделитель даты & Обязательный сим<strong>в</strong>ол<br />
d,m,yyyy День, месяц, год С Необязательный сим<strong>в</strong>ол<br />
: Разделитель <strong>в</strong>ремени ! Спра<strong>в</strong>а нале<strong>в</strong>о<br />
h,n,s Часы, минуты, секунды \ Постоянный сим<strong>в</strong>ол<br />
@ Позиция бук<strong>в</strong>енного сим<strong>в</strong>ола < Преобразо<strong>в</strong>ание <strong>в</strong> строко<strong>в</strong>ые<br />
& Необязательный сим<strong>в</strong>ол > Преобразо<strong>в</strong>ание <strong>в</strong> прописные<br />
> < Строчные / прописные бук<strong>в</strong>ы . Десятичный разделитель<br />
! Ле<strong>в</strong>ое <strong>в</strong>ыра<strong>в</strong>ни<strong>в</strong>ание текста «сим<strong>в</strong>ол» Любой сим<strong>в</strong>ол<br />
В частности, <strong>в</strong> Формате поля m, d месяц или день <strong>в</strong>ы<strong>в</strong>одятся одной цифрой, mm, dd, yy —<br />
д<strong>в</strong>умя цифрами, mmm, ddd — тремя пер<strong>в</strong>ыми бук<strong>в</strong>ами, а mmmm, dddd, yyyy — сло<strong>в</strong>ом. Формат<br />
<strong>в</strong>ремени может <strong>в</strong>ыглядеть как hh:nn «часо<strong>в</strong>» или h:nn A/P. Телефонный номер удобно<br />
предста<strong>в</strong>лять <strong>в</strong> формате (@@@)@@@-@@-@@ или «(812)»#. Для <strong>в</strong><strong>в</strong>ода имен подходит<br />
маска >L
19<br />
ограничить число цифр, например \(000\)000\-00\-00, а для <strong>в</strong>алюты подходит $### ###,00 или<br />
###р.<br />
Поля перемещаются с места на место перетаски<strong>в</strong>анием или через буфер обмена. Более<br />
того, через буфер обмена часть полей может быть заимст<strong>в</strong>о<strong>в</strong>ана из других таблиц и баз<br />
данных. Доба<strong>в</strong>лением но<strong>в</strong>ых полей <strong>в</strong> таблицу упра<strong>в</strong>ляет меню Вста<strong>в</strong>ка .Строки и кнопка<br />
, а удалением — Пра<strong>в</strong>ка .Удалить строки и кнопка .<br />
После задания последо<strong>в</strong>ательности, типо<strong>в</strong> и с<strong>в</strong>ойст<strong>в</strong> полей таблица сохраняется из меню<br />
Файл .Сохранить, Файл .Сохранить как/экспорт, кнопкой или кла<strong>в</strong>ишей .<br />
За<strong>в</strong>ерши<strong>в</strong> формиро<strong>в</strong>ание макета, приступают к заполнению записей, перейдя <strong>в</strong> таблицу<br />
через меню Вид .Режим таблицы или щелчком по кнопке . Когда записи будут<br />
заполнены, с помощью Мастера анализа таблиц, <strong>в</strong>ызы<strong>в</strong>аемого из меню Сер<strong>в</strong>ис .Анализ<br />
.Таблица или кнопкой , можно <strong>в</strong>ыполнить про<strong>в</strong>ерку качест<strong>в</strong>а полученных таблиц.<br />
Мастер анализа таблиц демонстрирует <strong>в</strong>се по<strong>в</strong>торяющиеся и неполные с<strong>в</strong>едения,<br />
обнаруженные <strong>в</strong> полях, и <strong>в</strong> ряде случае<strong>в</strong> помогает перераспределить информацию между<br />
отдельными таблицами. Этой же программой удобно пользо<strong>в</strong>аться для преобразо<strong>в</strong>ания<br />
обычных тексто<strong>в</strong>ых файло<strong>в</strong> или файло<strong>в</strong> электронных таблиц.<br />
С<strong>в</strong>язы<strong>в</strong>ание таблиц<br />
Созда<strong>в</strong>ая структуру базы данных, таблицы с<strong>в</strong>язы<strong>в</strong>ают между собой для контроля за<br />
<strong>в</strong><strong>в</strong>одом и обно<strong>в</strong>лением данных, для обеспечения целостности и однозначности информации <strong>в</strong><br />
полях. С<strong>в</strong>язь между таблицами определяет характер отношений со<strong>в</strong>падающих значений<br />
полей. С<strong>в</strong>язы<strong>в</strong>ание обычно <strong>в</strong>ыполняют после задания макето<strong>в</strong> таблиц, но до их заполнения.<br />
Пред<strong>в</strong>арительно закрытые таблицы с<strong>в</strong>язы<strong>в</strong>ают через меню Сер<strong>в</strong>ис .Схема данных или<br />
кнопкой . В окне Схема данных кнопкой откры<strong>в</strong>ается список и кнопками Доба<strong>в</strong>ить<br />
и Закрыть <strong>в</strong> макет схемы данных помещаются нужные таблицы. При необходимости через<br />
меню Пра<strong>в</strong>ка .Удалить с макета удаляются <strong>в</strong>ыделенные лишние столбцы, а кнопкой<br />
макет очищается. Поля таблиц с<strong>в</strong>язы<strong>в</strong>аются перетаски<strong>в</strong>анием между ними указателя мыши<br />
или заполнением специальных полей <strong>в</strong> окне диалога С<strong>в</strong>язи. В момент с<strong>в</strong>язы<strong>в</strong>ания или по<br />
мере необходимости уточняются параметры соединения <strong>в</strong> от<strong>в</strong>ет на д<strong>в</strong>ойной щелчок по линии<br />
с<strong>в</strong>язи или одинарный щелчок с последующим <strong>в</strong>ыбором меню С<strong>в</strong>язи .Изменить с<strong>в</strong>язь.<br />
Кнопка Объединение окна диалога С<strong>в</strong>язи поз<strong>в</strong>оляет <strong>в</strong>ыбрать переключатель, с<strong>в</strong>язы<strong>в</strong>ающий<br />
гла<strong>в</strong>ную и подчиненную таблицы различными отношениями. Флажок Обеспечение<br />
ссылочной целостности «заста<strong>в</strong>ляет» <strong>Access</strong> следить за тем, чтобы <strong>в</strong> полях не поя<strong>в</strong>лялось<br />
нес<strong>в</strong>язанных записей. Этот флажок <strong>в</strong>ыста<strong>в</strong>ляют тогда, когда гла<strong>в</strong>ная таблица заполнена и<br />
предстоит заполнение с<strong>в</strong>язанной таблицы. Флажок Каскадное обно<strong>в</strong>ление с<strong>в</strong>язанных полей<br />
<strong>в</strong>ызы<strong>в</strong>ает а<strong>в</strong>томатическое обно<strong>в</strong>ление с<strong>в</strong>язанной информации при <strong>в</strong>несении изменений <strong>в</strong> поле<br />
пер<strong>в</strong>ичного ключа гла<strong>в</strong>ной таблицы. Этот флажок устана<strong>в</strong>ли<strong>в</strong>ают перед изменением<br />
содержания гла<strong>в</strong>ной таблицы при наличии заполненных с<strong>в</strong>язанных таблиц. Флажок<br />
Каскадное удаление с<strong>в</strong>язанных записей разрешает удаление с<strong>в</strong>язанной информации<br />
одно<strong>в</strong>ременно с ее удалением <strong>в</strong> гла<strong>в</strong>ной таблице.<br />
Другой способ организации с<strong>в</strong>язанных таблиц осно<strong>в</strong>ан на программе Мастер<br />
подстано<strong>в</strong>ок. Для этого на <strong>в</strong>кладке Таблицы <strong>в</strong> окне базы данных <strong>в</strong>ыделяется таблица, <strong>в</strong><br />
которую надо доба<strong>в</strong>ить но<strong>в</strong>ое поле, присутст<strong>в</strong>ующее <strong>в</strong> другой таблице, и нажимается кнопка<br />
Открыть или Конструктор. Выделяется поле, перед которым следует доба<strong>в</strong>ить но<strong>в</strong>ое поле,<br />
<strong>в</strong>ыбирается меню Вста<strong>в</strong>ка .Столбец подстано<strong>в</strong>ок или Вста<strong>в</strong>ка .Поле подстано<strong>в</strong>ок,<br />
указы<strong>в</strong>ается таблица, содержащая нужное поле, а затем и само поле. Если требуемые поля<br />
отсутст<strong>в</strong>уют <strong>в</strong> Мастере подстано<strong>в</strong>ок, их имена <strong>в</strong><strong>в</strong>одятся <strong>в</strong> пустые строки <strong>в</strong> <strong>в</strong>ерхней части
20<br />
окна и задаются типы данных. После доба<strong>в</strong>ления полей <strong>Access</strong> устана<strong>в</strong>ли<strong>в</strong>ает с<strong>в</strong>язь между<br />
таблицами, отображаемую <strong>в</strong> окне Схема данных.<br />
Устано<strong>в</strong>ленные с<strong>в</strong>язи при необходимости удаляются из окна Схема данных кла<strong>в</strong>ишей<br />
или из меню Пра<strong>в</strong>ка .Удалить. Если предполагается изменение типа данных<br />
ключе<strong>в</strong>ого поля с<strong>в</strong>язанных таблиц, надо пред<strong>в</strong>арительно удалить с<strong>в</strong>язи и <strong>в</strong>осстано<strong>в</strong>ить их<br />
только после <strong>в</strong>несения изменений.<br />
Пример нормализо<strong>в</strong>анной базы данных Транспортный узел, <strong>в</strong> соста<strong>в</strong> которой <strong>в</strong>ходят пять<br />
таблиц:<br />
Таблица То<strong>в</strong>ары: ключе<strong>в</strong>ое поле Номер партии (тип — счетчик); неключе<strong>в</strong>ые поля<br />
Наз<strong>в</strong>ание (текст); Отпра<strong>в</strong>итель (текст); Получатель (текст); Цена (денежное);<br />
Характеристика (мемо).<br />
Таблица Контроль: ключе<strong>в</strong>ое поле Номер партии (длинное целое), я<strong>в</strong>ляющееся <strong>в</strong>нешним<br />
ключом к одноименному полю таблицы То<strong>в</strong>ары при с<strong>в</strong>язи 1:1; неключе<strong>в</strong>ые поля количест<strong>в</strong>о<br />
(целое); контроль (логическое).<br />
Таблица Склады: соста<strong>в</strong>ной ключ из полей Номер партии (длинное целое) и Номер<br />
склада (байт), причем поле Номер партии я<strong>в</strong>ляется <strong>в</strong>нешним ключом для с<strong>в</strong>язи с таким же<br />
полем таблицы Контроль <strong>в</strong> отношении 1:1; неключе<strong>в</strong>ое поле Дата поступления (дата).<br />
Таблица Организации: ключе<strong>в</strong>ое поле Организация (текст) с<strong>в</strong>язано с <strong>в</strong>нешними ключами<br />
Отпра<strong>в</strong>итель и Получатель таблицы То<strong>в</strong>ары <strong>в</strong> отношении 1:N; неключе<strong>в</strong>ые поля Страна<br />
(текст), Рек<strong>в</strong>изиты (текст).<br />
Таблица Страны: ключе<strong>в</strong>ое поле Страна (текст) с<strong>в</strong>язано с <strong>в</strong>нешним ключом такого же<br />
поля предыдущей таблицы <strong>в</strong> отношении 1:N; неключе<strong>в</strong>ые поля Валюта (текст), Курс<br />
(<strong>в</strong>ещест<strong>в</strong>енное).<br />
Запросы<br />
Язык запросо<strong>в</strong> QBE<br />
Любой язык запросо<strong>в</strong> предоста<strong>в</strong>ляет пользо<strong>в</strong>ателю набор пра<strong>в</strong>ил и инструмент для<br />
формиро<strong>в</strong>ания <strong>в</strong>опроса с информацией о желаемом результате. В от<strong>в</strong>ет на запрос СУБД<br />
а<strong>в</strong>томатически <strong>в</strong>ыдает результат <strong>в</strong> <strong>в</strong>иде экранной (<strong>в</strong>иртуальной) таблицы, отражающей<br />
итого<strong>в</strong>ый набор данных (RecordSet) <strong>в</strong> определенном макете (QueryDef), на базе которого<br />
<strong>в</strong>последст<strong>в</strong>ии можно построить таблицу, отчет или но<strong>в</strong>ый запрос. К числу наиболее<br />
популярных <strong>в</strong> практике СУБД относятся непроцедурные <strong>в</strong>изуальные языки запросо<strong>в</strong> на<br />
примере QBE.<br />
При наличии открытой базы данных любой ее запрос откры<strong>в</strong>ается с <strong>в</strong>кладки Запросы,<br />
доступной через меню Вид .Объекты базы данных .Запросы. После <strong>в</strong>ыделения запроса и<br />
нажатия кнопки Открыть пользо<strong>в</strong>ателю демонстрируется результат <strong>в</strong> <strong>в</strong>иде преобразо<strong>в</strong>анной<br />
соот<strong>в</strong>етст<strong>в</strong>ующим образом таблицы или группы таблиц. Открытие запроса <strong>в</strong>едет к открытию<br />
<strong>в</strong>сех таблиц, <strong>в</strong>ключенных <strong>в</strong> запрос, без <strong>в</strong>ы<strong>в</strong>ода их на экран. Все изменения данных,<br />
про<strong>в</strong>одимые <strong>в</strong> ходе <strong>в</strong>ыполнения запроса, отражаются <strong>в</strong> этих таблицах.<br />
Если <strong>в</strong> базе данных не сохранены ранее сделанные запросы или сущест<strong>в</strong>ующие запросы<br />
не удо<strong>в</strong>лет<strong>в</strong>оряют пользо<strong>в</strong>ателя, можно создать но<strong>в</strong>ый запрос, <strong>в</strong>оспользо<strong>в</strong>а<strong>в</strong>шись меню<br />
Вста<strong>в</strong>ка .Запрос, кнопкой Создать <strong>в</strong> окне базы данных или кнопкой панели<br />
инструменто<strong>в</strong>, после нажатия которой <strong>в</strong>ыбирается Запрос. <strong>Access</strong> поддержи<strong>в</strong>ает четыре<br />
категории запросо<strong>в</strong>: запрос на <strong>в</strong>ыборку, запрос на изменение, запрос с аргументами<br />
(параметрами), перекрестный запрос. Для начала лучше <strong>в</strong>сего <strong>в</strong>ступить <strong>в</strong> диалог с Мастером<br />
запросо<strong>в</strong> с целью создания запроса на <strong>в</strong>ыборку. Мастер Простой запрос упра<strong>в</strong>ляет<br />
<strong>в</strong>ключением <strong>в</strong> документ необходимых полей из отдельной таблицы или различных с<strong>в</strong>язанных<br />
между собой таблиц и ранее созданных запросо<strong>в</strong> и определяет наз<strong>в</strong>ание запроса, а затем<br />
<strong>в</strong>ы<strong>в</strong>одит на экран результат <strong>в</strong> <strong>в</strong>иде таблицы. Такой результат часто требует доработки <strong>в</strong><br />
режиме Вид .Конструктор запросо<strong>в</strong>.
21<br />
Большинст<strong>в</strong>о запросо<strong>в</strong> создается Конструктором, откры<strong>в</strong>аемым из списка Запрос под<br />
кнопкой или кнопкой Создать окна базы данных. В окне Конструктора запроса<br />
поочередно указы<strong>в</strong>аются таблицы или запросы, содержащие необходимые с<strong>в</strong>едения, и<br />
нажимается кнопка Доба<strong>в</strong>ить. Затем окно закры<strong>в</strong>ается. Если <strong>в</strong>ыбранных таблиц<br />
недостаточно, их число можно у<strong>в</strong>еличить через меню Запрос .Доба<strong>в</strong>ить таблицу или<br />
кнопкой . Поля, участ<strong>в</strong>ующие <strong>в</strong> запросе, <strong>в</strong><strong>в</strong>одятся <strong>в</strong> бланк запроса либо перетаски<strong>в</strong>анием<br />
их имен, либо д<strong>в</strong>ойным щелчком по имени, либо <strong>в</strong>ыбором их из раскры<strong>в</strong>ающихся списко<strong>в</strong><br />
Поле и Имя таблицы непосредст<strong>в</strong>енно <strong>в</strong> бланке запроса. Чтобы <strong>в</strong><strong>в</strong>ести <strong>в</strong> бланк сразу <strong>в</strong>се<br />
поля, можно <strong>в</strong>ыполнить д<strong>в</strong>ойной щелчок по заголо<strong>в</strong>ку списка полей и после <strong>в</strong>ыделения <strong>в</strong>се<br />
имена переместить <strong>в</strong> бланк или <strong>в</strong>оспользо<strong>в</strong>аться пер<strong>в</strong>ой строкой списка полей, помеченной<br />
з<strong>в</strong>ездочкой. Результат <strong>в</strong>ыполнения запроса предста<strong>в</strong>ляется <strong>в</strong> <strong>в</strong>иде итого<strong>в</strong>ого набора данных<br />
после обращения к меню Запрос .Запуск, после щелчка кнопкой<br />
или после <strong>в</strong>ыбора<br />
пункта Режим таблицы под кнопкой . При сохранении запроса <strong>в</strong> файле базы данных<br />
остается его макет.<br />
Ознакоми<strong>в</strong>шись с результатом запроса, можно <strong>в</strong>ернуться <strong>в</strong> Конструктор через меню Вид<br />
.Конструктор запросо<strong>в</strong> или кнопку , чтобы уточнить с<strong>в</strong>едения или усло<strong>в</strong>ия отбора<br />
данных. В строке Усло<strong>в</strong>ие отбора обычно формулируют критерии поиска информации <strong>в</strong><br />
каждом поле <strong>в</strong> <strong>в</strong>иде <strong>в</strong>ыражений, аналогичных Усло<strong>в</strong>иям на значение <strong>в</strong> с<strong>в</strong>ойст<strong>в</strong>ах полей<br />
Флажок строки Вы<strong>в</strong>од на экран снимается, если отсутст<strong>в</strong>ует необходимость <strong>в</strong> просмотре<br />
результата по какому-нибудь полю.<br />
Итого<strong>в</strong>ыми наборами данных можно не только отображать с<strong>в</strong>язанные записи<br />
объединенных таблиц базы данных (Inner Join — «<strong>в</strong>нутреннее объединение»), но и <strong>в</strong><strong>в</strong>одить<br />
но<strong>в</strong>ые либо размыкать сущест<strong>в</strong>ующие с<strong>в</strong>язи. Подобные «<strong>в</strong>нешние объединения» поз<strong>в</strong>оляют<br />
отображать <strong>в</strong>се записи гла<strong>в</strong>ной таблицы неза<strong>в</strong>исимо от наличия со<strong>в</strong>падающих значений <strong>в</strong><br />
с<strong>в</strong>язанной таблице (Left Join) или <strong>в</strong>се записи с<strong>в</strong>язанной таблицы неза<strong>в</strong>исимо от гла<strong>в</strong>ной<br />
таблицы (Right Join). Переключение типа объединения <strong>в</strong>ыполняется через меню Вид<br />
.Параметры объединения при <strong>в</strong>ыделенной линии с<strong>в</strong>язи таблиц. Характер объединения<br />
отра<strong>в</strong>жается <strong>в</strong> бланке запроса стрелкой на линии с<strong>в</strong>язи. Кроме того, даже между полями<br />
одной таблицы <strong>в</strong> запросе можно устано<strong>в</strong>ить так назы<strong>в</strong>аемое «самообъединение»,<br />
про<strong>в</strong>еряющее эти поля на со<strong>в</strong>падение значений.<br />
С<strong>в</strong>ойст<strong>в</strong>о запроса Уникальные значения наклады<strong>в</strong>ает запрет на изменение итого<strong>в</strong>ого<br />
набора данных, а <strong>в</strong>месте со с<strong>в</strong>ойст<strong>в</strong>ом Уникальные записи исключает одинако<strong>в</strong>ые записи из<br />
итого<strong>в</strong>ого набора. Исключить по<strong>в</strong>торяющиеся записи можно, также, с помощью меню Вид<br />
.Группо<strong>в</strong>ые операции или кнопки , доба<strong>в</strong>ляющих <strong>в</strong> бланк запроса строку Группо<strong>в</strong>ая<br />
операция с аргументом Группиро<strong>в</strong>ка. К сгруппиро<strong>в</strong>анным записям могут быть применены<br />
итого<strong>в</strong>ые функции, определяющие суммарные, средние, минимальные, максимальные или<br />
иные статистические значения полей, <strong>в</strong>ыбранные из списка Группо<strong>в</strong>ая операция для <strong>в</strong>сех<br />
число<strong>в</strong>ых полей:<br />
Функция группо<strong>в</strong>ой операции<br />
Avg<br />
Count<br />
First<br />
Last<br />
Max<br />
Min<br />
StDev<br />
Значение<br />
Среднее аргументо<strong>в</strong><br />
Число непустых записей<br />
Значение поля из пер<strong>в</strong>ой записи<br />
Значение поля из последней записи<br />
Максимальный аргумент<br />
Минимальный аргумент<br />
Среднек<strong>в</strong>адратическое отклонение
Sum<br />
Var<br />
Функция группо<strong>в</strong>ой операции<br />
22<br />
Значение<br />
Сумма аргументо<strong>в</strong><br />
Дисперсия аргументо<strong>в</strong><br />
Для определения нескольких группо<strong>в</strong>ых операций над одним полем, это поле<br />
многократно доба<strong>в</strong>ляется <strong>в</strong> бланк запроса. Для упорядочения результато<strong>в</strong> запроса<br />
указы<strong>в</strong>аются необходимые с<strong>в</strong>ойст<strong>в</strong>а <strong>в</strong> строке Сортиро<strong>в</strong>ка. Сортиро<strong>в</strong>ка по нескольким полям<br />
<strong>в</strong>ыполняется <strong>в</strong> том порядке, <strong>в</strong> каком они расположены. Из меню Вид .С<strong>в</strong>ойст<strong>в</strong>а .Набор<br />
значений или кнопкой можно устано<strong>в</strong>ить число записей, <strong>в</strong>ы<strong>в</strong>одимых <strong>в</strong> итого<strong>в</strong>ый<br />
набор.<br />
Полям запроса можно прис<strong>в</strong>аи<strong>в</strong>ать имена, отличные от имен полей таблицы. Для этого <strong>в</strong><br />
строке Поле перед табличным именем пишется но<strong>в</strong>ое имя с д<strong>в</strong>оеточием.<br />
Чтобы организо<strong>в</strong>ать <strong>в</strong> запросе <strong>в</strong>ычисляемое поле, <strong>в</strong> строку Поле с<strong>в</strong>ободного столбца<br />
бланка запроса <strong>в</strong><strong>в</strong>одится <strong>в</strong>ыражение, например Но<strong>в</strong>оеИмя:[Год]*2-50, <strong>в</strong> котором <strong>в</strong><br />
прямоугольные скобки заключаются имена число<strong>в</strong>ых полей таблиц базы данных. В строке<br />
Группо<strong>в</strong>ая операция этого столбца <strong>в</strong>ыбирается Выражение. При изменении значений<br />
полей, используемых <strong>в</strong> <strong>в</strong>ыражении, значения <strong>в</strong>ычисляемых полей и группо<strong>в</strong>ых операций<br />
а<strong>в</strong>томатически обно<strong>в</strong>ляются. Если <strong>в</strong> скобки заключить константу (число, сло<strong>в</strong>о, пробел…), то<br />
она будет <strong>в</strong>писана <strong>в</strong>о <strong>в</strong>се записи <strong>в</strong>ычисляемого поля, что удобно для группиро<strong>в</strong>ки <strong>в</strong>сех без<br />
исключения записей таблицы. Аналогичную роль играет функция Count, если на базе запроса<br />
с <strong>в</strong>ычисляемым полем создать но<strong>в</strong>ый <strong>в</strong>ычисляемый запрос для подстчета итого<strong>в</strong> по <strong>в</strong>сей<br />
таблице. Функция Format(Выражение; ШаблонФормата)форматирует любое поле<br />
Результаты статистических расчето<strong>в</strong> по данным поля отображает перекрестный запрос.<br />
Эти результаты группируются по д<strong>в</strong>ум наборам данных, один из которых размещается <strong>в</strong><br />
ле<strong>в</strong>ом столбце, а другой занимает <strong>в</strong>ерхнюю строку. Имена заголо<strong>в</strong>ко<strong>в</strong> столбцо<strong>в</strong> такого<br />
запроса можно перечислить <strong>в</strong> С<strong>в</strong>ойст<strong>в</strong>е запроса Заголо<strong>в</strong>ки столбцо<strong>в</strong>.<br />
Запросы на изменение используются для доба<strong>в</strong>ления, удаления и обно<strong>в</strong>ления записей, а<br />
также для сохранения итого<strong>в</strong>ого набора данных <strong>в</strong> <strong>в</strong>иде но<strong>в</strong>ой таблицы. Разно<strong>в</strong>идностью таких<br />
запросо<strong>в</strong> я<strong>в</strong>ляются упра<strong>в</strong>ляющие запросы, поз<strong>в</strong>оляющие созда<strong>в</strong>ать, изменять и удалять<br />
таблицы, а также созда<strong>в</strong>ать и удалять индексы.<br />
Запросу на изменение должно предшест<strong>в</strong>о<strong>в</strong>ать создание таблицы результато<strong>в</strong> запроса на<br />
<strong>в</strong>ыборку. После <strong>в</strong>ыборки <strong>в</strong> режиме конструктора <strong>в</strong>ыбирается меню Запрос .Создание<br />
таблицы или <strong>в</strong>ыбирается строка Создание таблицы под кнопкой . После задания имени<br />
и нажатия кнопки ОК запрос на <strong>в</strong>ыборку преобразуется <strong>в</strong> запрос на создание таблицы и его<br />
значок помечается <strong>в</strong>осклицательным знаком. При открытии такого запроса не отображается<br />
результирующий набор записей, а создается но<strong>в</strong>ая таблица. К созданной таблице<br />
Конструктор поз<strong>в</strong>оляет обратиться с запросом на изменение: обно<strong>в</strong>ление, доба<strong>в</strong>ление или<br />
удаление записей с помощью меню Запрос .Обно<strong>в</strong>ление, Запрос .Доба<strong>в</strong>ление, Запрос<br />
.Удаление или <strong>в</strong>ыбором таких строк под кнопкой . В бланке запроса на обно<strong>в</strong>ление<br />
строка Обно<strong>в</strong>ление содержит но<strong>в</strong>ое значение обно<strong>в</strong>ляемого поля, а Усло<strong>в</strong>иями отбора<br />
ограничены обрабаты<strong>в</strong>аемые записи. В бланке запроса на удаление строка Удаление может<br />
содержать значения Из и Выражение. Пер<strong>в</strong>ое указы<strong>в</strong>ает поле обрабаты<strong>в</strong>аемой таблицы, а<br />
<strong>в</strong>торое — поле, для которого задано усло<strong>в</strong>ие удаления. Доба<strong>в</strong>ление данных <strong>в</strong> таблицы не<br />
<strong>в</strong>ызы<strong>в</strong>ает проблем при идентичности полей таблицы и итого<strong>в</strong>ого набора данных. Если же<br />
имена полей различны, <strong>в</strong> строке Доба<strong>в</strong>ление бланка запроса на доба<strong>в</strong>ление следует добиться<br />
соот<strong>в</strong>етст<strong>в</strong>ия имен. В частности, запрос на доба<strong>в</strong>ление к таблице с полем типа Счетчик<br />
таблицы с число<strong>в</strong>ым полем поз<strong>в</strong>оляет устано<strong>в</strong>ить нужный начальный номер <strong>в</strong> поле Счетчика.<br />
Чтобы сформиро<strong>в</strong>ать запрос с параметрами, <strong>в</strong> режиме Конструктор <strong>в</strong> каждое поле,<br />
которое предполагается использо<strong>в</strong>ать как параметр, следует <strong>в</strong><strong>в</strong>ести <strong>в</strong> ячейку строки Усло<strong>в</strong>ие<br />
отбора текст приглашения, заключенный <strong>в</strong> к<strong>в</strong>адратные скобки. Типы данных параметро<strong>в</strong><br />
запроса назначаются при необходимости из меню Запрос .Параметры.
23<br />
Эк<strong>в</strong>и<strong>в</strong>алентом однотабличного запроса я<strong>в</strong>ляется фильтр из меню Записи .Фильтр<br />
.Расширенный фильтр <strong>в</strong>кладки Таблицы окна базы данных. Результат фильтрации можно<br />
сохранить <strong>в</strong> форме запроса через меню Файл .Сохранить как запрос. Для по<strong>в</strong>торного его<br />
использо<strong>в</strong>ания, после <strong>в</strong>ыбора меню Записи .Фильтр .Расширенный фильтр <strong>в</strong>ыбирается<br />
Файл .Загрузить из запроса, либо <strong>в</strong>едется работа с <strong>в</strong>кладки Запросы окна базы данных.<br />
Механизм QBE поз<strong>в</strong>оляет <strong>в</strong>ыполнять <strong>в</strong>се операции реляционного исчисления:<br />
• сформиро<strong>в</strong>а<strong>в</strong> запрос на <strong>в</strong>ыборку из с<strong>в</strong>язанных таблиц с идентичными макетами и <strong>в</strong>ключи<strong>в</strong><br />
<strong>в</strong> бланк запроса <strong>в</strong>се поля одной из них, нетрудно убедиться (пра<strong>в</strong>ым щелчком по <strong>в</strong>ыделенной<br />
линии с<strong>в</strong>язи или из меню Вид .Параметры объединения), что <strong>Access</strong> предлагает <strong>в</strong>ключить <strong>в</strong><br />
результат запроса только результат пересечения;<br />
• <strong>в</strong>ычитание и дополнение таблиц с одинако<strong>в</strong>ыми макетами <strong>в</strong>ыполняет Мастер записей без<br />
подчиненных;<br />
• соединение с<strong>в</strong>язанных таблиц с разными макетами, но идентичными ключе<strong>в</strong>ыми полями<br />
организуется через <strong>в</strong>ключение <strong>в</strong> бланк запроса <strong>в</strong>сех непо<strong>в</strong>торяющихся полей;<br />
• перемножение нес<strong>в</strong>язанных таблиц <strong>в</strong>ыполняется <strong>в</strong> <strong>Access</strong> при формиро<strong>в</strong>ании запроса ко<br />
<strong>в</strong>сем непо<strong>в</strong>торяющимся полям обеих таблиц;<br />
• для деления с<strong>в</strong>язанных таблиц формируется запрос на <strong>в</strong>ыборку полей делимого, не<br />
<strong>в</strong>ходящих <strong>в</strong> делитель;<br />
• для объединения таблиц без ключей сначала <strong>в</strong>ыполняется запрос на создание копии<br />
пер<strong>в</strong>ой таблицы, затем — на ее доба<strong>в</strong>ление ко <strong>в</strong>торой таблице, и <strong>в</strong> заключение — на <strong>в</strong>ыборку<br />
из объединенной таблицы непо<strong>в</strong>торяющихся записей посредст<strong>в</strong>ом их группиро<strong>в</strong>ки.<br />
Язык запросо<strong>в</strong> SQL<br />
Диалект <strong>Access</strong> SQL предназначен исключительно для формиро<strong>в</strong>ания запросо<strong>в</strong> к<br />
реляционным базам данных, актуализации и упра<strong>в</strong>ления ими, а не для разработки или<br />
модификации таблиц. Поэтому он не поддержи<strong>в</strong>ает многих <strong>в</strong>озможностей ANSI SQL.<br />
Осно<strong>в</strong>у <strong>Access</strong> SQL соста<strong>в</strong>ляют SQL-операторы Create, Insert, Select и др. Каждый запрос<br />
SQL указы<strong>в</strong>ает, что нужно сделать с <strong>в</strong>ходными данными для генерации <strong>в</strong>ыходной<br />
информации, и <strong>в</strong>оз<strong>в</strong>ращает информацию <strong>в</strong> табличном формате. Для конкретизации<br />
<strong>в</strong>ыполняемых дейст<strong>в</strong>ий SQL-операторы снабжаются SQL-аргументами, задающими имена<br />
таблиц и полей, усло<strong>в</strong>ия и отношения. В запрос <strong>в</strong>ключаются, также, разного рода<br />
анализирующие SQL-функции и знаки операций: — подстано<strong>в</strong>очный знак замены любого<br />
сим<strong>в</strong>ола, * — подстано<strong>в</strong>очный знак замены любой группы сим<strong>в</strong>оло<strong>в</strong>, # — подстано<strong>в</strong>очный<br />
знак замены любой цифры или ограничитель значений даты и <strong>в</strong>ремени, ; — конец запроса, ,<br />
— разделитель списка, ' — ограничитель тексто<strong>в</strong>ой строки, Like – оператор подобия, Between<br />
— указатель диапазона. При обработке запросо<strong>в</strong> лишние пробелы и знаки конца запроса<br />
игнорируются.<br />
Любой QBE-запрос может быть предста<strong>в</strong>лен <strong>в</strong> <strong>Access</strong> как запрос SQL через меню Вид<br />
.Режим SQL или <strong>в</strong>ыбором Режим SQL под кнопкой . В то же <strong>в</strong>ремя, пользо<strong>в</strong>атель<br />
имеет <strong>в</strong>озможность самостоятельного формиро<strong>в</strong>ания SQL-запросо<strong>в</strong> <strong>в</strong> этих режимах.<br />
Центральным, наиболее часто используемым SQL-оператором я<strong>в</strong>ляется Select. Запрос на<br />
<strong>в</strong>ыборку с этим оператором имеет формат<br />
Select [{All | Distinct | Distinctrow}] { * | списокПолей} From списокТаблиц [Where<br />
логическоеВыражение] [In списокЗначений ] [Group By логическоеВыражение] [Having<br />
логическоеВыражение] [Order By списокПолей [{Asc | Desc}]]];<br />
где списокПолей = {имяТаблицы.* | [имяТаблицы.]имяПоля [,…]]};<br />
списокТаблиц = имяТаблицы [, ...];<br />
списокЗначений = Значение [, ...].
24<br />
К<strong>в</strong>адратные скобки <strong>в</strong> структуре формата указы<strong>в</strong>ают на необязательную (факультати<strong>в</strong>ную)<br />
часть <strong>в</strong>ыражения, а многоточие — на <strong>в</strong>озможную ее по<strong>в</strong>торяемость. Если имя поля содержит<br />
пробелы, его также заключают <strong>в</strong> к<strong>в</strong>адратные скобки. Фигурные скобки обрамляют группу из<br />
нескольких <strong>в</strong>арианто<strong>в</strong>, разделенных <strong>в</strong>ертикальной чертой (|) — знаком операции Или. В<br />
конкретном <strong>в</strong>ыражении следует использо<strong>в</strong>ать один из <strong>в</strong>арианто<strong>в</strong> без многоточия, к<strong>в</strong>адратных<br />
и фигурных скобок.<br />
В общем случае оператор Select определяет поля, обрабаты<strong>в</strong>аемые <strong>в</strong> запросе. Из таблиц,<br />
заданных аргументом From, из<strong>в</strong>лекаются записи:<br />
Пример 1.<br />
SELECT Фирма, Год, Президент FROM Таблица;<br />
Здесь из Таблица <strong>в</strong>ыбираются <strong>в</strong>се записи <strong>в</strong> полях Фирма, Год, Президент, а <strong>в</strong> следующем<br />
примере находится произ<strong>в</strong>едение д<strong>в</strong>ух таблиц:<br />
Пример 2.<br />
SELECT Задачи.*, Сотрудники.* FROM [Задачи], [Сотрудники];<br />
В результат запроса <strong>в</strong>ключаются записи, удо<strong>в</strong>лет<strong>в</strong>оряющие усло<strong>в</strong>иям Where:<br />
Пример 3.<br />
SELECT Таблица1.Фирма, Таблица2.Год, Таблица1.Президент FROM Таблица1,<br />
Таблица2 WHERE Таблица2.Год > 1950;<br />
Диапазон значений запроса определяется аргументами функции In, заключенными <strong>в</strong><br />
скобки:<br />
Пример 4.<br />
SELECT * FROM Таблица, Таблица1 WHERE Таблица.Имя IN ("И<strong>в</strong>ано<strong>в</strong>", "Петро<strong>в</strong>") AND<br />
Таблица1.Оклад > 10000;<br />
В примере <strong>в</strong>ыбираются <strong>в</strong>се записи д<strong>в</strong>ух таблиц, если поле Имя <strong>в</strong> Таблица содержит «И<strong>в</strong>ано<strong>в</strong>»,<br />
«Петро<strong>в</strong>», а значение поля Оклад <strong>в</strong> Таблица1 пре<strong>в</strong>ышает 10000.<br />
Аргументы All, Distinct, Distinctrow упра<strong>в</strong>ляют <strong>в</strong>ключением и исключением дубликато<strong>в</strong>:<br />
Пример 5.<br />
SELECT DISTINCT Таблица2.* FROM Таблица2;<br />
Order By сортирует <strong>в</strong>ыходные данные <strong>в</strong> заданной последо<strong>в</strong>ательности:<br />
Пример 6.<br />
SELECT DISTINCTROW * FROM Таблица, Таблица1 ORDER BY Таблица.Имя, Таблица.<br />
Оклад;
25<br />
Здесь из Таблица и Таблица1 <strong>в</strong>ыбираются непо<strong>в</strong>торяющиеся записи с сортиро<strong>в</strong>кой по полям<br />
Имя и Оклад из Таблица.<br />
Для <strong>в</strong>ычислений <strong>в</strong> SQL используются статистические функции, при<strong>в</strong>еденные ранее <strong>в</strong><br />
списке группо<strong>в</strong>ых операций:<br />
Пример 7.<br />
SELECT Имя, SUM(Оклад) FROM Таблица GROUP BY Имя;<br />
Здесь аргумент Group By формирует одну запись из записей с одинако<strong>в</strong>ым значением поля<br />
Имя. В запросе формируется информация о поле Оклад, причем для каждого работника<br />
<strong>в</strong>ы<strong>в</strong>одится одна запись с суммой.<br />
Аргумент Having ограничи<strong>в</strong>ает число записей:<br />
Пример 8.<br />
SELECT Оклад FROM Таблица GROUP BY Оклад HAVING COUNT(Имя) > 1;<br />
В этом запросе формируются с<strong>в</strong>едения обо <strong>в</strong>сех работниках, упомянутых более одного раза.<br />
Пример 9.<br />
SELECT MIN(Оклад) AS Минимум, MAX(Оклад) AS Максимум, AVG(Оклад) AS<br />
Среднее FROM Таблица;<br />
В этом примере <strong>в</strong>ы<strong>в</strong>одятся минимальное, максимальное и среднее значения оклада <strong>в</strong> полях,<br />
наз<strong>в</strong>ания которых следуют за As.<br />
Пример 10.<br />
SELECT Имя, Оклад FROM Таблица WHERE Оклад BETWEEN 1000 AND 3000;<br />
Сообщаются работники, имеющие оклады от 1000 до 3000.<br />
Запрос <strong>в</strong> формате<br />
Select списокПолей Into но<strong>в</strong>аяТаблица<br />
[In <strong>в</strong>нешняяБазаДанных] From исходнаяТаблица;<br />
создает таблицы. Если при этом не указы<strong>в</strong>аются поля и не наклады<strong>в</strong>ается усло<strong>в</strong>ий,<br />
<strong>в</strong>ыполняется копиро<strong>в</strong>ание таблиц:<br />
Пример 11.<br />
SELECT Имя, Оклад INTO Таблица2 FROM Таблица1 ORDER BY Оклад, Имя;<br />
В Таблица2 заносятся д<strong>в</strong>а поля, отсортиро<strong>в</strong>анных по Оклад (ключе<strong>в</strong>ое поле) и Имя.<br />
Аргумент Inner Join объединяет записи из д<strong>в</strong>ух таблиц, если с<strong>в</strong>язующие поля этих<br />
таблиц содержат одинако<strong>в</strong>ые значения:<br />
Select списокПолей From имяТаблицы1 Inner Join имяТаблицы2 On<br />
имяТаблицы1.имяПоля1 операторCра<strong>в</strong>нения имяТаблицы2.имяПоля2;
26<br />
В частности, Inner Join можно применить к таблицам Отделы и Сотрудники для отбора <strong>в</strong>сех<br />
сотруднико<strong>в</strong> каждого отдела. Для отбора же <strong>в</strong>сех отдело<strong>в</strong> (<strong>в</strong> том числе тех, <strong>в</strong> которых нет ни<br />
одного сотрудника) или <strong>в</strong>сех сотруднико<strong>в</strong> (<strong>в</strong> том числе тех, которые не приписаны ни к<br />
какому отделу) следует использо<strong>в</strong>ать аргументы Left Join или Right Join, которые создают<br />
<strong>в</strong>нешнее объединение.<br />
Пример 12.<br />
SELECT Категория, Марка FROM Типы INNER JOIN То<strong>в</strong>ары ON Типы.КодТипа =<br />
То<strong>в</strong>ары.КодТипа;<br />
В этом примере поле КодТипа используется для объединения таблиц, однако оно не<br />
<strong>в</strong>ключается <strong>в</strong> результат <strong>в</strong>ыполнения запроса, поскольку нет оператора Select. Чтобы доба<strong>в</strong>ить<br />
с<strong>в</strong>язующее поле (<strong>в</strong> данном случае поле Типы.КодТипа) <strong>в</strong> результат <strong>в</strong>ыполнения запроса,<br />
следует <strong>в</strong>ключить имя этого поля <strong>в</strong> Select.<br />
Пример 13.<br />
SELECT DISTINCTROW Таблица1.*<br />
FROM Таблица1 INNER JOIN Таблица3 ON Таблица1.Фирма = Таблица3.Фирма;<br />
В данном примере Таблица1 пересекается с Таблицей3, а <strong>в</strong> следующих примерах сначала из<br />
таблицы Задачи <strong>в</strong>ычитается таблица Задачи1, а затем Задачи делится на таблицу<br />
СотрудникиЗадачи :<br />
Пример 14.<br />
SELECT DISTINCTROW Задачи.КодЗадачи, Задачи.ОписаниеЗадачи,<br />
Задачи.НачальнаяДата, Задачи.КонечнаяДата FROM Задачи LEFT JOIN Задачи1<br />
ON Задачи.КодЗадачи = Задачи1. КодЗадачи WHERE ((Задачи1.КодЗадачи) IS NULL);<br />
Пример 15.<br />
SELECT Задачи.ОписаниеЗадачи, Задачи.НачальнаяДата, Задачи.КонечнаяДата<br />
FROM Задачи INNER JOIN СотрудникиЗадачи<br />
ON Задачи.КодЗадачи = Сотрудники .Задачи. КодЗадачи;<br />
Пример 16.<br />
SELECT * FROM Таблица1 UNION SELECT * FROM Таблица2;<br />
Это запрос на объединение д<strong>в</strong>ух таблиц с идентичными макетами.<br />
Запросам на изменение и упра<strong>в</strong>ляющим запросам <strong>Access</strong> соот<strong>в</strong>етст<strong>в</strong>уют другие<br />
<strong>в</strong>ыражения SQL. По запросу <strong>в</strong> формате<br />
Create Table имяТаблицы (имяПоля типПоля [(Размер)]<br />
[списокИндексо<strong>в</strong>][,…]);<br />
создается но<strong>в</strong>ая таблица с указанными <strong>в</strong> аргументах полями конкретного типа и размера, а<br />
запрос формата
27<br />
Drop {Table имяТаблицы | Index Значение On имяТаблицы};<br />
удаляет заданную таблицу или ее индекс.<br />
Пример 17.<br />
CREATE TABLE [Отдел кадро<strong>в</strong>] (Фамилия TEXT(30), [Номер п/п] INTEGER,<br />
Оклад DOUBLE);<br />
Предста<strong>в</strong>ленный SQL-запрос создает таблицу Отдел кадро<strong>в</strong> с тексто<strong>в</strong>ым полем Фамилия<br />
длиной 30 сим<strong>в</strong>оло<strong>в</strong> и число<strong>в</strong>ыми полями [Номер п/п] и Оклад.<br />
Следующие запросы создают индексы:<br />
Create [ Unique ] Index Значение On имяТаблицы<br />
(имяПоля [{Asc | Desc}][,...])<br />
[With {Primary | Disallow Null | Ignore Null }];<br />
Constraint Индекс {Primary Key | Unique | References};<br />
имяТаблицы [имяПоля]}<br />
Чтобы доба<strong>в</strong>ить <strong>в</strong> таблицу но<strong>в</strong>ые поля или удалить сущест<strong>в</strong>ующие, используется запрос<br />
на изменение<br />
Alter Table имяТаблицы {Add | Drop} Column имяПоля [типПоля(Размер)]];<br />
Удалить из таблицы индекс или таблицу из базы данных можно запросом<br />
Drop {Table имяТаблицы | Index Индекс On имяТаблицы};<br />
Запрос<br />
Insert Into имяТаблицы [In базаДанных] [(имяПоля [,...])] Select списокПолей From<br />
имяТаблицы;<br />
доба<strong>в</strong>ляет записи <strong>в</strong> конец сущест<strong>в</strong>ующей таблицы с использо<strong>в</strong>анием заданных <strong>в</strong>ыражений.<br />
Если опущены имена полей, данные заносятся последо<strong>в</strong>ательно поля <strong>в</strong> соот<strong>в</strong>етст<strong>в</strong>ии с<br />
макетом таблицы базы данных:<br />
Пример 18.<br />
INSERT INTO Таблица2 SELECT Таблица3.* FROM Таблица3;<br />
Здесь к Таблице2 доба<strong>в</strong>ляется Таблица3.<br />
Пример 19.<br />
INSERT INTO [Отдел кадро<strong>в</strong>] (Фамилия, Оклад) VALUES ("И<strong>в</strong>ано<strong>в</strong>", 54700);<br />
Запросы на удаление и обно<strong>в</strong>ление информации <strong>в</strong> таблицах строятся <strong>в</strong> форматах:<br />
Delete From имяТаблицы [Where логическоеВыражение] [In базаДанных];
28<br />
Update имяТаблицы Set имяПоля=Значение [,…] [Where логическоеВыражение];<br />
Пример 20.<br />
DELETE FROM Таблица2 WHERE Год5000;<br />
Из Таблица удаляются значения поля Имя, если значение поля Оклад пре<strong>в</strong>ышает 5000.<br />
Формы и отчеты<br />
Чтение и пра<strong>в</strong>ка данных через форму<br />
Обычно заполненная таблица неудобна для просмотра <strong>в</strong>сех записей. Если длина или<br />
ширина ее пре<strong>в</strong>ышает размер экрана, приходится постоянно «прокручи<strong>в</strong>ать» изображение с<br />
помощью полосы прокрутки. Когда на экране исчезает ключе<strong>в</strong>ое поле, стано<strong>в</strong>ится трудно<br />
отличить одну запись от другой. А когда приходит <strong>в</strong>ремя пра<strong>в</strong>ить данные, <strong>в</strong>озникают ошибки<br />
<strong>в</strong>ыбора записей и перехода между ними. Поэтому для просмотра и пра<strong>в</strong>ки отдельных записей<br />
используется другой объект базы данных — форма. При наличии открытой базы данных<br />
любая ее форма откры<strong>в</strong>ается с <strong>в</strong>кладки Формы, доступной через меню Вид .Объекты базы<br />
данных .Формы. Одно<strong>в</strong>ременно с открытием формы откры<strong>в</strong>аются, хотя и не <strong>в</strong>ы<strong>в</strong>одятся на<br />
экран, таблицы или запросы, на которых построена форма.<br />
Форма удобна для предста<strong>в</strong>ления записей одной таблицы или группы с<strong>в</strong>язанных таблиц.<br />
В то же <strong>в</strong>ремя, каждой таблице может соот<strong>в</strong>етст<strong>в</strong>о<strong>в</strong>ать несколько форм. Любая страница<br />
формы демонстрирует одну или несколько записей или их части. Переход от записи к записи<br />
осущест<strong>в</strong>ляется на<strong>в</strong>игационными кнопками формы<br />
или через<br />
меню Пра<strong>в</strong>ка .Перейти. При чтении записей можно использо<strong>в</strong>ать методы фильтрации и<br />
сортиро<strong>в</strong>ки, применяемые к таблицам.<br />
Записи пра<strong>в</strong>ятся прямо <strong>в</strong> тексто<strong>в</strong>ых полях формы. Для доба<strong>в</strong>ления но<strong>в</strong>ой записи <strong>в</strong> базу<br />
данных используется на<strong>в</strong>игационная кнопка со з<strong>в</strong>ездочкой или меню Пра<strong>в</strong>ка .Перейти<br />
.Но<strong>в</strong>ая. После перехода к следующей записи или закрытия формы но<strong>в</strong>ая запись сохраняется<br />
<strong>в</strong> таблице. Для отмены изменений <strong>в</strong> текущем поле служит меню Пра<strong>в</strong>ка .Восстано<strong>в</strong>ить<br />
текущее поле/запись и кнопка на панели инструменто<strong>в</strong>. По<strong>в</strong>торное нажатие этой же<br />
кнопки отменяет <strong>в</strong>се изменения, <strong>в</strong>несенные <strong>в</strong> редактируемую запись. Чтобы удалить запись,<br />
используется меню Пра<strong>в</strong>ка .Удалить запись или кнопка<br />
. Меню Сер<strong>в</strong>ис .Орфография<br />
и кнопка помогают про<strong>в</strong>ести синтаксический контроль записей. Для копиро<strong>в</strong>ания<br />
запись <strong>в</strong>ыделяют через меню Пра<strong>в</strong>ка .Выделить запись или одноименной кнопкой <strong>в</strong> ле<strong>в</strong>ой<br />
части формы, после чего ее заносят <strong>в</strong> буфер обмена. Затем копию из буфера <strong>в</strong>ста<strong>в</strong>ляют <strong>в</strong><br />
любую <strong>в</strong>ыделенную запись. Чтобы быстро найти из<strong>в</strong>естную запись через форму, следует<br />
перейти <strong>в</strong> нужное поле и <strong>в</strong>ыбрать меню Пра<strong>в</strong>ка .Найти или нажать одноименную кнопку<br />
панели инструменто<strong>в</strong>. Произ<strong>в</strong>ольные бук<strong>в</strong>осочетания отыски<strong>в</strong>аются после <strong>в</strong>ыбора строки С<br />
любой частью поля из списка Со<strong>в</strong>падение <strong>в</strong> окне поиска. Если требуется регулярное<br />
использо<strong>в</strong>ание формы, ее можно перенести <strong>в</strong> любую папку Windows или создать ярлык из<br />
меню Пра<strong>в</strong>ка .Создать ярлык, <strong>в</strong> том числе — на Рабочем столе.
29<br />
Создание формы<br />
Если к таблице не разработано форм или сущест<strong>в</strong>ующие формы не от<strong>в</strong>ечают требо<strong>в</strong>аниям<br />
к базе данных, создается но<strong>в</strong>ая форма с помощью меню Вста<strong>в</strong>ка .Форма или кнопки<br />
Создать <strong>в</strong> окне базы данных. Если же нажать кнопку панели инструменто<strong>в</strong> и <strong>в</strong>ыбрать<br />
пункт А<strong>в</strong>тоформа, то будет а<strong>в</strong>томатически подгото<strong>в</strong>лена форма, содержащая <strong>в</strong>се поля<br />
таблицы. Если какие-либо поля а<strong>в</strong>тоформы не требуются, от них следует отказаться, <strong>в</strong>ступи<strong>в</strong><br />
<strong>в</strong> диалог с Мастером форм. Эта программа поз<strong>в</strong>оляет созда<strong>в</strong>ать формы с полями из одной<br />
или нескольких с<strong>в</strong>язанных таблиц или запросо<strong>в</strong>. Упра<strong>в</strong>ляя <strong>в</strong>ключением <strong>в</strong> форму<br />
необходимых полей, Мастер форм одно<strong>в</strong>ременно создает базо<strong>в</strong>ый <strong>в</strong>нешний <strong>в</strong>ид формы В<br />
столбец, предста<strong>в</strong>ляющую одну запись, либо Ленточной формы из нескольких записей, либо<br />
Табличной формы. Разно<strong>в</strong>идностями форм я<strong>в</strong>ляются Диаграмма и С<strong>в</strong>одная таблица,<br />
использующая данные из таблиц, подобных Excel. При работе с несколькими таблицами<br />
создаются подчиненные формы или с<strong>в</strong>язанные формы. В формах, где источником данных<br />
служат таблицы, с<strong>в</strong>язанные отношением «один ко многим», подчиненные формы необходимо<br />
с<strong>в</strong>язы<strong>в</strong>ать с осно<strong>в</strong>ной формой так, чтобы <strong>в</strong>се их записи соот<strong>в</strong>етст<strong>в</strong>о<strong>в</strong>али текущей записи<br />
осно<strong>в</strong>ной формы. При этом Мастер форм использует информацию о типе отношения между<br />
таблицами для с<strong>в</strong>язи осно<strong>в</strong>ной и подчиненных форм. Чтобы создать подчиненную форму,<br />
отображаемую <strong>в</strong> режиме таблицы, иногда оказы<strong>в</strong>ается проще перетащить таблицу или запрос<br />
из окна базы данных <strong>в</strong> форму.<br />
Оригинальные формы создаются Конструктором, откры<strong>в</strong>аемым для <strong>в</strong>ыбранной таблицы<br />
из меню Вста<strong>в</strong>ка .Форма или кнопкой Создать окна базы данных. Конструктор предлагает<br />
макет формы с разметочной сеткой, а к самой форме можно перейти через меню Вид .Форма<br />
или щелчком по кнопке . Обычно одно<strong>в</strong>ременно с Конструктором откры<strong>в</strong>ается<br />
соот<strong>в</strong>етст<strong>в</strong>ующая панель элементо<strong>в</strong>. На панели находятся кнопки, щелкая которыми, можно<br />
создать элементы упра<strong>в</strong>ления форм посредст<strong>в</strong>ом перетаски<strong>в</strong>ания указателя мыши по макету<br />
формы. Но<strong>в</strong>ый элемент упра<strong>в</strong>ления <strong>в</strong> пер<strong>в</strong>ый момент оказы<strong>в</strong>ается <strong>в</strong>ыделенным —<br />
окаймленным размерными маркерами. Если <strong>в</strong>последст<strong>в</strong>ии потребуется пра<strong>в</strong>ка, его можно<br />
по<strong>в</strong>торно <strong>в</strong>ыделять щелчком. Выделенный элемент обрамляется рамкой с маркером<br />
перемещения <strong>в</strong> ле<strong>в</strong>ом <strong>в</strong>ерхнем углу и размерными маркерами по краям. Он с<strong>в</strong>ободно<br />
перемещается по форме при нажатой кнопке перетаски<strong>в</strong>анием, командами меню<br />
Пра<strong>в</strong>ка .Вырезать, Пра<strong>в</strong>ка .Вста<strong>в</strong>ить (с последующим перетаски<strong>в</strong>анием) или <strong>в</strong>ыбором<br />
одноименных кнопок стандартной панели инструменто<strong>в</strong>. Для более точного<br />
позициониро<strong>в</strong>ания после <strong>в</strong>ыделения элемента надо нажать кла<strong>в</strong>ишу и <strong>в</strong>ыполнить<br />
перемещение кла<strong>в</strong>ишами-стрелками. Возможно и группо<strong>в</strong>ое перемещение. Для группо<strong>в</strong>ого<br />
<strong>в</strong>ыделения несколько соседних элементо<strong>в</strong> упра<strong>в</strong>ления очерчи<strong>в</strong>аются д<strong>в</strong>ижением указателя<br />
пунктирной рамкой или поочередно <strong>в</strong>ыделяются при нажатой кла<strong>в</strong>ише . Элементы<br />
могут <strong>в</strong>ыра<strong>в</strong>ни<strong>в</strong>аться по сетке из меню Формат .Выро<strong>в</strong>нять. Для копиро<strong>в</strong>ания <strong>в</strong>ыделенных<br />
элементо<strong>в</strong> служат меню Пра<strong>в</strong>ка .Дублиро<strong>в</strong>ать, Пра<strong>в</strong>ка .Копиро<strong>в</strong>ать и Пра<strong>в</strong>ка .Вста<strong>в</strong>ить<br />
или одноименные кнопки стандартной панели инструменто<strong>в</strong>. Элементы удаляются кла<strong>в</strong>ишей<br />
и заменяются один другим через контекстное меню Преобразо<strong>в</strong>ать элемент <strong>в</strong>.<br />
Пользуясь кнопками панели форматиро<strong>в</strong>ания и размерными маркерами, у <strong>в</strong>ыделенных<br />
элементо<strong>в</strong> можно менять шрифт, размер, другие с<strong>в</strong>ойст<strong>в</strong>а, откры<strong>в</strong>аемые из меню Вид<br />
.С<strong>в</strong>ойст<strong>в</strong>а или кнопкой . Любое изменение за<strong>в</strong>ершается щелчком <strong>в</strong>не элемента.<br />
Каждая кнопка панели элементо<strong>в</strong> формы предста<strong>в</strong>ляет определенный класс объекто<strong>в</strong><br />
Windows. С их помощью создаются три типа элементо<strong>в</strong> упра<strong>в</strong>ления: с<strong>в</strong>ободные,<br />
присоединенные и <strong>в</strong>ычисляемые. Содержание с<strong>в</strong>ободных элементо<strong>в</strong> не за<strong>в</strong>исит от содержания<br />
таблиц или запросо<strong>в</strong>. Надпись остается <strong>в</strong> форме после заполнения ее текстом. Обычно<br />
— это текст пояснения, приглашения, при<strong>в</strong>етст<strong>в</strong>ия, обращенного к пользо<strong>в</strong>ателю. Тексто<strong>в</strong>ое
30<br />
Поле используется для <strong>в</strong>печаты<strong>в</strong>ания <strong>в</strong> него информации пользо<strong>в</strong>ателем. <strong>Access</strong> имеет<br />
четыре типа таких полей: однострочное, многострочное, <strong>в</strong>ычисляемое и с<strong>в</strong>ободное.<br />
Многострочные поля обладают с<strong>в</strong>ойст<strong>в</strong>ами Растяжение и Сжатие, поз<strong>в</strong>оляющими<br />
<strong>в</strong>ы<strong>в</strong>одить информацию полей <strong>в</strong> печать, не <strong>в</strong>ключая их <strong>в</strong>о <strong>в</strong>нешний <strong>в</strong>ид формы. Группа<br />
окаймляет сгруппиро<strong>в</strong>анные по смыслу элементы <strong>в</strong> форме. Выключатель<br />
инициирует и<br />
за<strong>в</strong>ершает программные процессы. Переключатель устана<strong>в</strong>ли<strong>в</strong>ает один из<br />
предложенных пользо<strong>в</strong>ателю <strong>в</strong>арианто<strong>в</strong>, а Флажками<br />
помечают <strong>в</strong>се <strong>в</strong>ыбираемые<br />
пользо<strong>в</strong>ателем <strong>в</strong>арианты. Поле со списком<br />
поз<strong>в</strong>оляет отыскать <strong>в</strong> списке необходимую<br />
запись, а из простого Списка<br />
щелчком мыши можно произ<strong>в</strong>ести <strong>в</strong>ыбор одного из<br />
нескольких конкретных значений. Кнопка создается для упра<strong>в</strong>ления ходом<br />
программных процессо<strong>в</strong>. Рисунок, С<strong>в</strong>ободная рамка объекта и Присоединенная рамка<br />
объекта<br />
применяются для <strong>в</strong>страи<strong>в</strong>ания <strong>в</strong> формы графических объекто<strong>в</strong>. Разбить<br />
форму на страницы помогает Разры<strong>в</strong> страницы , а дополнить ее <strong>в</strong>строенной формой —<br />
элемент Подчиненная форма<br />
. Кроме того, <strong>в</strong> форму можно поместить Набор <strong>в</strong>кладок,<br />
разнообразные Линии и Прямоугольники<br />
. Панель дополнительных элементо<strong>в</strong><br />
откры<strong>в</strong>ается кнопкой . Многие из элементо<strong>в</strong> строятся с помощью инди<strong>в</strong>идуальных<br />
программ-мастеро<strong>в</strong> под кнопкой панели элементо<strong>в</strong> и кодируются построителями<br />
<strong>в</strong>ыражений.<br />
Но гла<strong>в</strong>ное назначение формы состоит <strong>в</strong> предста<strong>в</strong>лении присоединенных элементо<strong>в</strong><br />
упра<strong>в</strong>ления — полей таблиц базы данных. Из меню Вид .Список полей или кнопкой<br />
откры<strong>в</strong>ается панель с именами <strong>в</strong>сех полей таблицы. Каждое поле копируется <strong>в</strong> форму<br />
перетаски<strong>в</strong>анием или через буфер обмена. Вста<strong>в</strong>ляемые поля сопро<strong>в</strong>ождаются надписями с<br />
их именами, которые можно пра<strong>в</strong>ить <strong>в</strong>месте с полями или отдельно, удалять или заменять<br />
другими надписями. Кроме тексто<strong>в</strong>ых полей, <strong>в</strong> качест<strong>в</strong>е присоединенных элементо<strong>в</strong> полезно<br />
использо<strong>в</strong>ать объекты OLE, переключатели и флажки. Хотя по умолчанию <strong>в</strong>се элементы,<br />
доба<strong>в</strong>ленные <strong>в</strong> форму с панели элементо<strong>в</strong>, я<strong>в</strong>ляются с<strong>в</strong>ободными, многие из них после<br />
<strong>в</strong>ыделения могут быть преобразо<strong>в</strong>аны <strong>в</strong> присоединенные, то есть с<strong>в</strong>язаны с полями<br />
источника данных. Для этого надо на <strong>в</strong>кладке Данные окна С<strong>в</strong>ойст<strong>в</strong>а с<strong>в</strong>ойст<strong>в</strong>о Данные<br />
инициализиро<strong>в</strong>ать именем поля.<br />
Вычисляемыми элементами упра<strong>в</strong>ления обычно я<strong>в</strong>ляются тексто<strong>в</strong>ые поля, содержащие<br />
<strong>в</strong>ыражения.<br />
После заполнения формы элементами упра<strong>в</strong>ления, формируется ее стиль из меню<br />
Формат .А<strong>в</strong>тоформат, кнопкой или <strong>в</strong>ручную кнопками панели форматиро<strong>в</strong>ания,<br />
упра<strong>в</strong>ляющими ц<strong>в</strong>етом фона, текста, границ, их шириной и предста<strong>в</strong>лением. Перед этим <strong>в</strong>ся<br />
форма <strong>в</strong>ыделяется через меню Пра<strong>в</strong>ка .Выделить форму или щелчком по специальной<br />
кнопке на пересечении горизонтальной и <strong>в</strong>ертикальной линеек. Д<strong>в</strong>ойной щелчок по этой<br />
кнопке <strong>в</strong>едет к одно<strong>в</strong>ременному открытию окна С<strong>в</strong>ойст<strong>в</strong>а формы. В качест<strong>в</strong>е фоно<strong>в</strong>ого<br />
рисунка формы (с<strong>в</strong>ойст<strong>в</strong>о Рисунок) можно использо<strong>в</strong>ать растро<strong>в</strong>ую картинку из папки<br />
\Office\Bitmaps\Styles или графические файлы <strong>в</strong> форматах .wmf, .bmp. Изменяя с<strong>в</strong>ойст<strong>в</strong>а Тип<br />
рисунка, Масштабы рисунка, Выра<strong>в</strong>ни<strong>в</strong>ание рисунка, Мозаичное заполнение, можно
31<br />
добиться разнообразных эффекто<strong>в</strong> оформления. Стили элементо<strong>в</strong> удобно копиро<strong>в</strong>ать<br />
кнопкой . Элементы <strong>в</strong> форме <strong>в</strong>ыра<strong>в</strong>ни<strong>в</strong>аются по разметочной сетке через меню Формат<br />
.Выро<strong>в</strong>нять, Формат .При<strong>в</strong>язать к сетке, Формат .Размер .По узлам сетки или —<br />
наоборот — Формат .Размер .По размеру данных.<br />
В окне Конструктора форма разделена на три части: Заголо<strong>в</strong>ок формы, Область<br />
данных и Примечание формы. Форма размечается по <strong>в</strong>ертикальной и горизонтальной<br />
линейкам (<strong>в</strong>ертикальная линия спра<strong>в</strong>а определяет ее ширину, а горизонтальная <strong>в</strong>низу —<br />
<strong>в</strong>ысоту), изменяемым перетаски<strong>в</strong>анием.<br />
Чтобы доба<strong>в</strong>ить заголо<strong>в</strong>ок или примечание к форме, надо обратиться к меню Вид<br />
.Заголо<strong>в</strong>ок/примечание формы или перетащить нижнюю или <strong>в</strong>ерхнюю границу Области<br />
данных. Здесь можно располагать текст и другие элементы упра<strong>в</strong>ления. В многостраничной<br />
форме Заголо<strong>в</strong>ок формы отображается только на пер<strong>в</strong>ой странице. Аналогичные функции<br />
<strong>в</strong>ыполняет Примечание формы, отображаемое <strong>в</strong>низу на последней странице. Верхние и<br />
нижние колонтитулы, откры<strong>в</strong>аемые из меню Вид .Колонтитулы, и элемент Разры<strong>в</strong><br />
страницы используются <strong>в</strong> формах, предназначенных для печати.<br />
Одной из форм базы данных обычно поручается роль заста<strong>в</strong>ки. На ней размещают<br />
наз<strong>в</strong>ание программного продукта, с<strong>в</strong>едения об а<strong>в</strong>торах и а<strong>в</strong>торском пра<strong>в</strong>е, логотип<br />
разработчика. Сюда доба<strong>в</strong>ляют кнопки Мастером кнопок для быстрого перехода к нужным<br />
формам или таблицам. Здесь организуют меню или огла<strong>в</strong>ление программы. Через меню<br />
Сер<strong>в</strong>ис .Параметры запуска <strong>в</strong><strong>в</strong>одится заголо<strong>в</strong>ок программы и указы<strong>в</strong>ается имя этой<br />
формы-заста<strong>в</strong>ки. Соот<strong>в</strong>етст<strong>в</strong>ующими флажками при необходимости удаляются с экрана окно<br />
базы данных и строка состояния. Если же пользо<strong>в</strong>атель желает мино<strong>в</strong>ать заста<strong>в</strong>ку, ему<br />
следует осущест<strong>в</strong>лять запуск программы при нажатой кла<strong>в</strong>ише .<br />
Отчеты<br />
Любой отчет базы данных откры<strong>в</strong>ается с <strong>в</strong>кладки Отчеты или через меню Вид .Объекты<br />
базы данных .Отчеты. После нажатия кнопки Просмотр пользо<strong>в</strong>атель попадает <strong>в</strong> окно<br />
пред<strong>в</strong>арительного просмотра, демонстрирующего отчет, подгото<strong>в</strong>ленный к печати. Отсюда<br />
можно проанализиро<strong>в</strong>ать детали документа <strong>в</strong> различных масштабах или кон<strong>в</strong>ертиро<strong>в</strong>ать его <strong>в</strong><br />
формат Excel или <strong>в</strong> .rtf, удобный для печати <strong>в</strong> Word.<br />
Макет отчета просматри<strong>в</strong>ается и изменяется Конструктором отчето<strong>в</strong>, доступным<br />
через кнопку Конструктор. Каждое поле таблицы здесь предста<strong>в</strong>лено тексто<strong>в</strong>ым полем,<br />
которое можно <strong>в</strong>ыделять и пра<strong>в</strong>ить, как это делалось <strong>в</strong> Конструкторе форм. Отдельные<br />
надписи дополняют и поясняют текст отчета. Вычисляемые поля и итого<strong>в</strong>ые записи<br />
предста<strong>в</strong>ляют дополнительную информацию о табличных данных, актуальную для<br />
конкретного отчета. Рисунки и диаграммы поясняют содержание. Рабочая область обрамлена<br />
областями колонтитуло<strong>в</strong> страниц. Отдельная часть отчета формирует титульную страницу,<br />
которую можно заполнять самыми разнообразными объектами.<br />
Если база данных не имеет отчета или сущест<strong>в</strong>ующие отчеты не от<strong>в</strong>ечают требо<strong>в</strong>аниям к<br />
ней, следует создать но<strong>в</strong>ый отчет, <strong>в</strong>оспользо<strong>в</strong>а<strong>в</strong>шись меню Вста<strong>в</strong>ка .Отчет или кнопкой<br />
Создать <strong>в</strong> окне базы данных. Кнопкой панели инструменто<strong>в</strong> а<strong>в</strong>томатически создается<br />
А<strong>в</strong>тоотчет, содержащий <strong>в</strong>се поля таблицы. Если какие-либо поля не требуются, от них<br />
следует отказаться, <strong>в</strong>ступи<strong>в</strong> <strong>в</strong> диалог с Мастером отчето<strong>в</strong>. В <strong>Access</strong> можно создать<br />
несколько типо<strong>в</strong> отчето<strong>в</strong>. Отчет В столбец предста<strong>в</strong>ляет каждое поле каждой записи<br />
отдельной строкой. Ленточный отчет <strong>в</strong>ыделяет отдельный столбец для каждого поля<br />
документируемой таблицы или запроса, <strong>в</strong>ы<strong>в</strong>одя строками значения записей. Специальный<br />
тип Ленточного отчета — Почто<strong>в</strong>ые наклейки — каждую группу полей заносит <strong>в</strong><br />
отдельную ячейку сетки пред<strong>в</strong>арительно заданных размеро<strong>в</strong>. В Диаграмме дается<br />
графическое предста<strong>в</strong>ление данных.
32<br />
Мастер отчето<strong>в</strong> упра<strong>в</strong>ляет <strong>в</strong>ключением <strong>в</strong> документ необходимых полей из различных<br />
таблиц и запросо<strong>в</strong>, их группиро<strong>в</strong>анием по заданным критериям, порядком сортиро<strong>в</strong>ки и<br />
формиро<strong>в</strong>анием итого<strong>в</strong>ых записей, макетом, стилем и наз<strong>в</strong>анием отчета. Сформиро<strong>в</strong>анный<br />
отчет полезно проанализиро<strong>в</strong>ать из режимо<strong>в</strong> Вид .Пред<strong>в</strong>арительный просмотр или Вид<br />
.Образец. При этом следует обратить <strong>в</strong>нимание на расположение документа на экране: узкие<br />
или непропорционально широкие поля, неудачный формат предста<strong>в</strong>ления число<strong>в</strong>ых данных,<br />
неясные итого<strong>в</strong>ые записи и заголо<strong>в</strong>ки полей. Такие отчеты требуют дополнительной пра<strong>в</strong>ки <strong>в</strong><br />
режиме Вид .Конструктор отчето<strong>в</strong>.<br />
Отчеты для многих документо<strong>в</strong> (финансо<strong>в</strong>ых, бухгалтерских, офисных) создаются<br />
<strong>в</strong>ручную Конструктором, откры<strong>в</strong>аемым для <strong>в</strong>ыбранной таблицы из меню Вста<strong>в</strong>ка .Отчет<br />
или кнопкой Создать окна базы данных. Конструктор предлагает макет отчета, из которого<br />
<strong>в</strong>сегда можно <strong>в</strong>ернуться к просмотру через меню Вид .Пред<strong>в</strong>арительный просмотр, Вид<br />
.Образец или щелчком по кнопке . Кроме с<strong>в</strong>язанных объекто<strong>в</strong>, <strong>в</strong> отчеты часто<br />
доба<strong>в</strong>ляют присоединенные рамки объекто<strong>в</strong> для отображаемых полей типа объекто<strong>в</strong> OLE,<br />
с<strong>в</strong>ободные рамки объекто<strong>в</strong> для отображения прочих объекто<strong>в</strong> OLE, линии и прямоугольники<br />
декорати<strong>в</strong>ного оформления, переключатели и флажки для отображения значений логических<br />
полей, кнопки для запуска макросо<strong>в</strong> и процедур. Сетка <strong>в</strong> окне Конструктора упрощает<br />
задание положения каждого элемента упра<strong>в</strong>ления на странице. Размеры <strong>в</strong>ыделенных<br />
элементо<strong>в</strong> изменяются перемещением их маркеро<strong>в</strong>. Смещением границ раздело<strong>в</strong> уточняются<br />
расстояния между ними. Высота каждого раздела отчета регулируется перемещением<br />
указателем мыши его нижней границы. Ширина <strong>в</strong>сех раздело<strong>в</strong> одно<strong>в</strong>ременно<br />
устана<strong>в</strong>ли<strong>в</strong>ается посредст<strong>в</strong>ом перемещения указателем мыши пра<strong>в</strong>ой границы. Воздейст<strong>в</strong>уя<br />
на пра<strong>в</strong>ый нижний угол, удобно масштабиро<strong>в</strong>ать <strong>в</strong>ысоту и ширину раздела одно<strong>в</strong>ременно.<br />
Оформление может копиро<strong>в</strong>аться и изменяться а<strong>в</strong>тоформатиро<strong>в</strong>анием, как это делалось при<br />
создании форм. Из меню Вста<strong>в</strong>ка .Номер страницы задается формат и расположение<br />
номеро<strong>в</strong>. Поля отчета можно заполнять не только содержимым таблиц, но также<br />
<strong>в</strong>ыражениями, например: =[Количест<strong>в</strong>о] * [Цена] или =Sum([Количест<strong>в</strong>о] * [Цена]).<br />
В качест<strong>в</strong>е титульного листа отчета <strong>в</strong>озможно использо<strong>в</strong>ание документа Word или<br />
графического файла. Для этого <strong>в</strong>ыделяется раздел Заголо<strong>в</strong>ок отчета, и из меню Вста<strong>в</strong>ка<br />
.Объект <strong>в</strong>ыбирается нужный документ. Чтобы напечатать титульный лист на отдельной<br />
странице, с<strong>в</strong>ойст<strong>в</strong>у Конец страницы Заголо<strong>в</strong>ка отчета придается значение После раздела.<br />
Размеры полей и колонтитуло<strong>в</strong> отчета устана<strong>в</strong>ли<strong>в</strong>аются <strong>в</strong> меню Файл .Макет страницы. А<br />
<strong>в</strong>кладка Формы/отчеты меню Сер<strong>в</strong>ис .Параметры упра<strong>в</strong>ляет исходным шаблоном<br />
формируемого документа<br />
Макросы<br />
Выполнение по<strong>в</strong>торяющихся задач а<strong>в</strong>томатизируется с помощью макросо<strong>в</strong>. Макрос<br />
указы<strong>в</strong>ает на языке макрокоманд, какие дейст<strong>в</strong>ия следует <strong>в</strong>ыполнить <strong>в</strong> <strong>Access</strong> <strong>в</strong> от<strong>в</strong>ет на то<br />
или иное событие.<br />
При наличии открытой базы данных любая группа ее макросо<strong>в</strong> откры<strong>в</strong>ается с <strong>в</strong>кладки<br />
Макросы, доступной через меню Вид .Объекты базы данных .Макросы. Для открытия<br />
окна макроса <strong>в</strong>ыделяют имя группы и нажимают кнопку Конструктор. Окно разделено на<br />
четыре столбца — Имя макроса, Усло<strong>в</strong>ие, Макрокоманда и Примечание, причем пер<strong>в</strong>ые<br />
д<strong>в</strong>а из них могут оказаться скрытыми <strong>в</strong> меню Вид .Имена макросо<strong>в</strong> и Вид .Усло<strong>в</strong>ия или под<br />
кнопками панели инструменто<strong>в</strong>. Использо<strong>в</strong>ание столбца Имя макроса необязательно,<br />
если <strong>в</strong> окне находится <strong>в</strong>сего один макрос. В этом случае имя окна со<strong>в</strong>падает с именем<br />
макроса. Если же окно содержит несколько макросо<strong>в</strong>, то каждый макрос <strong>в</strong> нем обладает<br />
уникальным именем, определяемым программистом. Как пра<strong>в</strong>ило, каждая такая группа<br />
описы<strong>в</strong>ает процесс обработки событий одного объекта базы данных: формы или отчета. Ее
33<br />
назначение комментируется <strong>в</strong> столбце<br />
Примечание, который <strong>Access</strong> игнорирует при<br />
<strong>в</strong>ыполнении.<br />
Каждый макрос ассоциируется с группой<br />
макрокоманд, обрабаты<strong>в</strong>аемых одна за другой,<br />
пока <strong>Access</strong> не обнаружит строку с но<strong>в</strong>ым<br />
именем или не достигнет последней строки окна<br />
макроса. Пустые строки игнорируются, поэтому<br />
такими строками принято разделять макросы <strong>в</strong><br />
группе для удобст<strong>в</strong>а их чтения и пра<strong>в</strong>ки. Все<br />
макрокоманды макроса перечислены <strong>в</strong> столбце<br />
Макрокоманда. После <strong>в</strong>ыделения любой из них<br />
<strong>в</strong> нижней части окна раскры<strong>в</strong>ается список<br />
аргументо<strong>в</strong>, уточняющих область значений и<br />
особенности <strong>в</strong>ыполнения.<br />
В столбец Усло<strong>в</strong>ие может быть занесено<br />
усло<strong>в</strong>ное <strong>в</strong>ыражение, определяющее<br />
необходимость <strong>в</strong>ыполнения макрокоманды<br />
соот<strong>в</strong>етст<strong>в</strong>ующей строки. Макрокоманда<br />
запускается только <strong>в</strong> случае <strong>в</strong>ыполнения<br />
усло<strong>в</strong>ия. В проти<strong>в</strong>ном случае <strong>Access</strong> ее<br />
пропускает. Если одним усло<strong>в</strong>ием надо<br />
запустить несколько макрокоманд, <strong>в</strong><br />
последующих строках столбца Усло<strong>в</strong>ие<br />
располагают многоточие (…). Если запуск<br />
макрокоманды нужно произ<strong>в</strong>ести только тогда,<br />
когда усло<strong>в</strong>ие не <strong>в</strong>ыполняется, используется<br />
макрокоманда Остано<strong>в</strong>итьМакрос. Всякий раз,<br />
когда усло<strong>в</strong>ие не <strong>в</strong>ыполняется, <strong>Access</strong> переходит<br />
к <strong>в</strong>ыполнению пер<strong>в</strong>ой из макрокоманд, проти<strong>в</strong><br />
которой нет многоточия. Макрокоманда<br />
ЗапускМакроса используется для организации<br />
цикло<strong>в</strong>. Ее аргументы указы<strong>в</strong>ают число<br />
по<strong>в</strong>торений или их усло<strong>в</strong>ия.<br />
Для документиро<strong>в</strong>ания макросо<strong>в</strong> создается<br />
отчет из меню Сер<strong>в</strong>ис .Анализ .Архи<strong>в</strong>ариус.<br />
Перед программиро<strong>в</strong>анием макроса<br />
назначается событие, реакцию на которое он<br />
должен описы<strong>в</strong>ать. Каждое из перечисленных<br />
ниже событий характеризует изменение<br />
состояния объекта, сопро<strong>в</strong>ождаемое откликом<br />
Windows. В частности, события кла<strong>в</strong>иатуры и<br />
мыши сопро<strong>в</strong>ождаются преры<strong>в</strong>аниями<br />
процессо<strong>в</strong>. События окна с<strong>в</strong>язаны с открытием и<br />
закрытием форм и отчето<strong>в</strong>. События фокуса<br />
определяют акти<strong>в</strong>ность или пасси<strong>в</strong>ность<br />
информационного объекта. События данных<br />
происходят при их изменении, а события<br />
фильтра — при отборе. События печати<br />
характеризуют режимы печати и просмотра<br />
отчето<strong>в</strong>. События ошибок и таймера передаются<br />
<strong>в</strong> формы и отчеты.<br />
Событие<br />
Имя<br />
События мыши и кла<strong>в</strong>иатуры<br />
Нажатие кнопки Click<br />
Д<strong>в</strong>ойное нажатие DblClick<br />
кнопки<br />
Кнопка <strong>в</strong>низ MouseDown<br />
Кнопка <strong>в</strong><strong>в</strong>ерх MouseUp<br />
Перемещение MouseMove<br />
указателя<br />
Кла<strong>в</strong>иша <strong>в</strong>низ KeyDown<br />
Кла<strong>в</strong>иша <strong>в</strong><strong>в</strong>ерх KeyUp<br />
Нажатие кла<strong>в</strong>иши KeyPress<br />
События окна<br />
Открытие<br />
Open<br />
Загрузка<br />
Load<br />
Выгрузка<br />
UnLoad<br />
Закрытие<br />
Close<br />
Изменение размера Resize<br />
События данных<br />
Вход<br />
Enter<br />
Получение фокуса GetFocus<br />
Выход<br />
Exit<br />
Потеря фокуса<br />
LostFocus<br />
Включение<br />
Activate<br />
Отключение<br />
Deactivate<br />
Текущая запись Current<br />
До <strong>в</strong>ста<strong>в</strong>ки<br />
BeforeInsert<br />
После <strong>в</strong>ста<strong>в</strong>ки AfterInsert<br />
Удаление<br />
Delete<br />
До подт<strong>в</strong>ерждения BeforeDelConfirm<br />
Del<br />
После<br />
AfterDelConfirm<br />
подт<strong>в</strong>ерждения<br />
До обно<strong>в</strong>ления BeforeUpdate<br />
После обно<strong>в</strong>ления AfterUpdate<br />
Изменение<br />
Change<br />
При обно<strong>в</strong>лении Updated<br />
Отсутст<strong>в</strong>ие <strong>в</strong> списке NotInList<br />
Фильтрация Filter<br />
Применение ApplyFilter<br />
фильтра<br />
События печати и таймера<br />
Форматиро<strong>в</strong>ание Format<br />
Печать<br />
Print<br />
Воз<strong>в</strong>рат<br />
Retreat<br />
Отсутст<strong>в</strong>ие данных NoDate<br />
Страница<br />
Page<br />
Таймер<br />
Timer
34<br />
Для создания макроса <strong>в</strong> открытом окне<br />
Макрокоманда<br />
Имя<br />
базы данных на <strong>в</strong>кладке Макрос<br />
Копиро<strong>в</strong>атьОбъект CopyObject<br />
нажимается кнопка Создать, либо на<br />
Переимено<strong>в</strong>ать Rename<br />
панели инструменто<strong>в</strong> под кнопкой УдалитьОбъект DeleteObject<br />
<strong>в</strong>ыбирается Макрос. Проще же ОткрытьТаблицу OpenTable<br />
использо<strong>в</strong>ать Построитель макросо<strong>в</strong> <strong>в</strong> окне ОткрытьЗапрос OpenQuery<br />
Конструктора форм или Конструктора ОткрытьФорму OpenForm<br />
отчето<strong>в</strong>. Для этого <strong>в</strong>ыделяется нужный ОткрытьОтчет<br />
OpenReport<br />
элемент упра<strong>в</strong>ления, <strong>в</strong>ыбирается меню Вид. ОткрытьМодуль OpenModule<br />
Закрыть<br />
Close<br />
С<strong>в</strong>ойст<strong>в</strong>а или нажимается кнопка и <strong>в</strong><br />
откры<strong>в</strong>шемся окне диалога <strong>в</strong>ыбирается<br />
Сохранить<br />
Save<br />
<strong>в</strong>кладка События. На ней <strong>в</strong>ыполняется<br />
Печать<br />
Print<br />
ВыделитьОбъект SelectObject<br />
щелчок на нужном событии и кнопкой<br />
Обно<strong>в</strong>итьОбъект RepaintObject<br />
окна диалога или на панели Обно<strong>в</strong>ление<br />
Require<br />
инструменто<strong>в</strong> откры<strong>в</strong>ается Построитель ПоказатьВсеЗаписи ShowAllRecords<br />
макросо<strong>в</strong>. Можно также создать но<strong>в</strong>ое окно УказатьЗначение SetValue<br />
макроса через меню Файл .Сохранить как КомандаМеню<br />
DoMenuItem<br />
или кла<strong>в</strong>ишей . Для дополнения ЗапускЗапросаSQL RunSQL<br />
но<strong>в</strong>ым макросом сущест<strong>в</strong>ующей группы, ее<br />
ЗапускМакроса RunMacro<br />
откры<strong>в</strong>ают и, отступи<strong>в</strong> строку от<br />
ЗапускПрограммы RunCode<br />
предыдущего макроса, <strong>в</strong><strong>в</strong>одят имя но<strong>в</strong>ого.<br />
ЗапускПриложения RunApp<br />
Затем со следующей строки <strong>в</strong><strong>в</strong>одятся<br />
Остано<strong>в</strong>итьМакрос StopMacro<br />
макрокоманды, их аргументы, усло<strong>в</strong>ия и<br />
Остано<strong>в</strong>итьВсеМакросы StopAllMacros<br />
примечания. Из меню Файл .Сохранить<br />
или одноименной кнопкой панели<br />
Выход<br />
Quit<br />
инструменто<strong>в</strong> <strong>в</strong>ыполняется сохранение ОтменитьСобытие ConcelEvent<br />
группы, после чего макрос испыты<strong>в</strong>ается. ПрименитьФильтр ApplyFilter<br />
Макрокоманды, из которых СледующаяЗапись FindNext<br />
формируются макросы, перечислены <strong>в</strong> НайтиЗапись<br />
FindRecord<br />
таблице.<br />
КЭлементуУпра<strong>в</strong>ления GoToControl<br />
Для <strong>в</strong>ыбора доступной макрокоманды НаЗапись<br />
GoToRecord<br />
откры<strong>в</strong>ается список <strong>в</strong> столбце НаСтраницу<br />
GoToPage<br />
Макрокоманда либо нажимается или Вы<strong>в</strong>естиВФормате OutputAs<br />
. Если <strong>в</strong> качест<strong>в</strong>е аргумента Отпра<strong>в</strong>итьОбъект SendObject<br />
макрокоманды необходимо <strong>в</strong><strong>в</strong>ести имя Преобразо<strong>в</strong>атьБазуДан TransferDatabase<br />
объекта базы данных, его можно не Преобразо<strong>в</strong>атьЭлТабл TransfSpreadSheet<br />
<strong>в</strong>печаты<strong>в</strong>ать, а <strong>в</strong>ыбрать из Преобразо<strong>в</strong>атьТекст TransferText<br />
раскры<strong>в</strong>ающегося списка. Некоторые Доба<strong>в</strong>итьМеню AddMenu<br />
макросы удобно <strong>в</strong><strong>в</strong>одить перетаски<strong>в</strong>анием <strong>в</strong> ЗадатьКомандуМеню SetMenuItem<br />
окно макроса объекта базы данных: Сигнал<br />
Beep<br />
таблицы, запроса, формы, отчета. При этом ПанельИнструменто<strong>в</strong> ShowToolBar<br />
<strong>Access</strong> <strong>в</strong>ста<strong>в</strong>ляет строку над ячейкой, на КомандыКла<strong>в</strong>иатуры SendKeys<br />
которой опущена кнопка мыши, <strong>в</strong><strong>в</strong>одит ПесочныеЧасы Haurglass<br />
макрокоманду открытия окна объекта и<br />
Вы<strong>в</strong>одНаЭкран Echo<br />
а<strong>в</strong>томатически определяет его параметры.<br />
Устано<strong>в</strong>итьСообщение SetWarnings<br />
При перетаски<strong>в</strong>ании <strong>в</strong> столбец другого<br />
Сообщение<br />
MsgBox<br />
макроса <strong>в</strong><strong>в</strong>одится команда ЗапускМакроса с<br />
указанием его имени <strong>в</strong> строке аргумента.<br />
Если же аргумент описы<strong>в</strong>ается <strong>в</strong>ыражением,<br />
его можно описать построителем <strong>в</strong>ыражений под соот<strong>в</strong>етст<strong>в</strong>ующей кнопкой .
35<br />
Для удаления строки макроса <strong>в</strong>ыполняется щелчок <strong>в</strong> столбце <strong>в</strong>ыделения <strong>в</strong> ле<strong>в</strong>ой части<br />
окна макросо<strong>в</strong> и нажимается кнопка на панели инструменто<strong>в</strong>, удаляющая строку. Чтобы<br />
доба<strong>в</strong>ить строку, указатель располагается <strong>в</strong> следующей строке и нажимается кла<strong>в</strong>иша<br />
или соот<strong>в</strong>етст<strong>в</strong>ующая кнопка панели инструменто<strong>в</strong>. Для <strong>в</strong>ста<strong>в</strong>ки строк <strong>в</strong>место<br />
сущест<strong>в</strong>ующих, они пред<strong>в</strong>арительно <strong>в</strong>ыделяются.<br />
Каждая макрокоманда реализует определенную операцию. Макрокоманда<br />
КомандаКла<strong>в</strong>иатуры имитирует нажатие кла<strong>в</strong>иш: {BACKSPACE}, {BS}, {BKSP};<br />
{CAPSLOCK}; {CLEAR}; {DELETE}, {DEL}; {END}; {ENTER}, {~}; {ESCAPE}, {ESC};<br />
{HELP}; {HOME}; {INSERT};{Fn} (n = 1,.. 16); {DOWN}; {LEFT}; {PGDN}; {PGUP}; {TAB};<br />
{UP}. Вместо <strong>в</strong><strong>в</strong>одится +, <strong>в</strong>место печатают ^, а <strong>в</strong>место ста<strong>в</strong>ят %. Чтобы<br />
послать кла<strong>в</strong>иатурную комбинацию несколько раз, доба<strong>в</strong>ляется число ее по<strong>в</strong>торений,<br />
например {^DOWN 3}. Для а<strong>в</strong>томатического обно<strong>в</strong>ления данных с помощью макросо<strong>в</strong><br />
используют макрокоманды Обно<strong>в</strong>итьОбъект, Обно<strong>в</strong>ление или ПоказатьВсеЗаписи.<br />
Макрокоманда ЗадатьЗначение используется для инициализации элементо<strong>в</strong> таблиц,<br />
упра<strong>в</strong>ляющих объекто<strong>в</strong>, с<strong>в</strong>ойст<strong>в</strong> формы или отчета.<br />
Макрокоманда ЗапускЗапросаSQL запускает запрос на изменение с помощью<br />
соот<strong>в</strong>етст<strong>в</strong>ующего <strong>в</strong>ыражения SQL длиной до 256 сим<strong>в</strong>оло<strong>в</strong>. Кроме того, эта макрокоманда<br />
поз<strong>в</strong>оляет запустить упра<strong>в</strong>ляющий запрос. Для запуска <strong>в</strong> макросе запроса на <strong>в</strong>ыборку или<br />
перекрестного запроса следует с помощью аргумента Режим макрокоманды<br />
ОткрытьЗапрос открыть сущест<strong>в</strong>ующий запрос на <strong>в</strong>ыборку или перекрестный запрос <strong>в</strong><br />
режиме таблицы. Эта же макрокоманда поз<strong>в</strong>оляет <strong>в</strong>ыполнить сохраненные запросы на<br />
изменение и запросы SQL.