Уникальное поле — это поле, значения в котором не могут повторяться

Если из таблицы Прокат известно, что клиент Новиков просрочил возврат взятого диска, то он должен уплатить штраф. Но в таблице Клиенты фирмы может быть несколько разных Новиковых, и компьютер не разберется, кто же из них должен платить штраф. Это означает, что поле Фамилия не является уникальным и потому его нельзя использовать для связи между таблицами.

Поле номера телефона — более удачный кандидат на звание уни­кального поля, но, как вы понимаете, и одним телефоном могут пользоваться несколько разных людей.

Если ни одно поле таблицы не приемлемо в качестве уникального, его можно создать искусственно

Скорее всего, поле окажется уникальным, и проблем со связями между таблицами не возникнет, но было бы неплохо, если бы компьютер мог просигнализировать в том случае, если вдруг записи в этом поле повторятся. Для этого существует поня­тие ключевое поле. При создании структуры таблиц одно поле (или одну комбинацию полей) можно назначить ключевым. С ключевыми полями компьютер работает особо. Он проверяет их уникальность и быстрее выполняет сортировку по таким полям. Ключевое поле — очевидный кандидат для создания связей. Иногда ключевое поле называют первичным ключом.

Объекты Access 9x

Исходное окно Access 9x отличается простотой и лаконичностью. Шесть вкладок этого окна представляют шесть видов объектов, с которыми работает программа.

Таблицы — основные объекты базы данных. С ними мы уже зна­комы. В них хранятся данные. Реляционная база данных может иметь много взаимосвязанных таблиц.

Запросы — это специальные структуры, предназначенные для обработки данных базы. С помощью запросов данные упорядо­чивают, фильтруют, отбирают, изменяют, объединяют, то есть обрабатывают.

Формы — это объекты, с помощью которых в базу вводят новые данные или просматривают имеющиеся.

Отчеты — это формы «наоборот». С их помощью данные выдают на принтер в удобном и наглядном виде.

Макросы — это макрокоманды. Если какие-то операции с базой производятся особенно часто, имеет смысл сгруппировать несколь­ко команд в один макрос и назначить его выделенной комбинации клавиш.

Модули — это программные процедуры, написанные на языке Visual Basic. Если стандартных средств Access не хватает для удовлетворения особо изощренных требований заказчика, про­граммист может расширить возможности системы, написав для этого необходимые модули.

 

Особенности таблиц баз данных

Прежде чем мы приступим к изучению приемов работы с табли­цами баз данных, надо обратить внимание на одну особенность всех баз данных, связанную с сохранением информации. Тех, кто привык работать с другими классами программ, она поначалу обескураживает.

Обычно с документом в программах можно делать все что угодно, " пока не настала пора его сохранять. Испортив неаккуратными дей­ствиями исходный документ, можно отказаться от сохранения и вернуться к работе с прежней копией. В базах данных это не так.

Таблицы баз данных не являются самостоятельными документами. Сама база — это документ. Ей соответствует файл на диске, и мы можем сделать его копию. Структура таблиц — тоже документ. В некоторых системах она имеет отдельный файл, а в некоторых (например в Access 9x) такого файла нет, но структура таблиц входит в состав общего файла базы данных наряду с запросами, формами, отчетами и другими объектами. При изменении струк­туры таблицы система управления базой данных всегда выдает запрос на сохранение изменений.

Но содержание таблиц — это совсем другое дело. Его нельзя сохранить принудительной командой или, наоборот, отказаться от его сохранения. Все изменения в таблицах сохраняются авто­матически в режиме реального времени. Режим реального времени означает, что, пока мы работаем с таблицей, происходит ее непре­рывное сохранение. Как только заканчивается ввод данных в одно поле и происходит переход к следующему полю, данные немед­ленно записываются на жесткий диск.

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

Эта особенность систем управления базами данных требует аккурат­ного отношения к работе с таблицами. Для экспериментов надо создавать отдельные копии базы или таблиц и работать с ними.

Создание связей между таблицами

Основные преимущества систем управления базами данных реализуются при работе не с отдельными таблицами, а с группами взаимосвязанных таблиц. Для создания связей между таблицами СУБД Access 9x имеет специальное диалоговое окно, которое называется Схема данных.

1. Окно Схема данных открывают щелчком на одноименной кнопке панели инструментов или командой Сервис > Схема данных.

2. Если ранее никаких связей между таблицами базы не было, то при открытии окна Схема данных одновременно открывается окно Добавление таблицы, в котором можно выбрать нужные таблицы для включения в структуру межтабличных связей.

3. Если связи между таблицами уже были заданы, то для введения в схему данных новой таблицы надо щелкнуть правой кнопкой мыши на схеме данных и в контекстном меню выбрать пункт Добавить таблицу.

4. Введя в схему данных все таблицы, которые надо связать, можно приступать к созданию связей между полями таблиц.

5. Связь между полями устанавливают путем перетаскивания имени поля из одной в таблицы в другую на соответствующее ему связанное поле.

6. После перетаскивания открывается диалоговое окно Связи, в котором можно задать свойства образующейся связи.

7. Включение флажка Обеспечение условия целостности данных позволяет защититься от случаев удаления записей из одной таблицы, при которых связанные с ними данные других таблиц останутся без связи.

Чтобы условие целостности могло существовать, поле основной таблицы должно обязательно быть ключевым и оба поля должны иметь одинаковый тип.

8. Флажки Каскадное обновление связанных полей и Каскадное удаление связанных записей обеспечивают одновременное обновление или удаление данных во всех подчиненных таблицах при их изменении в главной таблице. Если клиент Соколова выйдет замуж и изменит фамилию на Воронову, то придется внести изменение только в поле Фамилия таблицы Клиенты. В прочих таблицах изменения произойдут автоматически.

10.Запросы

Предположим, что на крупном предприятии есть огромная база данных Кадры, содержащая подробнейшие сведения о каждом сотруднике. Кроме формальной информации база может содержать и конфиденциальную, например сведения о заработной плате. Вся эта информация хранится в базовых таблицах.

Работать с базой данных Кадры могут разные подразделения пред­приятия, и всем им нужны разные данные. Не все то, что положено знать службе безопасности предприятия, должно быть доступно главному врачу, и наоборот. Поэтому доступ пользователей к базовым таблицам закрывают.

Для доступа к данным есть другое, гораздо более гибкое и удобное средство — запросы. Для одной и той же таблицы можно создать множество разных запросов, каждый из которых сможет извле­кать из таблицы лишь малую часть информации, но именно ту часть, которая в данный момент необходима. У сотрудника бухгал­терии должен быть запрос, который позволит определить сколько дней в году по болезни отсутствовал тот или иной работник, но у него не должно быть запроса, позволяющего узнать, чем он болел и где лечился, а у главного врача такой запрос быть должен.

В результате работы запроса из общей исходной базы формируется результирующая таблица, содержащая часть общей информации, соответствующую запросу.

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

Результаты обработки сказываются только на содержании результирующей таблицы, а она имеет временный характер, и иногда ее даже называют моментальным снимком.

И еще одним ценным свойством запросов является их способ­ность выполнять итоговые вычисления. Запрос может не только выдать результирующую таблицу, но и найти, например, сред­нее (наибольшее, наименьшее, суммарное и т. п.) значение по какому-то полю.

Запросы на выборку

Существует немало различных видов запросов, но самые простые из них и, к тому же, используемые наиболее часто — это запросы на выборку. С них и принято начинать знакомство с созданием запросов.

Цель запроса на выборку состоит в создании результирующей таблицы, в которой отображаются только нужные по условию запроса данные из базовых таблиц.

Как и другие объекты Access 9x, запросы можно создавать авто­матически с помощью Мастера или вручную. И, как обычно, на этапе обучения лучше не пользоваться Мастером, чтобы почувст­вовать работу с запросами «кончиками пальцев».

Для создания запросов к базам данных существует специальный язык запросов. Он называется SQL (Structured Query Language — структурированный язык запросов). К счастью, те, кто пользуются СУБД Access 9x, могут позволить себе не изучать этот язык. Вмес­то него в Access 9x есть простое средство, которое называется бланком запроса по образцу. С его помощью можно сформировать запрос простыми приемами, перетаскивая элементы запроса между окнами.

Выбор базовых таблиц для запроса

1. Создание запроса к базе начинается с открытия вкладки Запросы диалогового окна База данных и щелчка на кнопке Создать.

2. В открывшемся диалоговом окне Новый запрос задают ручной режим создания запроса выбором пункта Конструктор.

3. Создание запроса в режиме Конструктора начинают с выбора тех таблиц базы, на которых будет основан запрос.

4. Выбор таблиц выполняют в диалоговом окне Добавление таб­лицы. В нем отображаются все таблицы, имеющиеся в базе.

5. Выбранные таблицы заносят в верхнюю половину бланка запро­са по образцу щелчком на кнопке Добавить.

6. В окне Добавление таблицы обратите внимание на наличие трех вкладок: Таблицы, Запросы, Запросы и таблицы. Они говорят о том, что запрос не обязательно основывать только на таблицах. Если ранее уже был создан запрос, то новый запрос можно основывать и на нем.

Заполнение бланка запроса по образцу

Бланк запроса по образцу — удивительно изящное и удобное средство создания запросов. Наверное, оно в немалой степени способствует тому успеху, который СУБД Access 9x имеет у потребителей.

1. Бланк запроса по образцу имеет две панели. На верхней панели расположены списки полей тех таблиц, на которых основыва­ется запрос.

2- Строки нижней панели определяют структуру запроса, то есть структуру результирующей таблицы, в которой будут содер­жаться данные, полученные по результатам запроса.

3. Строку Поле заполняют перетаскиванием названий полей из таблиц в верхней части бланка. Каждому полю будущей результирующей таблицы соответствует один столбец бланка запроса по образцу.

4. Строка Имя таблицы заполняется автоматически при перетас­кивании поля.

5. Если щелкнуть на строке Сортировка, появится кнопка рас­крывающегося списка, содержащего виды сортировки. Если назначить сортировку по какому-то полю, данные в результи­рующей таблице будут отсортированы по этому полю.

6. Бывают случаи, когда поле должно присутствовать в бланке за­проса по образцу, но не должно отображаться в результирую­щей таблице. В этом случае можно запретить его вывод на экран, сбросив соответствующий флажок.

7. Самая интересная строка в бланке запроса по образцу называ­ется Условие отбора. Именно здесь и записывают тот критерий, по которому выбирают записи для включения в результирую­щую таблицу. По каждому полю можно создать свое условие отбора. В нашем примере назначены два условия отбора: по весу игрока (более 80 кг) и по росту (менее 190 см).

8. Запуск запроса выполняют щелчком на кнопке Вид. При запус­ке образуется результирующая таблица.

9. Чтобы выйти из результирующей таблицы и вернуться к созда­нию запроса в бланке запроса по образцу, нужно еще раз щелкнуть на кнопке Вид.

Запросы с параметром

Выше мы рассмотрели работу запроса, выбирающего вратарей футбольных клубов, чей рост меньше заданного, а вес больше заданного. И максимальный рост, и минимальный вес были жестко введены в бланк запроса по образцу, и обычный пользо­ватель базы, не имевший отношения к ее созданию, не может изменить эти параметры.

Во многих случаях пользователю надо предоставить возможность выбора того, что он хочет найти в таблицах базы данных. Для это­го существует специальный вид запроса — запрос с параметром.

1. Предположим, что в базе данных есть таблица, в которой содер­жатся все результаты чемпионатов мира по футболу. Наша задача: создать запрос, с помощью которого пользователь может определить, в каком году та или иная команда занимала первое место, причем выбор этой команды — его личное дело.

2. Для этой цели служит специальная команда языка SQL, которая выглядит так:

LIKE [...]

В квадратных скобках можно записать любой текст, обращенный к пользователю, например:

LIKE [Введите название страны]

3. Команду LIKE надо поместить в строке Условие отбора и в том поле, по которому производится выбор. В нашем случае это столбец сборных, занимавших первые места в чемпионатах мира по футболу.

4. После запуска запроса открывается диалоговое окно, в котором пользователю предлагается ввести параметр.

5. Если в качестве параметра ввести слово Бразилия, то выдается результирующая таблица, содержащая записи по тем чемпио­натам, когда сборная Бразилии становилась чемпионом.

6. Если в качестве параметра ввести слово Италия, то результирую­щая таблица будет иной.

Разумеется, в нашей небольшой таблице и без запроса нетрудно найти сборные, занимавшие призовые места. Но без запроса не обойтись, если в базе содержатся сотни тысяч записей, причем расположенные в разных таблицах.

Вычисления в запросах

Взгляните на таблицу результативности команд в финальных играх чемпионатов мира по футболу. В ней есть данные о том, сколько игр сыграла та или иная команда, есть и данные о том, сколько она забила мячей, но нет таких сведений, как, например, среднее число голов, забиваемых в одной встрече. Однако такое поле можно создать с помощью запроса. Поле, содержимое кото­рого является результатом расчета по содержимому других полей, называется вычисляемым полем.

/~1 Прежде чем мы научимся создавать и использовать вычисляемые ^ поля, следует обратить внимание на то, что вычисляемое поле существует только в результирующей таблице. В исходных (базовых) таблицах такое поле не создается, и при работе обычного запроса таблицы не изменяются. Не правда ли, это очень разумно? Каждый, кто обраща­ется к базе, может с помощью запросов как угодно манипулировать данными и получать любые результаты, но при этом исходные таб­лицы остаются неизменно одинаковыми для всех пользователей.

1. Для создания запроса, производящего вычисления, служит тот же самый бланк запроса по образцу. Разница только в том, что в одном из столбцов вместо имени поля записывают формулу. В формулу входят заключенные в квадратные скобки названия полей, участвующих в расчете, а также знаки математических операций, например, так:

2. В узкий столбец непросто записать длинную формулу, но если нажать комбинацию клавиш SHIFT+F2, то открывается вспо­могательное диалоговое окно, которое называется Область ввода. В нем можно ввести сколь угодно длинную формулу, а потом щелчком на кнопке ОК перенести ее в бланк запроса по образцу.

3. Если включить отображение вычисляемого поля, результаты расчетов будут выдаваться в результирующей таблице.

4. Ничто не мешает сделать вычисляемое поле полем сортировки, чтобы не только получать новые результаты, но и анализиро­вать их. Посмотрите, как изменяется положение российской сборной после сортировки по вычисляемому полю.

 

Итоговые запросы

Запросы позволяют не только отбирать нужную информацию .щ' таблиц и обрабатывать ее путем создания новых (вычисляемых) полей, но и производить так называемые итоговые вычисления.

Примером итогового вычисления может служить сумма всех зна­чений в какой-то группе записей или их среднее значение, хотя кроме суммы и среднего значения существуют и другие итоговые функции.

Поскольку итоговые функции для одной записи не имеют смысла и существуют только для группы записей, то предварительно записи надо сгруппировать по какому-либо признаку.

1. Рассмотрим работу салона, занимающегося продажей подер­жанных автомобилей. Результаты работы салона за последнюю неделю содержатся в таблице. В ней можно выделить несколько групп по разному признаку. Записи можно сгруппировать по моделям автомобилей (ВАЗ — отдельно и БМВ — отдельно) или по году выпуска (1989, 1993 и т. д.). Для каждой из групп можно провести итоговое вычисление по полю Цена.

2. Итоговые запросы создают на основе известного нам бланка запроса по образцу, только теперь в нем появляется дополни­тельная строка — Группировка.

3. Для введения этой строки в бланк надо щелкнуть на кнопке Групповые операции на панели инструментов программы Access 9x.

Далее все происходит очень просто.

4. В тех полях, по которым производится группировка, надо уста­новить (или оставить) функцию Группировка.

5. В тех полях, по которым следует провести итоговое вычисле­ние, надо в строке Группировка раскрыть список и выбрать одну из нескольких итоговых функций.

6. Щелчок на кнопке Вид запускает запрос и выдает результирую­щую таблицу с необходимыми итоговыми данными.

7. В строке Группировка можно указать лишь одну итоговую функцию. А как быть, если надо найти и сумму, и среднее, и максимальное значение, и еще что-то? Решение простое: одно и то же поле можно включить в бланк запроса по образцу несколько раз.

Запросы на изменение

Выше мы говорили о том, что все виды запросов на выборку созда­ют временные результирующие таблицы. Базовые таблицы при этом не изменяются. Тем не менее, специально для разработчиков баз данных существует особая группа запросов, которые назы­ваются запросами на изменение. Они позволяют автоматически создавать новые таблицы или изменять уже имеющиеся. Логика использования запросов на изменение такая:

• создается запрос на выборку, который отбирает данные из раз­ных таблиц или сам создает новые данные путем вычислений;

• после запуска запроса образуется временная результирующая таблица;

• данные из этой временной таблицы используют для создания новых таблиц или изменения существующих.

Существует несколько видов запросов на изменение. Самый про­стой и понятный — это запрос на создание таблицы. Вернемся к примеру с расчетом среднего количества забитых мячей.

1. Предположим, что разработчик таблицы Итоги по командам захотел включить в нее поле Результативность. Конечно, он может рассчитать среднее количество мячей, забитых за игру каждой командой, но если ввести в таблицу такое поле, то его придется заполнять его вручную. Для таблиц, содержащих много записей, это решение неприемлемо.

2. Проще создать запрос на выборку, в который войдут все поля базовой таблицы плюс новое вычисляемое поле.

3. Щелчок на кнопке Вид позволяет убедиться, что запрос рабо­тает как положено и создает результирующую таблицу, более полную чем базовая. Теперь можно дать команду на создание новой базовой таблицы, равной результирующей.

4. Эта команда находится в меню Запрос, которое доступно только в режиме Конструктора.

5. В том же меню присутствуют команды для создания запросов на обновление данных, на добавление записей и на удаление записей. Все они относятся к запросам на изменение и работают анало­гично, изменяя базовые таблицы в соответствии с данными результирующих таблиц.

 

11. Формы

Обычно разработчик базы данных создает структуру таблиц и запросов, но заполнением таблиц информацией он не занимается. Для этого есть специальные кадры (обычно малоквалифициро­ванные), выполняющие функции наборщиков. Для упрощения их труда разработчик базы может подготовить специальные объек­ты — формы.

Форма представляет собой некий электронный бланк, в котором имеются поля для ввода данных. Наборщик вводит данные в" эти поля, и данные автоматически заносятся в таблицы базы.

Зачем нужны формы?

Данные в таблицу можно вносить и без помощи каких-либо форм, но существуют по крайней мере четыре причины, которые делают формы незаменимым средством ввода данных в базу.

Во-первых, малоквалифицированному персоналу нельзя предо­ставлять доступ к таблицам (самому ценному из того, что есть в базе). Представьте, что будет, если новичок «наведет порядок» в таблице банка, хранящей расчетные счета клиентов.

Во-вторых, разные люди могут иметь разные права доступа к информации, хранящейся в таблицах. Например, один имеет право вводить только имена и адреса клиентов, другой — только номера их расчетных счетов, а третий — только денежные суммы, хранящиеся на этих счетах. Сговор между этими людьми должен быть исключен. Для ввода данных им предоставляют разные формы, хотя данные из форм могут поступать в одну таблицу.

В-третьих, ввод данных в таблицу — чрезвычайно утомительное занятие. Уже после нескольких часов работы люди делают ошибки. Ввод данных в форму проще. Здесь многое можно автоматизиро­вать. К тому же элементы управления форм настраивают таким образом, чтобы при вводе данных выполнялась их первичная проверка.

И наконец, в-четвертых, надо вспомнить, откуда берется информа­ция для баз данных. Как правило, ее берут из бумажных бланков (анкет, заявлений, накладных, счетов, описей, ведомостей, спра­вок и т. п.). Экранные формы можно сделать точной копией бумажных бланков, с которых происходит ввод данных. Благодаря этому во много раз уменьшается количество ошибок при вводе и значительно снижается утомляемость персонала.

 

Структура форм

Создавая формы автоматическими средствами, можно не заду­мываться над их структурой, но при разработке формы вручную со структурой приходится иметь дело.

Структуру формы составляют ее разделы, а разделы содержат эле­менты управления.

Разделы формы

1. Самый простой способ познакомиться с разделами формы состоит в том, чтобы взять готовую форму, например, созданную с помощью Мастера, и посмотреть ее устройство в режиме Конструктора. Как мы уже знаем, для этого надо щелкнуть на кнопке Вид на панели управления Access 9x.

2. При просмотре в Конструкторе мы видим структуру формы. Обратите внимание на то, что рядом с ней открывается панель элементов, содержащая заготовки и инструменты для создания элементов управления формы.

3. В структуре формы четко видны три раздела: раздел заголовка формы, область данных и раздел примечания формы.

В нашем случае заполнена только область данных. Так произо­шло потому, что форму создавал Мастер, который не потру­дился создать и заполнить вспомогательные разделы.

4. Все, что содержится в области данных, является элементами управления. В нашем случае здесь присутствуют элементы управ­ления только двух типов: связанное поле (то, что в него вводится, поступает и в одноименное поле таблицы, на базе которой создана форма) и присоединенная надпись (называется так, поскольку перемещается вместе со своим элементом управле­ния). В нашем случае содержание присоединенной надписи совпадает с названием связанного поля, но, как вы понимаете, это можно и изменить.

5. Фоновый рисунок, лежащий под элементами управления, показывает размер рабочего поля формы.

6. Размеры разделов и размеры рабочего поля формы можно изменять с помощью мыши. При наведении на границу раздела указатель меняет форму. В этот момент границу можно пере­мещать методом перетаскивания.

12. Отчеты

Напомним функции основных объектов базы данных:

• таблицы служат для хранения данных;

• запросы служат для выбора данных из таблиц, а также для авто­матизации операций по обновлению и изменению таблиц;

• формы служат для упрощения операций ввода данных в таб­лицы, но могут быть использованы и для просмотра результатов работы запросов на экране.

Из основных объектов нам осталось рассмотреть только отчеты. Отчеты во многом похожи на формы и тоже позволяют получить результаты работы запросов в наглядной форме, но только не на экране, а в виде распечатки на принтере. Таким образом, в резуль­тате работы отчета создается бумажный документ.

Автоотчеты

Большая часть того, что было сказано о формах, относится и к отчетам. Выбрав в диалоговом окне База данных вкладку Отчеты и щелкнув на кнопке Создать, мы получаем диалоговое окно

Точно так же, как и с формами, с отчетами удобнее знакомиться в режиме автоматического создания. Создайте на основе любой "таблицы авто отчет в столбец или ленточный. Операция настолько проста, что сводится к одному щелчку левой кнопки мыши.

Отчеты предназначены для вывода информации на принтер, поэтому для расчета расположения данных на печатной странице программа Access 9x должна «знать» все необходимое об особенностях прин­тера. Эти данные Access получает от операционной системы. Соответственно. принтер в системе должен быть установлен.

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

Структура отчета

Как и формы, отчеты состоят из разделов, а разделы могут содер­жать элементы управления. Но, в отличие от форм, разделов в отчетах больше, а элементов управления, наоборот, меньше.

Со структурой отчета проще всего ознакомиться, создав какой-либо автоотчет, а затем открыв его в режиме Конструктора.

1. Как видно из рисунка, структура отчета состоит из пяти разде­лов: заголовка отчета, верхнего колонтитула, области данных, нижнего колонтитула и примечания отчета. По сравнению с формами новыми являются разделы верхнего и нижнего колон­титулов.

2. Раздел заголовка служит для печати общего заголовка отчета.

3. Раздел верхнего колонтитула можно использовать для печати подзаголовков, если отчет имеет сложную структуру и зани­мает много страниц. Здесь можно также помещать и колонцифры (номера страниц), если это не сделано в нижнем колонтитуле.

4. В области данных размещают элементы управления, связанные с содержимым полей таблиц базы. В эти элементы управления выдаются данные из таблиц для печати на принтере. Порядок размещения и выравнивания элементов управления тот же, что и при создании структуры форм.

5. Раздел нижнего колонтитула используют для тех же целей, что и раздел верхнего колонтитула. В нашем случае в нем разме­щены два элемента управления.

6. В первом элементе управления выводится текущая дата. Для этого использована встроенная в Access 9x функция Now(). Она возвращает текущую дату и помещает ее в поле, а отчет воспроизводит ее при печати.

'. Во втором элементе управления выводится номер страницы и общее количество страниц. Для их определения использованы встроенные функции Раде() и PagesQ. Тот текст, который запи­сан в кавычках, воспроизводится «буквально», а оператор & служит для «склеивания» текста, заключенного в кавычки, со значениями, возвращаемыми функциями. Оператор & называ­ется оператором конкатенации.

Раздел примечания используют для размещения дополнительной информации. В нашем примере он не использован.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: