- •Технология разработки и защиты баз данных Сборник практических заданий
- •Раздел 1. Работа с таблицами базы данных 6
- •Раздел 2. Запросы к базе данных 16
- •Раздел 3. Отчёты в базе данных 26
- •Введение
- •Раздел 1. Работа с таблицами базы данных Практическая работа №1. Тема: «Создание базы данных в программе ms access, определение полей и типы данных»
- •Выполнение работы:
- •Практическая работа №2. Тема: «Создание базы данных и таблиц в субд Access c помощью шаблонов и мастеров» Создание базы данных с помощью Мастера
- •Практическая работа №3. Тема: «Поиск, сортировка и фильтрация данных в ms access» Выполнение работы:
- •Поиск данных.
- •Сортировка данных.
- •Фильтрация данных
- •Практическая работа №4. Тема: «Сортировка, поиск и фильтрация данных в таблицах».
- •Практическая работа №5. Тема: «Отбор данных при помощи фильтров»
- •Практическая работа №6. Тема: «Работа со связями, ключевыми полями и индексами. Ссылочная целостность». Выполнение работы:
- •Выбор первичного ключа таблицы.
- •Раздел 2. Запросы к базе данных Тема: «Создание запросов» Практическая работа №7. Тема: «Создание запросов»
- •Выполните расчеты:
- •Практическая работа №8. Тема: «Запросы по нескольким таблицам. Виды соединений». Выполнение работы:
- •Практическая работа №9. Зачетная работа по теме «Создание запросов данных в ms access» Выполнение работы:
- •Тема: «Создание запросов sql» Практическая работа №10. Тема: «Создание запросов sql»
- •Самостоятельная работа (по базе данных «Заказы товаров»)
- •Практическая работа №11. Тема: «Создание запросов sql на объединение, на изменение».
- •(По базе данных Борей)
- •Практическая работа №12. Тема: «Создание диаграмм в программе Access»
- •Создание запроса, на котором основана диаграмма.
- •Использование Мастера Диаграмм.
- •Изменение дизайна диаграммы.
- •Практическая работа №13. Контрольная работа по теме «Создание запросов sql» Вариант 1
- •Вариант 2
- •Раздел 3. Отчёты в базе данных Тема: «Создание форм» Практическая работа №14. Тема: «Создание форм»
- •Создайте форму, открывающую все созданные вами формы.
- •Практическая работа №15. Тема «Создание форм в программе ms Access».
- •Практическая работа №16. Тема: «Создание сложных многотабличных форм»
- •Создание и использование непрерывных форм (создание подчиненной формы без помощи Мастера)
- •Практическая работа №17. Зачетная работа по теме «Создание форм».
- •Тема: «Создание макросов» Практическая работа №18. Тема: «Создание макросов» Выполнение работы:
- •Практическая работа №19. Тема: Макросы, связанные с событиями форм»
- •Создадим макрос, подтверждающий удаление с помощью события Удаление.
- •Создадим макрос, выполняющий фильтрацию данных на форме с помощью группы выключателей.
- •Макросы, связанные с событиями отчетов. Создадим макрос, выделяющий данные в отчете.
- •Присоединение макросов. Создадим макрос, открывающий формы «Заказы» и «Клиенты», выбрав для этого переключатель:
- •Назначение макроса комбинации клавиш.
- •Оформление собственной строки меню.
- •Тема: «Создание отчетов» Практическая работа №20. Тема: «Создание отчетов»
- •Практическая работа №21. Тема: «Создание отчетов в режиме Конструктор»
- •Практическая работа №22. Тема: «Создание отчетов в режиме Конструктор». Создайте отчет «Итоги по товарам»
- •Практическая работа №23. Контрольная работа по теме «Создание отчетов» Вариант№1
- •Вариант№2
- •Тема: «vba,программирование в отчетах» Практическая работа №24. Тема: «vba, программирование в отчетах»
- •Практическая работа №25. Тема: «Создание модулей форм и модулей отчетов».
- •Работа со структурой документа.
Практическая работа №25. Тема: «Создание модулей форм и модулей отчетов».
Выполнение работы:
Работа со структурой документа.
Объекты Database (база данных), TableDef (определение таблицы), Fields (поля таблицы).
База данных в целом представлена объектом типа Database. Объекта "таблица" не существует, а доступ к таблицам осуществляется посредством объектов TableDef. Объекты типа Field, объединенные в семейство Field соответствующего объекта TableDef, представляют поля таблицы. С помощью этих объектов можно создать новые таблицы, поля в базу данных.
Сначала необходимо объявить переменные: базу данных, таблицу и поля таблицы. Для этого используется следующее:
Dim db as Database
Dim td as TableDef
Dim fld as Field
Затем следует открыть базу данных, если для нужна другая база данных :
Set db=opendatabase("имя файла базы данных") если нужна текущая база данных то используется
Set db = CurrentDb ()
Т.к. база данных теперь открыта и содержится в переменной db, можно обратиться к семейству определений таблиц и присвоить требуемое значение переменной td:
Set td=db.TableDefs("имя таблицы")
Затем, при помощи метода CreateField объекта TableDef можно добавить поле с заданными именем заданного размера:
Set flf=td.createfield(имя поля, тип данных, размер)
Поле создано и содержится в переменной fld, но в состав таблицы оно ещё не включено. Метод Append позволяет включить поле в таблицу:
Td.fields.append.fld
Остается закрыть базу данных и освободить память, выделенную под переменную db:
Db.close
Set db=nothing
Если требуется создать новую таблицу в базе данных, то действовать следует аналогичным образом. Только вместо открытия таблицы обращением к семейству TableDefs следует использовать метод CreateTable того же семейства, и пока на таблицу указывает объектная переменная, создать в ней необходимые поля и включить таблицу в состав семейства при помощи метода Append.
Задание1.
Добавим в базу данных "Борей" таблицу "Счета" для ведения лицевых счетов клиентов. Каждая запись в таблице должна состоять из двух полей: поля "лицевой счет" (длинное целое), поля "остаток" (денежный) и поля "примечание" (текстовый, размер 30).
'Объявим необходимые переменные
Dim db as Database
Dim td as TableDef
'Открыть базу данных
Set db=opendatabase("c:\2as_\борей.mdb")
'Создать новую таблицу
Set td=db.CreateTableDef("ЛицевыеСчета")
'Создать в новой таблице два поля
With td
.Fields.Append.CreateField("ЛицевойСчет", dblong)
.Fields.Append.CreateField("остаток", dbcurrency)
.Fields.Append.CreateField("примечание", dbtext, 30)
End With
'включить новую таблицу в базу данных
Td.TableDefs.Append td
'закрыть базу данных и освободить память
Db.close
Set db=nothing
Задание2.
Добавим в таблицу "товары" базу данных "Заказы товаров" поле дата_выпуска типа дата/время.
Dim db as Database
Dim td as TableDef
Dim fld as Field
Set db = CurrentDb()
'выбрать таблицу "товары"
Set td=db.TableDefs("Товары")
'Создать в таблице поле
set fld=td. CreateField("дата_выпуска",dbD ate)
'включить новое поле в таблицу базы данных
Td.Fields.Append fld
'закрыть базу данных и освободить память
Db.close
Set db=nothing
Программирование в отчетах.
Для работы создайте отчёт по таблице «Заказано» в базе данных "Борей» с помощью Автоотчет: ленточный.
Нумерация записей.
В некоторых случаях отчеты нагляднее, если записи каждой страницы пронумерованы.
Для нумерации записей каждой страницы используйте счетчик.
Создайте в области данных текстовое поле с именем полеЗапись (для этого вызовите свойства поля и на вкладке Другие выберите свойство Имя). Для того чтобы значение в этом поле с каждой записью увеличивалось на 1, назначьте событию области данных Печать, следующую процедуру (для этого вызовите свойства области данных, перейдите на вкладку События в строке Печать выберите ….и Программа или Процедура обработки событий и ….):
Private Sub ОбластьДанных_Print(Cancel As Integer, PrintCount As Integer)
If PrintCount = 1 Then ПолеЗапись = ПолеЗапись + 1
End Sub
На каждой странице значения в поле Счетчик должны начинаться со значения 1. Для этого назначьте событию Печать области верхнего колонтитула следующую процедуру:
Private Sub ВерхнийКолонтитул_Print(Cancel As Integer, PrintCount As Integer)
ПолеЗапись = 0
End Sub
PS. Если необходимо указывать в области примечания количество записей на странице, перенесите текстовое поле полеЗапись в область нижнего колонтитула.
Печать суммы на каждой странице отчета.
В многостраничных счетах на каждой странице следует печатать промежуточную сумму.
Для вычисления промежуточной суммы воспользуйтесь событием Печать
Поместите свободное поле с именем поле Сумма в область нижнего колонтитула отчета. Здесь будет отображаться промежуточная сумма. Остальное выполняет две процедуры событий.
Первая процедура связана с событием печать верхнего колонтитула (эту процедуру добавьте в предыдущую, для перехода в программу выберите Вид, Программа):
Private Sub ВерхнийКолонтитул_Print(Cancel As Integer, PrintCount As Integer)
Me!ПолеСумма = 0
End Sub
Вторая процедура связана с событием Печать области данных:
Private Sub ОбластьДанных_Print(Cancel As Integer, PrintCount As Integer)
If PrintCount = 1 Then
Me!ПолеСумма = Me!ПолеСумма + Me![цена]
End Sub
Для каждой записи промежуточная сумма будет увеличиваться на величину поля Цена. Однако перед этим значение свойства PrintCount проверяется на равенство 1. Это является обязательным, поскольку Access неоднократно обращается к событию Print при печати счета, занимающего несколько страниц. Свойство PrintCount указывает, сколько раз происходило обращение к этому событию для текущей области. Для того чтобы значение поля не прибавлялось несколько раз, вычисление выполняется только при первом событии.
Выделение важных данных начертанием.
Важнейшие данные отчета должны быть выделены полужирным стилем.
Создайте для события Форматирование области данных процедуру, в которой свойство FontBold некоторого управляющего элемента имеет значение True.
Свойство FontBold задает использование полужирного шрифта в следующих ситуациях:
· при просмотре или выводе на печать элементов управления в форме или в отчете;
· при выводе отчета на печать с помощью метода Print.
Свойство FontBold может иметь следующие значения.
Значение |
Описание |
True (–1) |
Текст выводится полужирным шрифтом. |
False (0) |
(Значение по умолчанию) Текст выводится без атрибута полужирного шрифта. |
Эта процедура может выглядеть следующим образом:
Private Sub ОбластьДанных_Format(Cancel As Integer, FormatCount As Integer)
If Me![цена] < 10000 Then
Me![цена].FontBold = True
Else
Me![цена].FontBold = False
End If
End Sub
В этом случае значения, меньше 10000 выделяются жирным шрифтом
