
- •Порядок виконання
- •II. Підбор полів для «Запроса».
- •III. Вибір і призначення параметрів зв'язків між джерелами даних.
- •4. Результат роботи показати викладачу.
- •Вартість:[Пішло]*[ЦінаОтп]
- •Like[Введите дату]&"*"
- •Between [введіть початкову дату] And [введіть кінцеву дату]
- •Контрольні запитання
- •Теоретичні відомості
- •Запити в Access
- •Додаток 22
- •Увага всю подальшу роботу виконувати тільки з файлами вашої папки!!!
- •I. Установка зв'язків між таблицями
- •II. Зміна типу об'єднання між таблицями
- •III. Типи об'єднання і їхній вплив на результати запиту
4. Результат роботи показати викладачу.
Завдання 16. Створення об’єкта Модуль
Відкрийте запит У наявності в режимі Таблица і переконайтеся, що в полях Залишилося і Сума підраховуються значення тільки для товарів, що і продавалися, і купувалися, але відсутні записи про товари, що лежать "без руху".
Давайте з'ясуємо, чому це відбувається. У завданні 12 була введена формула:
Залишилося: Кіл+[Sum-Прийшло]-[Sum-Пішло] (1)
для обчислення значень у полі Залишилося. Проаналізуємо результати обчислення за цією формулою для різних випадків руху товарів, що занесено в таблицю.
Товар |
Кіл |
Sum-Прийшло |
Sum-Пішло |
Залишилося |
56437 |
220 |
30 |
25 |
225 |
56426 |
200 |
40 |
порожне значення |
порожне значення |
56429 |
150 |
порожне значення |
30 |
порожне значення |
16226 |
16 |
порожне значення |
10 |
порожне значення |
5024 |
100 |
50 |
порожне значення |
порожне значення |
для решти |
числове значення |
порожне значення |
порожне значення |
порожне значення |
Як видно з таблиці, числове значення в полі Залишилося, підрахувалося тільки для товару 56437, у якого всі складові у формулі є числовими значеннями і не підрахувалося для всіх інших товарів, тому що в них хоча б одна складова виявилась «порожне значення». Подивимося, що відбудеться, якщо зробити заміну «порожніх значень» на числові значення. Для цього виконаємо операції купівлі і продажу деяких товарів. Як "продавати" і "купувати" товари було показано в завданні 3-4 лабораторної роботи №21.
Завдання:
Продайте товар 56426 у кількості 60 штук, тобто замініть «порожне значення» у колонці Sum-Пішло на числове значення 60. (Для продажу товару скористайтесь формою Вимога)
Купіть товар 56429 у кількості 0 штук, тобто замініть «порожне значення» у колонці Sum-Прийшло на числове значення 0. (Для купівлі товару скористайтесь формою Накладна)
Відкрийте запрос У наявності в режимі Таблица.
Як тільки «порожне значення» замінилися на числові, у тому числі і на цифру 0, у полі Залишилося з'явилися результати обчислень за формулою (1) і таблиця набула наступного вигляду:
Товар |
Кіл |
Sum-Прийшло |
Sum-Пішло |
Залишилося |
56437 |
220 |
30 |
25 |
225 |
56426 |
200 |
40 |
60 |
180 |
56429 |
150 |
0 |
30 |
120 |
16226 |
16 |
порожне значення |
10 |
порожне значення |
5024 |
100 |
50 |
порожне значення |
порожне значення |
для решти |
числове значення |
порожне значення |
порожне значення |
порожне значення |
Висновок: Для того, щоб формула (1) працювала для всіх можливих варіантів руху товарів, необхідно і достатньо у всіх комірках запиту У наявності зробити перетворення: «порожне значення» замінити на числове значення, що дорівнює 0.
Завдання 17. Створити модуль Преобразование.
Модуль буде використовуватися програмою для перетворення в запиті У наявності, так званих, "порожніх" значень у нульові (числові) значення. Зі списку функцій, що є в програмі Access, для цієї мети підходить функція Zero.
Послідовність дій при виконанні завдання:
Відкрити у вікні База данных Склад вкладку Модули. Клацнути по кнопці Создать.
У вікні, що відкрилося Microsoft Visual Basic, набрати текст програми, який наведено нижче.
Примітки:
Після правильного введення першого рядка автоматично створюється останній рядок.
Робочим тілом програми є ліва частина запису (виділена жирним шрифтом), у правій частині, після знака "апостроф" записано коментарі (не набирати) до кожного з рядків.
Function Zero(Value) ' Призначення імені функції
If IsNull(Value) Then ' Перевірка умови: Якщо комірка порожня, то:
Zero = 0 ' Функції Zero присвоїть 0 (нуль)
Else ' Інакше
Zero = Value ' Функції Zero присвоїть значення комірки
End If ' Кінець умови
End Function ' Кінець функції
3. Зберегти Модуль з ім'ям Преобразование. Закрити вікно Microsoft Visual Basic.
Завдання 18. Змінити запит У наявності, додавши функцію Zero, створену в модулі Преобразование.
Послідовність дій при виконанні завдання:
Відкрити запит У наявності. Змінити формулу:
Залишилося:[Кіл]+[Sum-Прийшло]-[Sum-Пішло]
на
Залишилося:[Кіл]+Zero([Sum-Прийшло])-Zero([Sum-Пішло])
Зберегти запит У наявності. Перевірити запит. У режимі Таблица поля Залишилося і Сума повинні бути заповнені для кожного запису.
Робота зі створення складного запиту У наявності завершена, а це означає, що комп'ютеризована інформаційно-довідкова система готова до використання. Перевіримо, як за допомогою КІДС можна здійснювати реєстрацію руху товарів через склад:
Завдання 19. (Контрольне)
Товар
Прийшло
Пішло
16115
58
30
Зареєструвати прихід і відправлення товару в кількості, зазначеній в таблиці (дата виконання всіх операцій - сьогоднішня):
Значення поля Залишилося для товару 16115 повинно збільшитися на 28 одиниць.
Аналогічну операцію провести для товарів 15407, 15408
Запит У наявності виводить повну інформацію про стан справ на складі. На практиці часто виникає необхідність одержувати оперативну інформацію тільки про деякі товари, відібрані за зазначеним критерієм. Наприклад: Вивести список товарів, вартість яких знаходиться в заданому інтервалі цін, або Вивести список товарів, назви яких починаються з зазначеної літери, або Товари, куплені в певну дату і т. п.
Завдання 20. Підготувати макет запиту.
Макет необхідний для створення на його основі запитів-вибірок з бази даних за різними критеріями вибору.
Послідовність дій при створенні макета:
У вікні База данных: Склад вибрати вкладку Запрос.
Клацнути покажчиком мишки по кнопці Создать.
У вікні, що з'явилося, Новий запрос вибрати режим Конструктор.
У вікні Добавление таблицы вибрати одну з трьох вкладок, щоб одержати доступ до можливих джерел даних.
Вибрати потрібне джерело даних. У нашому випадку для більшості запитів - запит У наявності.
Клацнути покажчиком мишки по кнопці Добавить, потім по кнопці Закрыть.
Перенести назви потрібних полів з верхньої частини Конструктора в рядок Поле (ми будемо додавати для кожного з запитів різну кількість полів, в залежності від того, який запит нам потрібно створити).
Дії по створенню будь-якого запиту-вибірки повинні починатися зі створення макета шляхом виконання перерахованих вище семи пунктів. У наступних завданнях розглянемо порядок створення типових видів запитів, вивчивши які можна успішно створювати будь-які запити-вибірки.
Завдання 21. Створити запит-вибірку: П'ять найдорожчих товарів.
Поля: Товар, Найменування, Ціна, Залишилося.
Послідовність дій при виконанні завдання:
Оскільки перші сім пунктів створення запиту вже виконано, продовжимо:
У рядку Сортировка в колонку Ціна встановити опцію По убыванию.
Установити курсор у першій вільній комірці рядка Поле.
У головному меню вибрати команду Вид. У меню, що з'явилося, вибрати опцію Свойства.
У вікні Свойства запроса в рядок Набор значений поставити цифру 5.
Закрити вікно, зберегти запит на диску з ім'ям 5 дорогих. Перевірити, як працює створений Запит.
Завдання 22. Створити запит: Список товарів, ціна яких знаходиться між 5 і 8 грн.
Поля: Товар, Найменування, Ціна, Залишилося.
Послідовність дій при виконанні завдання:
1 -7. Створити макет запиту.
8. Встановити курсор у колонку Ціна в рядок Условие отбора.
9. Записати в цю комірку вираз: >5And<8.
Закрити вікно, зберегти запит з ім'ям Товари від 5 до 8 грн.
Перевірити, як працює створений Запит.
Завдання 23. Створити запит: Список товарів за першою буквою в найменуванні.
Поля: Товар, Найменування, Ціна, Залишилося, Сума.
Послідовність дій при виконанні завдання:
1 -7. Створити макет запиту.
Установити курсор у колонку Найменування в рядок Условие отбора.
Записати в цю комірку вираз: Lіkе[Введіть літеру]&"*".
Закрити вікно, зберегти запит з ім'ям: За літерою в назві.
Перевірити, як працює створений Запит.
Завдання 24. Створити запит-вибірку Продаж в зазначену дату.
У запиті повинна виводитися наступна інформація про товари: код, кількість проданого, дата продажу, ціна, націнка, відпускна ціна, вартість продажу.
(З таблиці Відправлено вибрати поля: Товар, Пішло, ДатаП; з таблиці Товари поле Ціна)
Вказівка: Не всі з перерахованих у завданні імен полів є в джерелах даних. Три останніх імені з цього списку: націнка, відпускна ціна, вартість продажу - мають бути створені.
Націнка якщо товар продається менше 100 одиниць, то набавляється 40% від ціни товару, у всіх інших випадках - 25% від ціни товару.
ЦінаОтп - ціна з урахуванням націнки.
Вартість - вартість проданого товару.
Послідовність дій при виконанні завдання:
У вікні База данных: Склад вибрати вкладку Запрос.
Клацнути покажчиком мишки по кнопці Создать.
У вікні, що з'явилося, Новый запрос вибрати режим Конструктор.
У вікні Добавление таблицы вибрати джерела - дані з таблиць Товари і Відправлено.
Перенести назви потрібних полів з верхньої частини Конструктора в рядок Поле.
У першу вільну комірку рядка Поле ввести формулу:
Націнка:IIF([Пішло]<100;[Ціна]*0,40;[Ціна]*0,25)
7. У наступну комірку ввести формулу:
ЦінаОтп:[Ціна]+[Націнка]
8. У наступну комірку ввести формулу: