Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2 Курс Информатика VBA(ЗО) / Книги / В.Д.Хорев - Самоучитель программирования на VBA в Microsoft Office

.pdf
Скачиваний:
2700
Добавлен:
31.05.2015
Размер:
21.66 Mб
Скачать

Создание таблиц 133

5.Во второй ячейке столбца Имя поля введите строку “ТипКлиента”, затем выберите для этого поля тип данных — Текстовый.

6.На вкладке Общие в нижней части окна конструктора укажите в поле Размер поля значение

25 (по умолчанию там содержится значение 50). В результате окно конструктора таблиц должно приобрести вид, как на рис. 5.2.

Рис. 5.2. Окно конструктора таблиц: создано два поля

Закройте окно конструктора командой Ôàéë | Закрыть или щелчком на кнопке закрытия в правом верхнем углу окна. При этом MS Access выдаст запрос: “Сохранить изменения макета или структуры таблицы Таблица1?” (рис. 5.3). В ответ следует щелкнуть на кнопке Äà.

Рис. 5.3. Запрос на сохранение макета или структуры таблицы выдается не только при закрытии окна конструктора, но и в некоторых других случаях

Впоявившемся затем диалоговом окне Сохранение введите в поле Имя таблицы строку “ТипКлиента” и щелкните на ÎÊ.

Врезультате в окне базы данных, на вкладке Таблицы, появится значок таблицы ТипКлиента.

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

Рис. 5.4. Простейшая таблица-справочник готова, в нее теперь можно ввести “справочные” данные

134 Глава 5. Access: создание офисной базы данных

Затем эта таблица будет использована в качестве столбца подстановки в других таблицах, и если нужно будет изменить набор категорий, на которые подразделяются клиенты, то достаточно будет открыть таблицу “ТипКлиента” и внести в нее необходимые изменения — во всей остальной базе данных ничего менять не потребуется.

Создание справочника обращений к клиентам фирмы

Далее необходимо создать еще один справочник. Если использовать базу данных для автоматического формирования писем или сообщений для клиентов, то потребуется использовать в каждом случае какое-то обращение. К хорошо знакомому человеку обращаются не так, как к незнакомому, а к женщине — иначе, чем к мужчине. Создайте при помощи конструктора таблиц еще один справочник под названием “Обращение”, руководствуясь инструкциями, приведенными в предыдущем разделе. Таблица должна содержать поля “КодОбращения” и “Обращение”. Введите затем в созданную таблицу несколько видов обращения: например, пусть это будут “Уважаемый”, “Уважаемая”, “Дорогой” и “Дорогая”.

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

Таблица “Клиенты”

Первые несколько полей таблицы не таят в себе сложностей. Просто запустите вновь конструктор таблиц и создайте ключевое поле “КодКлиента” с типом данных Счетчик, текстовые поля “Фамилия”, “Имя” и “Отчество”, задав для каждого из них размер поля — 15.

Следующее поле, пятое по счету, будет содержать дату рождения. Его следует назвать “Дата Рождения”, а в столбце Тип данных выбрать для него тип Дата/время. Затем, в области свойств поля (область в нижней части окна конструктора), на вкладке Общие, необходимо выбрать в строке Формат поля формат Краткий формат даты. Строкой ниже, в поле Маска ввода, щелк-

ните на кнопке построителя (кнопка с тремя точками, которая видна только тогда, когда строка выбрана).

В следующий момент необходимо будет подтвердить сохранение таблицы — сохраните таблицу под именем “Клиенты”.

Затем, в диалоговом окне Создание масок ввода выберите маску Краткий формат даты, как показано на рис. 5.5 и щелкните на кнопке Готово.

Далее необходимо создать еще два простых текстовых поля — это должны быть поля “Адрес” и “E-Mail”, с размером, соответственно, 50 и 20.

Следующее поле — “Скидка”. Здесь будет храниться величина скидки для клиента в процентном выражении. Такое поле можно было бы включить в состав справочника типов клиентов, однако при этом оказалось бы невозможным задание для отдельного клиента “индивидуальной скидки”.

Рис. 5.5. Диалоговое окно создания масок

Создание таблиц 135

Задайте имя поля — “Скидка” и выберите для него тип данных — Числовой. В свойствах поля укажите формат поля — Процентный, и размер поля — Одинарное с плавающей точкой, как показано на рис. 5.6.

Рис. 5.6. Свойства поля “Скидка” нуждаются в дополнительной настройке

Подстановочные поля

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

Задайте в качестве имени следующего поля строку “КодТипа” — это имя совпадет с именем ключевого столбца в таблице “ТипКлиента”. В качестве типа данных выберите в списке пункт Мастер подстановок. Это приведет к запуску специального мастера, который поможет создать подстановочное поле.

Как создать подстановочные поля при помощи Мастера подстановок

1. В первом диалоговом окне Создание подстановки просто щелкните на кнопке Далее. Переключатель способа подстановки должен находиться в позиции Объект "столбец подстанов-

ки" будет использовать значения из таблицы или запроса, как по умолчанию (рис. 5.7).

136 Глава 5. Access: создание офисной базы данных

Рис. 5.7. Первый шаг мастера подстановок

2.На следующем шаге мастера выделите в списке имеющихся таблиц пункт “ТипКлиента” (именно эта таблица будет играть роль столбца подстановки) и щелкните на кнопке Далее.

3.На следующем шаге мастера выделите в списке Доступные поля пункт “ТипКлиента” и

щелчком мыши на кнопке [>] переместите его в список Выбранные поля, как показано на рис. 5.8. Завершите шаг мастера щелчком на кнопке Далее.

Рис. 5.8. Выбор полей для подстановки

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

5.Наконец, на последнем шаге мастера введите в поле Задайте подпись строку “Тип клиента”.

Щелкните после этого на кнопке Готово, и создание подстановочного поля будет завершено.

6.В появившемся окне сообщения подтвердите сохранение таблицы щелчком на кнопке Да.

Создание таблиц 137

Рис. 5.9. Определение ширины подстановочного столбца

Далее следует аналогичным образом создать подстановочное поле “КодОбращения” — для него в качестве столбца подстановки необходимо использовать таблицу “Обращение”.

Закрыв после всего этого окно конструктора легко можно убедиться в том, что подстановочные, как впрочем, и все остальные, поля работают. Откройте таблицу “Клиенты” двойным щелчком на ее значке и попробуйте ввести значения в ее поля. Можно убедиться, что поле “День рождения” проверяет вводимые значения и допускает ввод только корректных значения даты, что поле “Скидка” при вводе в него дробных чисел автоматически преобразует их в процентный формат, а поля “Тип Клиента” и “Обращение” раскрывают список значений для выбора, как показано на рис. 5.10.

Рис. 5.10. Подстановочный столбец в действии

Таблица “Операции”

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

Создание справочника типов операций

Итак, перед созданием таблицы “Операции” необходимо подготовить таблицу-справочник. Пусть она называется “ТипОперации” и пусть в ней содержатся два поля — ключевое поле типа Счетчик с

138 Глава 5. Access: создание офисной базы данных

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

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

Создание таблицы операций

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

Рис. 5.11. Таблица “Операции” в окне конструктора

1.Первым полем должно быть поле “Дата” — его следует отформатировать для ввода значений даты.

2.Далее следует поле “ПорядковыйНомер” — задайте для него тип данных Счетчик и сделайте ключевым полем.

3.Для создания поля “КодОперации” необходимо использовать подстановку из таблицы “ТипОперации”. Действуйте по схеме описанной при создании поля “ТипКлиента” в таблице “Клиенты”.

см. в этой главе раздел “Создание справочника клиентов фирмы”.

4.Выберите в качестве типа данных пункт “Мастер подстановок”. На втором шаге мастера выберите таблицу “ТипОперации”. Затем переместите в список Выбранные поля пункт “Операция” из списка Доступные поля. Укажите ширину столбца подстановки, а на последнем шаге мастера задайте подпись столбца — “Операция”.

5.Точно таким же образом создается подстановочное поле “КодКлиента”, только в качестве источника подстановки следует использовать таблицу “Клиенты”, выбрав в ней (то есть, переместив в список Выбранные поля) поле “Фамилия”, а в качестве подписи столбца ис-

пользовав строку “Клиент”.

Ввод данных в базу данных Access 139

6. Наконец, для поля “Сумма” следует выбрать тип данных “Денежный”. При этом в поле Число десятичных знаков на вкладке Общие в нижней части окна конструктора введите значение 2.

Таблица “Операции” готова. Теперь в нее можно заносить для каждой клиента из таблицы “Клиенты” приходные и расходные операции, указывая их тип из справочника “ТипОперации”. Собственно говоря, готовы уже все необходимые таблицы и настала пора подумать о том, каким же образом в них будут попадать данные.

Ввод данных в базу данных Access

MS Access позволяет вводить данные непосредственно в таблицы, однако это способ “на крайний случай”. Данные в таблицы Access могут попадать многими способами, в том числе и в результате выполнения программного кода VBA в одном из приложений Office (далее это будет рассмотрено). Однако самый простой, удобный и понятный любому пользователю без дополнительных объяснений способ заключается в использовании экранных форм. На следующем этапе “строительства” базы данных создадим экранные формы для ввода данных в таблицы “Клиенты” и “Операции”. Также создадим вспомогательную (подчиненную) форму для формы “Клиенты”, которая будет отображать операции только по текущему клиенту.

Создание экранных форм

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

Форма “Все операции”

Щелчком на кнопке Формы переключите окно базы данных на вкладку Формы. Двойным щелчком на значке Создание формы при помощи мастера запустите мастер форм.

Как создать экранную форму при помощи Мастера форм

1.В диалоговом окне Создание форм, на первом шаге мастера, в раскрывающемся списке Таблицы и запросы выберите пункт Таблица: Операции. Затем, при помощи кнопки [>], переместите все поля кроме поля “ПорядковыйНомер” из списка Доступные поля в список Выбранные поля, как показано на рис. 5.12, и щелкните на кнопке Далее.

2.На следующем шаге мастера установите переключатель в позицию Ленточный и щелкните на кнопке Далее.

3.Затем выберите стиль формы (в этом примере использован стиль Стандартный) и щелкните на кнопке Далее.

4.На последнем шаге мастера введите в поле Задайте имя формы строку “Все операции” и

щелкните на кнопке Готово.

140 Глава 5. Access: создание офисной базы данных

Рис. 5.12. Мастер форм выбор полей таблицы для отображения в создаваемой форме

Ввод данных при помощи формы “Все операции”

Вновь созданная форма автоматически открывается для ввода данных (см. рис. 5.13). В нее можно ввести некоторые данные и затем закрыть командой Ôàéë | Закрыть или щелчком на кнопке закрытия окна формы в правом верхнем углу.

Рис. 5.13. Форма “Все операции“

Подчиненная форма “Операции по клиенту”

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

1.Щелчком на кнопке Формы переключите окно базы данных на вкладку Формы. Двойным щелчком на значке Создание формы при помощи мастера запустите мастер форм.

2.В раскрывающемся списке Таблицы и запросы выберите пункт Таблица: Операции.

3.При помощи кнопки [>] переместите из списка Доступные поля в список Выбранные поля поля “Дата”, “КодОперации” и “СуммаОперации”, и щелкните на кнопке Далее.

4.Выберите внешний вид формы — Табличный и щелкните на кнопке Далее.

5.Затем выберите стиль Стандартный и щелкните на кнопке Далее.

Создание экранных форм 141

6.Задайте имя формы: “Операции по клиенту” и завершите работу мастера щелчком на кнопке Готово. Пока что эта форма отображает все записи из таблицы “Операции”, однако, как таковая, она использоваться не будет. Ей предстоит стать частью другой формы.

7.Закройте созданную форму командой Ôàéë | Закрыть.

Форма “Клиенты”

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

Создание простой формы

1.Двойным щелчком на значке Создание формы при помощи мастера запустите мастер форм.

2.В раскрывающемся списке Таблицы и запросы выберите пункт Таблица: Клиенты.

3.Вначале, при помощи кнопки [>>] переместите все поля таблицы “Клиенты” из списка Доступные поля в список Выбранные поля, а затем верните обратно поле “КодКлиента”

при помощи кнопки [<].

4.Выберите внешний вид формы — Выровненный и щелкните на кнопке Готово. Результат работы мастера должен выглядеть подобным тому, что изображено на рис. 5.14.

5.Закройте созданную форму командой Ôàéë | Закрыть.

Рис. 5.14. Форма “Клиенты“, созданная мастером

Добавление подчиненной формы

Теперь настало время встроить ранее приготовленную форму “Операции по клиенту” в форму “Клиенты”. Для этого придется перейти в режим конструктора.

В окне базы данных, на вкладке Формы, выделите значок только что созданной формы “Клиенты” и щелкните на кнопке Конструктор, расположенной в верхней части окна базы данных.

Форма “Клиенты” в окне конструктора должна выглядеть подобно рис. 5.15. Возможно, окно потребуется несколько растянуть, чтобы ниже формы оставалось свободное место. Как видно из рисунка, конструктор различает на форме три области.

Все элементы управления — поля, надписи и списки мастер поместил в область данных,

под панелью Область данных.

Область заголовка, обозначенная панелью Заголовок формы.

Область примечания, обозначенная панелью Примечание формы.

142 Глава 5. Access: создание офисной базы данных

Рис. 5.15. Форма “Клиенты“ в окне конструктора

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

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

Рис. 5.16. На форме “Клиенты“ создано пространство для размещения подчиненной формы

Далее необходимо поместить в освободившуюся часть области данных элемент управления Подчиненная форма/отчет. Для этого следует использовать панель элементов.

ПРИМЕЧАНИЕ

Если панель элементов управления не видна, откройте ее командой Âèä | Панель элементов (см.

рис. 5.17).

Найдите на панели элементов кнопку Починенная форма/отчет и щелкните на ней.

Соседние файлы в папке Книги