Добавлен: 20.10.2018
Просмотров: 4047
Скачиваний: 76
Таблица Поиск
Форма Фильтрация
Выход Сортировка
Вид → Панели инструментов →Настройка →Контекстные меню→Создать
Создание панели инструментов На
Панель инструментов: Настраиваемая1→ Ok
→Установите панель в нужное место, передвигая за синюю полосу.)
Команды → Новое меню → → Два раза перетащите в новую панель инструментов)
Новое меню Новое меню
12 Переименуйте элементы меню.
А ктивируйте элемент меню, Новое меню Новое меню
Имя: Заполнение → → «Обработка»)
1 3 Произведите насыщение элемента «Заполнение». Команды:
Все таблицы →Таблица1 → Перетащите в нужное место)
Файл → Выход
Элемента «Обработка»
Записи → Сортировка→…→Изменить фильтр→…→Применить фильтр→...→Правка →…→Найти →…→Закрыть
Введение в MS Access: Мастер форм.
Понятийный аппарат: база данных, система управления базой данных;
таблица, форма, поле, свойства поля.
Прикладные навыки: работа с мышью, настройка фона и шрифта, распределение
экранного пространства.
1 Войдите в среду MS Access
ПУСК → Программы MS Access
2 Откройте файл базы данных db1.mdb
Файл → Открыть базу данных → → или )
Папка: Мои документы Имя файла: db1.mdb → Открыть
3 Создайте форму для «Клиенты»
Формы Создать →
Конструктор → Источник данных → Клиенты →Ok
Вид → Список полей
→ Произведите привязку полей к сетке, перетаскивая их из «списка полей»)
Сохраните форму → Имя формы: Клиенты → Ok
Перейдите в режим формы: Вид → Режим формы
Просмотрите содержание записей и введите одну новую.
4 Измените фон формы, цвет и размер шрифта надписей.
Вид → Конструктор → Область данных: Цвет фона
Удерживая клавишу SHIFT щелкните левой кнопкой по всем надписям формы, смените цвет и размер шрифта.
5 Создайте в режиме конструктора еще две таблицы:
«Товары»: |
Код товара → счетчик) |
Наименование товара → текстовый) |
Единица измерения → текстовый) |
«Поставка» |
Дата |
Клиент |
Товар |
Цена |
Количество |
Приход |
Стоимость |
Накладная |
Зададим структуру записи «Поставка».
Имя поля Тип данных Свойства
Дата Дата/время Маска ввода: →… →
Краткий формат даты → Готово
Значение по умолчанию: Date → )
Клиент Тип: Мастер подстановок →Значение из таблицы →Далее →
Таблица: Клиенты → Далее
Выбранные поля:
N > →Фамилия > → Имя > → Отчество > → Фирма >→Далее
Скрыть ключевой столбец → Далее
Подпись: N → Готово
Товар Тип: Мастер подстановок → Значение из таблицы →Далее
Таблица: Товары → Далее
Выбранные поля:
Код товара > → Наименование> → Ед./измер. > → Далее
Скрыть ключевой столбец → Далее
Подпись: Код товара → Готово
Цена Числовой
Количество Числовой
Стоимость Числовой
Накладная Счетчик → Ключевое)
Приход Логический
6 Создайте формы для новых таблиц.
В форме «Поставка» установите кнопки вызова форм «Клиенты» и «Товары».
Кнопка → Категории: Работа с формой → Действия: Открытие формы →Далее → Открываемая форма: Клиенты → Далее → Открыть форму и показать все записи → Далее →Текст → Клиенты → Далее
Имя кнопки: Кнопка1 → Готово
[Аналогичными действиями создайте кнопку «Товары»]
{Обновите список клиентов при выходе из кнопки}
[Фокус на кнопке в режиме конструктора]
Свойства → События → Выход
[Процедура обработки событий] → … →
7 В форме «Поставка» в режиме конструктора необходимо указать следующие свойства полей.
Цена → Свойства → События → Потеря фокуса
Процедура обработки событий → … →
|
Private Sub Цена_LostFocus→ ) |
|
Стоимость = [Цена] * [Количество] |
|
|
|
End Sub |
[Все действия для “Цена” повторите для “Количество”, проверьте качество заполнения поля “Стоимость”]
8 Просмотрите структуру образовавшихся связей.
Сервис → Схема данных
Введение в MS Access: Модификация проекта базы данных.
Понятийный аппарат: база данных, система управления базой данных;
таблица, форма, поле, свойства поля.
Прикладные навыки: расщепление таблиц, проектирование форм, использование
функций.
БД
«Складской учет» выполнен
студентом 271
гр. Ивановым И.И.
1 Откройте файл базы данных db1.mdb
Файл → Открыть базу данных
2 Создайте простую форму-заставку.
Формы → Создать → Конструктор →Ok
{В окне формы вне области данных} →Свойства
Макет →Режим по умолчанию → Простая форма →Допустимые режимы → Форма → Выравнивание по центру → Да → Полосы прокрутки → Отсутствуют → Тип границы → Отсутствует → Область выделения → Нет → Кнопка оконного меню → Нет → Поле номера записи → Нет → Кнопка размеров окна → Все → Разделительные линии → Нет → Кнопка закрытия → Да → Автоматический размер → Да →Кнопка контекстной справки → Нет
Данные →Тип набора записей → Динамический набор
Событие → Открытие → [Процедура обработки событий] →…→
Private Sub Form_Open(Cancel As Integer)
' Форма открывается как заставка (без кнопки). Свойство "Интервал таймера"
' (TimerInterval) определяет закрытие формы через 5 секунд.
Me.TimerInterval = 5000
End Sub
Включение → [Процедура обработки событий] → … →
Private Sub Form_Activate()
' Скрывает встроенную панель инструментов "Режим формы".
DoCmd.ShowToolbar "Режим формы", acToolbarNo
End Sub
Отключение → [Процедура обработки событий] → … →
Private Sub Form_Deactivate()
' Выводит встроенную панель инструментов "Режим формы" в подходящем случае.
DoCmd.ShowToolbar "Режим формы", acToolbarWhereApprop
End Sub
Перехват нажатия клавиш → Да →
Таймер → [Процедура обработки событий] →… →
Private Sub Form_Timer()
' Конструкция If используется для сброса значения
' свойства "Интервал таймера" (TimerInterval).
If Me.TimerInterval <> 0 Then
Me.TimerInterval = 0
End If
DoCmd.Close acForm, "Заставка"
DoCmd.OpenForm "Поставка"
End Sub
Сохраните указанные свойства. → Закройте окно свойств
Откройте форму «Заставка».
3 Модифицируйте структуру базы: Расщепите таблицу “Поставка”.
3.1 Переименуйте таблицу и форму «Товары» в «Список товаров». Откройте форму «Список товаров» в режиме конструктора. Откорректируйте связь с базовой таблицей.
{В окне формы вне области данных}
Данные → Источник записей → Список товаров
Макет → Подпись → Список товаров
3.2 Сделайте копию таблицы «Поставка» под именем «Товары».
В закладке «Таблицы» Вашей базы данных:
Поставка → Копировать → Вставить → Имя таблицы: Товары Ok
3.3 В таблице «Товары» оставьте следующие поля:
Nп/п (счетчик) |
Дата |
Накладная (числовое) |
Товар (подстановка) |
Приход |
Цена |
Количество |
Стоимость |
«Товар» - поле со списком из таблицы «Список товаров».
Тип полей «Цена», «Количество», «Стоимость» - вещественный с не менее чем 2-мя знаками после запятой. В схеме данных установите связь ([Поставка.Накладная] «Один-ко многим» [Товары.Накладная]).
3.4 В таблице «Поставка» оставьте следующие поля:
Дата |
Клиент |
Накладная |
Сумма (числовое, веществ.[4 байта], 5 знаков) |
«Клиент» – поле со списком из таблицы «Клиенты».
3.5 Уничтожьте существующие формы «Поставка» и «Товары». Создайте новые простые формы с помощью мастера:. «Поставка» - выровненную и «Товары» - табличную. Откройте форму «Товары» в режиме конструктора. Проверьте корректность связи с таблицей «Список товаров».
{В фокусе поле со списком “Код товара”.}
Данные → Источник строк
SELECT DISTINCTROW [Список товаров].[код товара],
[Список товаров].[Наименование],
[Список товаров].[Ед/измер] FROM [Список товаров];
3.6 В форме «Товары» в свойствах на выходе с полей «Приход», «Цена» и «Количество» и на получении фокуса поля «Стоимость» произведите расчет стоимости (см.Лаб.р.16) в зависимости от состояния поля «Приход».
If Not Приход Then [Количество] = -1 * Abs([Количество])
Стоимость = [Цена] * [Количество]
В разделе примечаний формы создайте вычисляемое поле «Сумма:», в котором будете подсчитывать текущую суммарную стоимость товаров, взятых клиентом по активной накладной. В свойствах поля укажите:
Данные → Данные → = SUM([Стоимость])
Запомните имя поля, содержащего сумму (Например, «Поле10»).
3.7 Внедрите форму «Товары» в форму «Поставка».
Для этого откройте форму «Поставка» в режиме конструктора и перетащите пиктограмму формы «Товары» из окна Вашей базы данных на отведенное место.
3.8 В форме «Поставка» постройте кнопки вызова форм «Клиенты» и «Список товаров» для дополнения списков товаров и поставщиков. При получении фокуса полями со списком «N», «Код товара» и на выходе с кнопок примените метод обновления списка.
3.9. При получении фокуса посредством ссылки на значение подчиненной формы присвойте полю “Сумма” результат суммирования по столбцу «Стоимость» формы «Товары».
Private Sub Сумма_GotFocus()
Сумма =[Forms]![Поставка]![Товары]![Поле10]
End Sub
4 Откройте форму “Поставка”, заполните несколько накладных. Проверьте связи по схеме данных, качество заполнения таблиц, корректность работы БД в целом.
Понятийный аппарат: СУБД, таблица, форма, поле, запрос-выборка, запрос-действие.
Прикладные навыки: создание таблиц по результатам запроса.
1. Откройте файл базы данных db1.mdb
Файл Открыть базу данных ( или )
Папка Мои документы Имя файла: db1.mdb Открыть
2. Выведите список клиентов на которых в марте 1999 года выписаны накладные, укажите суммы поставок.
1 способ:
Запросы Создать Конструктор Ok
Добавление таблицы: Поставка Добавить
Клиенты Добавить Закрыть
Поле: |
Фамилия |
Имя |
Отчество |
Фирма |
Сумма |
Дата |
Имя таблицы: |
Клиенты |
Клиенты |
Клиенты |
Клиенты |
Поставка |
Поставка |
Групповая операция: |
Группир |
Группир |
Группир |
Группир |
Группиров |
Условие |
Сортировка: |
|
|
|
|
|
|
Вывод на экран: |
|
|
|
|
|
|
Условие отбора: |
|
|
|
|
|
|
СОХРАНЕНИЕ Имя запроса: Выборка_Клиент-Сумма_по_дате Ok
Режим таблицы
Внесите изменения в условие отбора поля «Дата». Вместо жестко заданного срока организуйте ввод начальной и конечной даты с клавиатуры.
Измените условие: >=[ НачальнаяДата] And <=[ КонечнаяДата]. Режим таблицы
2 способ
Организуйте ввод начальной и конечной даты через элемент ActiveX «Календарь».
Создайте в режиме конструктора новую форму «Календарь».
Внедрите объект «Календарь».
Вставка Элемент ActiveX Элемент управления «Календарь»
В свойствах объекта укажите имя «ВыборДаты».
Создайте поле “НачальнаяДата”, в которое при получении фокуса будет возвращено календарем выбранное значение типа «Date». Повторите аналогичные действия для поля «КонечнаяДата». Создайте кнопку «Выборка данных». В свойствах на нажатие кнопки поставьте процедуру создания и открытия запроса на SQL. Вклейте в текст запроса временной промежуток, составленный из значений полей начальной и конечной даты.
Access Basic:
Option Compare Database
Option Explicit
Private Sub Form_Activate()
' Скрывает встроенную панель инструментов "Режим формы".
DoCmd.ShowToolbar "Режим формы", acToolbarNo
End Sub
Private Sub КонечнаяДата_GotFocus()
КонечнаяДата = ВыборДаты.Value
If IsDate(НачальнаяДата) And IsDate(КонечнаяДата) Then
If КонечнаяДата < НачальнаяДата Then
MsgBox "Начальная дата должна предшествовать конечной дате."
НачальнаяДата.SetFocus
Exit Sub
End If
Else
MsgBox "Введите допустимые значения начальной и конечной даты."
Exit Sub
End If
End Sub
Private Sub НачальнаяДата_GotFocus()
НачальнаяДата = ВыборДаты.Value
End Sub
Private Sub Кнопка_Click()
On Error GoTo Err_Кнопка7_Click
'Преобразование временного промежутка в текстовую строку: 01.01.99# and #01.05.99
Dim Dt As String, k As Byte, n As Byte
n = 0: Dt = Str(Forms![Календарь]![НачальнаяДата]) & "# and #"
Dt = Dt & Str(Forms![Календарь]![КонечнаяДата])
'Замена в строке точек на слэш для формата: #01/05/99#
k = InStr(Dt, ".")
Do While k > 0: n = n + 1: Dt = Left(Dt, k - 1) & "/" & Right(Dt, Len(Dt) - k)
k = InStr(Dt, "."): Loop
'Обмен местами значений числа и месяца для формата #Месяц/День/Год#
Dim a(1 To 4) As String, b As Variant
b = Array(1, 4, 1, 19, 16)
For n = 1 To 4: k = b(n): a(n) = Mid(Dt, k, 2): Next n
Dt = "#" & a(1) & "/" & a(2) & Mid(Dt, 6, 10) & a(3) & "/" & a(4) & Right(Dt, 3) & "#)"
'Ссылка на текущую базу данных.
Dim dbs As Database, qdf As QueryDef
Set dbs = CurrentDb
'Формирование текста запроса с вклейкой введенного временного промежутка
Dim Zapros As String
Zapros = "SELECT Клиенты.Фамилия, Клиенты.Имя, Клиенты.Отчество,"
Zapros = Zapros & " Клиенты.Фирма , Поставка.Сумма"
Zapros = Zapros & " FROM Клиенты INNER JOIN Поставка ON Клиенты.N = Поставка.N"
Zapros = Zapros & " WHERE ((Поставка.Дата) Between " & Dt
Zapros = Zapros & " GROUP BY Клиенты.Фамилия, Клиенты.Имя,"
Zapros = Zapros & " Клиенты.Отчество, Клиенты.Фирма, Поставка.Сумма;"
' Создание нового сохраненного запроса
Set qdf = dbs.CreateQueryDef("ЗапросХ", Zapros)
'Открытие запроса
DoCmd.OpenQuery qdf.Name
Exit_Кнопка7_Click:
Exit Sub
Err_Кнопка7_Click:
MsgBox Err.Description
Resume Exit_Кнопка7_Click
End Sub
3. Выведите список товаров, отпущенных по накладным в конкретную дату. Укажите количество и стоимость товара. Используйте данные из таблиц «Список товаров: наименование» и «Товары: количество, стоимость, дата», связанные по коду товара. Назовите запрос «Выборка товаров по дате».
QBE:
Поле: |
Наименование |
Количество |
Стоимость |
Дата |
Имя таблицы: |
Список товаров |
Товары |
Товары |
Товары |
Сортировка: |
по возрастанию |
|
|
|
Вывод на экран: |
|
|
|
|
Условие отбора: |
|
|
|
[Введите дату] |