
- •Порядок виконання
- •II. Підбор полів для «Запроса».
- •III. Вибір і призначення параметрів зв'язків між джерелами даних.
- •4. Результат роботи показати викладачу.
- •Вартість:[Пішло]*[ЦінаОтп]
- •Like[Введите дату]&"*"
- •Between [введіть початкову дату] And [введіть кінцеву дату]
- •Контрольні запитання
- •Теоретичні відомості
- •Запити в Access
- •Додаток 22
- •Увага всю подальшу роботу виконувати тільки з файлами вашої папки!!!
- •I. Установка зв'язків між таблицями
- •II. Зміна типу об'єднання між таблицями
- •III. Типи об'єднання і їхній вплив на результати запиту
Додаток 22
Визначення зв'язків між таблицями, типи об'єднання і їхній вплив на результати запиту
Завдання:
Скопіюйте в папку вашої групи файл Додаток_22 (Зв’язки),
D:\STUDENT\ІІ курс (бухгалтер)\ІІ курс Лабораторні роботи\Файли завдання\...
Увага всю подальшу роботу виконувати тільки з файлами вашої папки!!!
При створенні складних запитів (дані для яких підбираються з декількох джерел) необхідно навчитися встановлювати зв'язки між джерелами даних. Тип установленого зв'язку впливає на дані, що будуть вибиратися з різних джерел і поміщатися в таблицю з результатами. Працюючи зі зв'язками, необхідно розуміти зміст двох термінів:
Линия связи між таблицями показує, з якими даними установлено зв'язок.
Тип объединения вказує, які записи необхідно вибирати.
I. Установка зв'язків між таблицями
Для того щоб встановити зв'язок між Таблицями – джерелами даних, необхідно:
Завантажити файл Зв’язки. Відкрити вкладку Запросы.
В
ідкрити Запрос1 у режимі Конструктор.
Визначити Поле, по якому призначається зв'язок - товар.
Установити покажчик мишки на обране Поле в одній з таблиць і перетягнути його на відповідне Поле другої таблиці. Між полями, що зв'язуються, з'явиться сполучна лінія.
Якщо таблиць більше двох, потрібно виконати подібні дії для інших таблиць.
Для видалення лінії зв'язку досить виділити лінію зв'язку і натиснути клавішу Delete.
Примітка: Числові поля можуть бути об'єднані тільки у випадку, якщо властивість - розмір поля - має значення «Байт», «Целое» або «Длинное целое».
II. Зміна типу об'єднання між таблицями
Послідовність дій:
1. Двічі клацнути точно по лінії зв'язку.
2. У діалоговому вікні, що з'явилося, Параметры объединения вибрати потрібний тип об'єднання і натисніть кнопку ОК.
III. Типи об'єднання і їхній вплив на результати запиту
Вікно Параметры объединения використовується для установки одного з трьох типів об'єднання між таблицями. Як правило, таблиці зв'язуються для того, щоб одержати нову таблицю (запит). Від установлюваного виду зв'язку залежить, які записи будуть узяті з таблиць, що зв'язуються, для одержання результуючої таблиці.
Розберемо на прикладі можливі типи об'єднання для випадку, коли джерелами даних для запиту обрані дві таблиці: таблиця Список і запит Прийшло.
На малюнку, що розташований нижче показано вигляд створюваного запиту ЗапросСП1 в режимі Конструктор після клацання правою кнопкою миші по лінії зв’язку й активізації вікна Параметры объединения. Видно, що програма Access за замовченням призначила зв’язку перший тип об’єднання.
Це означає, що в таблицю з результатами будуть відібрані тільки ті записи, що мають однакові значення в зв’язаних полях. У нашому випадку однакові коди в полі Товар. Таких товарів у нашому прикладі виявилося три: товари з номерами 011, 013, 023 (Для того, щоб переконатися натисніть на кнопку Запуск)
При призначенні другого типу зв'язку (ЗапросСП2), лінія, що позначає зв'язок, перетворюється в стрілку, спрямовану в бік перетаскування поля. Щоб змінити напрямок стрілки, потрібно встановити третій тип зв'язку. Напрямок стрілки показує, яка з двох таблиць у даний момент є Основной - стрілка спрямована від неї, а яка таблиця є Дополнительной - стрілка спрямована до неї. У результуючій таблиці запиту відображаються всі записи з Основной таблиці і записи, що співпадають з ними з Дополнительной таблиці. Коли для запису таблиці, з якої беруться всі записи, не вдається знайти відповідний запис у другій таблиці, на місці відсутніх даних у запиті будуть порожні поля.
При виборі другого типу об'єднання (дивись на малюнку нижче) видно, що стрілка зв'язок, що показує, спрямована від таблиці Список до таблиці Прийшло. Значить, з таблиці "Список" (як основної) будуть виводитися всі записи, а з таблиці "Пришло" (як додаткової) будуть виводитися тільки записи, що співпадають.
Результат таблиці-запиту
При виборі третього типу об'єднання (ЗапросСП3) стрілка зв'язок змінить напрямок і буде спрямована від таблиці Прийшло до таблиці Список, тобто при даному напрямку стрілки таблиця Прийшло стане основною, а таблиця Список - додатковою.
Результат таблиці-запиту
Різниця двох підсумкових таблиць добре демонструє вплив типу зв’язку на отриманий результат.
Розберемо на прикладі можливі типи об'єднання для випадку, коли джерелами даних для запиту обрані три таблиці Список (1), Прийнято (2), Відправлено (3).
Зв'яжемо ці таблиці по полю Товар, перетягнувши це поле з таблиці 1 до відповідних полів у таблицях 2 і 3. Між таблицями з'являться лінії з'єднання, за якими можна визначити, що обидві лінії зв'язку встановлюють перший тип об'єднання.
Примітка: Зв’язування таблиць виконати в запиті Макет.
В
ище
відзначалося, що перший тип об'єднання
відбирає зі зв'язаних таблиць тільки
ті записи, що мають однакові значення
в зв'язаних полях. Усі три таблиці мають
тільки два загальні записи по полю
товар -
це
записи 011
і
023.
У режимі Таблица цей запит виглядає таким чином:
Ц
ю
схему зв'язків надалі будемо використовувати
для рішення такої задачі:
Створити запит, що виводив би тільки
ті товари, які приходили на склад, і
йшли зі складу. Зв’язування
таблиць виконати в запиті
Макет1.
Змінимо тип об'єднання між таблицями Список і Прийшло з першого на другий. Другий тип об'єднання відображається стрілкою, спрямованою в бік переміщення поля при зв'язуванні таблиць. У нашому випадку поле "товар" переміщувалося з таблиці 1 до таблиці 2.
П
ереглянемо
запит в режимі Таблицы
(натисніть
кнопку
).
У даному випадку для зв'язування трьох таблиць використовуються два типи об'єднання: Перший тип - між таблицями 1 і 3, Другий тип - між таблицями 1 і 2. Пояснимо, чому в запиті присутні саме ці три записи?
Записи, що з'явилися в кінцевій таблиці, зробили зв'язок першого типу між таблицями 1 і 3 - з таблиць 1 і 3 вибралися тільки ті записи, що мають однакові значення в зв'язаних полях, а це, товари 011, 021, 023.
Як у цьому запиті працює зв'язок між таблицями 1 і 2? Другий тип об'єднання дозволяє виводити всі записи з однієї таблиці незалежно від того, чи є для них відповідні записи в іншій таблиці. Тому результатом зв'язку між таблицями 1 і 2 є заповнення поля Sum-прийшло по товарах, що виявилися в результаті зв'язку 1 - 3. Причому, по товару 021 поле не заповнене, оскільки для запису таблиці, з якої беруться всі записи, не вдається знайти відповідний запис у другій таблиці, то на місці відсутніх даних у запиті будуть порожні поля.
Цю схему зв'язків надалі будемо використовувати для розв'язання такої задачі: Створити запит, для вибору тільки тих товарів, що продавалися. Зв’язування таблиць виконати в запиті Макет2.
У наступній схемі так само використовується два типи об'єднання: Перший тип зв'язку - між таблицями 1 і 2, Другий тип зв'язку - між таблицями 1 і 3. Результатом буде нижче наведена таблиця.
Ц
ю
схему зв’язків надалі будемо
використовувати для розв’язання
задачі: Створити
запит для вибору товарів, що тільки
приходили.
Розглянемо ще один , останній, варіант об’єднання трьох таблиць.
Як видно на малюнку, у кожного зв’язку встановлено другий тип об’єднання.
Нагадаємо, що при другому типі об’єднання, стрілки показують напрямок переміщення поля при зв’язуванні таблиць, тобто, поле „товар” переміщалося від таблиці 1до таблиць 2 і 3.
Переглянемо запит в режимі Таблицы (натисніть кнопку ).
У
підсумковій таблиці присутні всі записи
таблиці 1.
Поля
Sum-пришло
і Sum-ушло
заповнено даними з таблиць 2
і
3,
тільки
для товарів, що присутні в цих таблицях.
Цю схему призначення зв'язків будемо
надалі використовувати для розв'язування
такої задачі: Створити
запит для вибору даних за всіма товарами
- скільки було, скільки пішло, скільки
прийшло і скільки залишилося на складі
в результаті руху товарів.