В Access можна створити багатозначне поле з кількома значеннями (до 100). Також можна створити поле підстановки, у якому відображається зручне значення, пов'язане зі значенням в іншому джерелі даних. Під час запиту поля підстановки або багатозначного поля існують унікальні зауваження. Докладні відомості див. в статті Створення або видалення багатозначного поля та Створення або видалення поля підстановки.
У цій статті
Перегляд зв'язаного значення поля підстановки в запиті
За замовчуванням у вікні табличного подання даних запиту автоматично відображається відображуване значення поля підстановки. Створюючи запит, ви можете змінити цю поведінку, щоб натомість відобра було відображено зв'язане значення. У цьому прикладі припустімо, що потрібно переглянути зв'язане значення поля підстановки в таблиці "Штаб-квартира", яка "шукає" ім'я стану "Нова Англія".
-
Відкрийте запит у режимі конструктора.
-
У цьому прикладі додайте головний офіс і таблиці NewEngland .
Потрібно об'єднати дві таблиці.
Докладні відомості див. в статті Об'єднання таблиць і запитів.
-
Перетягніть поле разом із полем підстановки до сітки макета запиту. У цьому прикладі додайте поле "Місто " та " СТАН ".
-
Клацніть поле підстановки, а потім на вкладці Конструктор у групі Відобразити або приховати натисніть кнопку Аркуш властивостей. У цьому прикладі використайте поле NEState .
-
На аркуші властивостей перейдіть на вкладку Підстановка , а потім у властивості Відобразити елемент керування виберіть Текстове поле.
Результат Тепер, коли ви переглядаєте запит у вікні табличного подання даних, відображається відповідне зв'язане значення відображуваного значення.
Використання відображуваного значення для поля підстановки в запиті
Під час створення поля підстановки створюється об'єднання між значенням Bound і Display. Хоча значення Display не можна використовувати безпосередньо в запиті, можна використати відповідне значення з іншого джерела даних. У цьому прикладі потрібно використовувати відображуване значення поля підстановки NEState в таблиці "Штаб-квартира " в запиті як умови.
-
Відкрийте запит у режимі конструктора.
-
У цьому прикладі додайте таблиці Головний офіс і Нова Англанд .
Потрібно об'єднати дві таблиці. Докладні відомості див. в статті Об'єднання таблиць і запитів.
-
Перетягніть потрібні поля до сітки запиту. У цьому прикладі перетягніть поле Місто з таблиці Головний офіс до першого стовпця, NEState з таблиці Headquarters до другого стовпця, а StateName – з таблиці NewEngland до третього стовпця.
-
Зніміть прапорець Відображатиім'я стану в сітці запиту.
-
У сітці запиту в розділі StateName у рядку Критерії введіть Вермонт.
Умови запиту базуються на стовпці StateName , яке, звичайно ж, збігається зі значенням Display (Відображуване значення NEState), але не відображається у вікні табличного подання даних.
-
На вкладці Конструктор у групі Результати натисніть кнопку Запуск.
Результат Відображається лише рядок, що містить Вермонт .
Використання багатозначного поля в запиті
Якщо в запиті відображається багатозначне поле, можна відобразити повне багатозначне поле з усіма значеннями, розділеними крапками з комами в одному рядку, або сплюснутими даними з окремим рядком для кожного значення. Припустімо, наприклад, що у вас є таблиця "Питання ", яка містить поле "Заголовок" для кожної проблеми, і багатозначне поле "Призначено ", щоб призначати проблеми людям.
Відображення всіх значень у багатозначне поле в одному рядку
-
Відкрийте запит у режимі конструктора.
-
У цьому прикладі додайте таблицю "Проблеми ".
-
Перетягніть поля до сітки макета запиту. У цьому прикладі перетягніть поле Назва та Багатозначне поле Призначено .
-
На вкладці Конструктор у групі Результати натисніть кнопку Запуск.
Результат Як і очікувалося, в одному стовпці відображається поле Заголовок , а в другому – багатозначне поле Призначено :
Відображення кожного значення багатозначного поля в одному рядку (у сплющеному поданні)
-
Відкрийте запит у режимі конструктора.
-
У цьому прикладі додайте таблицю "Проблеми ".
-
Перетягніть поля до сітки запиту. У цьому прикладі перетягніть поля Title (Назва ) і AssignedTo.Value ( Багатозначне значення).
Формат <ім'я_поля>. Значення, додає властивість Value як рядок . Значення поля "Призначено ".
-
На вкладці Конструктор у групі Результати натисніть кнопку Запуск.
Результат Дані буде сплющено таким чином, що поле "Заголовок" повторюється, і кожне значення в багатозначне поле "Призначено " відображається у відповідному рядку:
Додавання умов до багатозначного поля в запиті
Розміщення однакових умов у сітці запиту в різних стовпцях сітки суттєво впливає на результати запиту.
Додавання умов, за якими відображаються всі значення в багатозначного полі в одному рядку
Спочатку access створить набір результатів, а потім додасть умови.
-
Відкрийте запит у режимі конструктора.
-
У цьому прикладі додайте таблицю "Проблеми ".
-
Перетягніть поля до сітки запиту. У цьому прикладі перетягніть поле "Назва", багатозначне поле Призначено та Багатозначне поле AssignedTo.Value .
-
У сітці запиту зніміть прапорець Відображати значення AssignedTo.Value .
-
У сітці запиту в розділі AssignedTo.Value в рядку Критерії введіть NOT "Девід Гамільтон".
Щоб переглянути подання SQL, зробіть ось що:
SELECT Title, AssignedTo FROM Issues WHERE NOT AssignedTo.Value = “David Hamilton”;
-
На вкладці Конструктор у групі Результати натисніть кнопку Запуск.
Результат Три проблеми, не призначені Девіду Гамільтону, відображаються в стандартному значенні.
Додати умови, які відображають кожне значення в багатозначного полі в одному рядку (у сплющеному поданні)
Спочатку Access створить сплющений набір результатів, а потім додасть умови.
-
Відкрийте запит у режимі конструктора.
-
У цьому прикладі додайте таблицю "Проблеми ".
-
Перетягніть поля до сітки запиту. У цьому прикладі перетягніть поля Title (Назва ) і AssignedTo.Value ( Багатозначне значення).
-
У сітці запиту в розділі AssignedTo.Value в рядку Критерії введіть NOT "Девід Гамільтон".
Щоб переглянути подання SQL, зробіть ось що:
SELECT Issues.Title, AssignedTo.Value FROM Issues WHERE NOT AssignedTo.Value = “David Hamilton”
-
На вкладці Конструктор у групі Результати натисніть кнопку Запуск.
Результат Кожне питання, не призначене Девіду Гамільтону, відображається в сплющеному значенні.
Додавання кількох умов до багатозначного поля в запиті
Іноді в багатозначному полі потрібно шукати збіг за кількома значеннями. Припустімо, наприклад, що серед значень у полі "Призначено " є як "Катерина Ролліна", так і "Ліза Міллер".
-
Відкрийте запит у режимі конструктора.
-
У цьому прикладі додайте таблицю "Проблеми ".
-
Перетягніть поля до сітки запиту. У цьому прикладі перетягніть поле Назва та Багатозначне поле Призначено .
-
У сітці запиту в розділі Призначено в рядку Критерії введіть "Катерина Ролліна" ТА "Ліза Міллер".
-
На вкладці Конструктор у групі Результати натисніть кнопку Запуск.
Результат Відображаються ті два питання, які призначаються "Келлі Роллін" і "Ліза Міллер".
Групування та підрахунок багатозначного поля в запиті
Щоб виконати обчислення, групування та сортування значень, які зберігаються в багатозначного полі, використовуйте <Ім'я_поля>. Поле значення. Докладні відомості про запити групи див. в статті Підрахунок даних за допомогою запиту.
Підрахунок кількості питань, призначених кожному користувачу
-
Відкрийте запит у режимі конструктора.
-
У цьому прикладі додайте таблицю "Проблеми ".
-
Перетягніть потрібні поля до сітки запиту. У цьому прикладі перетягніть поле AssignedTo.Value до першого стовпця, а заголовок – до другого.
-
На вкладці Конструктор у групі Відображення або приховання натисніть кнопку Підсумки.
У сітці запиту з'явиться рядок Підсумок . Функція Групування за за замовчуванням відображається в клітинці Підсумок під кожним полем у запиті.
-
У сітці запиту в розділі Заголовок у рядку Підсумок натисніть кнопку Кількість.
-
На вкладці Конструктор у групі Результати натисніть кнопку Запуск.
Результат Кількість питань, призначених для кожного користувача, відображається у сплющеному поданні.
Щоб підрахувати кількість користувачів, яким призначено кожну проблему
-
Відкрийте запит у режимі конструктора.
-
У цьому прикладі додайте таблицю "Проблеми ".
-
Перетягніть потрібні поля до сітки запиту. У цьому прикладі перетягніть заголовок до першого стовпця та перетягніть поле AssignedTo до другого.
-
На вкладці Конструктор у групі Відображення або приховання натисніть кнопку Підсумки.
У сітці запиту з'явиться рядок Підсумок . Параметр Групувати за за замовчуванням відображається в клітинці Підсумок під полем Назва запиту. Вираз за замовчуванням відображається в клітинці Підсумок у полі Призначено , оскільки не можна виконати операцію групування безпосередньо в багатозначне поле, лише <ім'я_поля>. Поле значення.
-
У сітці запиту в розділі Призначено в рядку Підсумок натисніть кнопку Кількість.
-
На вкладці Конструктор у групі Результати натисніть кнопку Запуск.
Результат Кількість людей, призначених для кожної проблеми, відображається в сплющеному поданні.
Використання запиту на додавання з багатозначне поле
Можна вставити одне значення в багатозначне поле за допомогою запиту на додавання. Припустімо, наприклад, що потрібно додати "Том Міхаельс" до багатозначного поля AssignedTo в таблиці "Питання".
Примітка. Це єдиний тип запиту на додавання, який працює з багатозначнім полем.
-
Відкрийте запит у режимі конструктора.
-
Додайте таблицю "Проблеми ".
-
На вкладці Конструктор натисніть кнопку Додати.
-
У діалоговому вікні Додавання виберіть пункт Проблеми, а потім натисніть кнопку OK.
-
У рядку Додавання до бланка виберіть AssignedTo.Value.
-
У рядку Поле бланка введіть "Том Майклз".
-
Щоб обмежити операцію додавання до певних проблем, додайте поле до сітки конструктора, наприклад Заголовок, видаліть заголовок із рядка Додавання до , а потім введіть такі умови, як "Проблема 3".
-
На вкладці Конструктор у групі Результати натисніть кнопку Запуск.
Access може попросити підтвердити додавання вибраного рядка. Натисніть кнопку Так , щоб вставити рядок, або Ні, щоб скасувати.
Результат "Том Майклз" тепер додається до поля Призначено для питання 3.
Увага! Не можна використовувати запит на додавання, який посилається на таблицю, яка містить багатозначне поле. Наприклад, такий запит неприпустимий:
INSERT INTO [NewIssues] ( ID, Title, AssignedTo ) SELECT Issues.ID, Issues.Title, Issues.AssignedTo FROM Issues;
Використання запиту на оновлення з багатозначне поле
Запит на оновлення дає змогу змінити одне значення в багатозначне поле на інше. У цьому прикладі потрібно оновити багатозначне поле AssignedTo, щоб замінити "Kelly Rollin" на "Ліза Міллер".
-
Відкрийте запит у режимі конструктора.
-
Додайте таблицю "Проблеми ".
-
На вкладці Конструктор натисніть кнопку Оновити.
-
Перетягніть поле AssignedTo.Value до сітки запиту.
-
У рядку Оновлення до введіть "Ліза Міллер".
-
У рядку Критерії введіть "Катерина Ролліна".
-
На вкладці Конструктор у групі Результати натисніть кнопку Запуск.
Access може попросити підтвердити додавання вибраного рядка. Натисніть кнопку Так , щоб вставити рядок, або Ні, щоб скасувати.
Результат Ліза Міллер замінює Келлі Ролліна в полі Призначено на всі відповідні питання.
Використання запиту на видалення з багатозначне поле
Під час роботи з таблицею, яка містить багатозначне поле, можна скористатися запитом на видалення, щоб видалити записи, які містять певне значення в багатозначне поле, або видалити певне значення з багатозначного поля в усіх записах таблиці. У наведеному нижче прикладі припустімо, що потрібно видалити "Девід Гамільтон" із таблиці "Питання".
Увага! Якщо видалити багатозначне поле з даними за допомогою запиту на видалення, ці дані буде втрачено остаточно – видалення не можна скасувати. З цієї причини необхідно створити резервну копію бази даних, перш ніж видаляти будь-які поля таблиці або інші компоненти бази даних.
Видалення певного значення з багатозначного поля в усіх записах
-
На вкладці Створити в групі Запити натисніть кнопку Конструктор запитів.
-
Додайте таблицю "Проблеми ".
-
Відкрийте запит у режимі конструктора.
-
На вкладці Конструктор натисніть кнопку Видалити.
-
У рядку Критерії введіть "Девід Гамільтон".
-
На вкладці Конструктор у групі Результати натисніть кнопку Запуск.
Access може попросити підтвердити видалення записів. Натисніть кнопку Так , щоб видалити записи, або Ні, щоб скасувати.
Результат Девід Гамільтон видалений з усіх відповідних питань.
Видалення записів, які містять певне значення в багатозначне поле
-
На вкладці Створити в групі Запити натисніть кнопку Конструктор запитів.
-
Додайте таблицю "Проблеми ".
-
Відкрийте запит у режимі конструктора.
-
На вкладці Конструктор натисніть кнопку Видалити групу.
-
На вкладці Конструктор у групі Результати клацніть стрілку під кнопкою Подання та виберіть пункт Режим SQL.
-
Введіть таку інструкцію SQL:
DELETE FROM Issues WHERE (((Issues.AssignedTo.Value)="David Hamilton"));
Примітка. У цьому випадку можна використовувати лише інструкцію SQL, а не сітку конструктора. Якщо перейти до подання сітки конструктора, access додасть після інструкції DELETE зірочку (*), яку слід вилучити з режиму SQL.
-
На вкладці Конструктор у групі Результати натисніть кнопку Запуск.
Access може попросити підтвердити видалення записів. Натисніть кнопку Так , щоб видалити записи, або Ні, щоб скасувати.
Результат Усі питання, де призначається Девід Гамільтон, видаляються.