Використання підстановок і багатозначних полів у запитах

Застосовується до
Access для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

У програмі Access можна створити багатозначне поле, яке містить кілька значень (до 100). Також можна створити поле підстановки, у якому відображатиметься зрозуміле користувачу значення, прив'язане до значення в іншому джерелі даних. Створення запиту до поля підстановки або багатозначного поля має свої особливості. Докладні відомості див. в статтях "Створення або видалення багатозначного поля " та "Створення або видалення поля підстановки".

У цій статті

Перегляд приєднаного значення поля підстановки в запиті

За замовчуванням відображуване значення поля підстановки автоматично відображається у вікні табличного подання даних запиту. Під час створення запиту цю поведінку можна змінити, щоб замість нього відображалося приєднане значення. Припустімо, у цьому прикладі потрібно побачити приєднане значення поля підстановки в таблиці штаб-квартири, яка "шукає" назву штату Нова Англія.

Таблиці поля підстановки

  1. Відкрийте запит у режимі конструктора.

  2. У цьому прикладі додайте таблиці "Штаб-квартира " та "Нова Англія ".
    Ці дві таблиці мають бути об'єднані.

    Схема поля підстановки

    Докладні відомості див. в статті "Об'єднання таблиць і запитів".

  3. Перетягніть поле А разом із полем підстановки до сітки макета запиту. У цьому прикладі додайте поле "Місто " та "Таблиця ".

  4. Клацніть поле "Підстановка", а потім на вкладці "Конструктор " у групі "Відобразити або приховати " натисніть кнопку "Аркуш властивостей". У цьому прикладі використовується поле NEState .

  5. У вікні властивостей перейдіть на вкладку "Підстановка ", а потім у властивості "Відобразити елемент керування " виберіть "Текстове поле".
    Властивість «Відобразити елемент керування» в конструкторі запитів

Підсумок Тепер під час перегляду запиту у вікні табличного подання даних відображатиметься відповідне приєднане до відображуваного значення.

Результат запиту, в якому показано приєднане значення на початку сторінки

Використання відображуваного значення для поля підстановки в запиті

Коли ви створюєте поле підстановки, створюється об'єднання між приєднаним і відображуваним значеннями. Хоча відображуване значення не можна безпосередньо використовувати в запиті, відповідне значення можна використати з іншого джерела даних. Припустімо, що в цьому прикладі як умову потрібно використати в запиті відображуване значення поля підстановки ( NEState) у таблиці штаб-квартири .

  1. Відкрийте запит у режимі конструктора.

  2. У цьому прикладі додайте таблиці "Штаб-квартира " та "Нова Англія ".
    Ці дві таблиці мають бути об'єднані. Докладні відомості див. в статті "Об'єднання таблиць і запитів".

  3. Перетягніть потрібні поля до сітки запиту. У цьому прикладі перетягніть " Місто " з таблиці "Штаб-квартира" до першого стовпця, "NEState " – із таблиці "Штаб-квартира" – до другого стовпця, а стовпець "StateName" – із таблиці "NewEngland" до третього стовпця.

  4. Зніміть прапорець поруч із параметром "Назва_області " в сітці запиту.

  5. У сітці запиту в розділі "Назва_області" в рядку "Критерії" введіть "Вермонт".

    Сітка запиту зі зв'язаним значенням поля підстановки

    Умови запиту базуються на стовпці StateName , який, звичайно, має те саме значення, що й відображуване значення NEState, але не відображається в поданні таблиці.

  6. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.

Підсумок Відображається лише рядок, який містить слово "Вермонт ".

На початок сторінки результатів запиту

Використання багатозначного поля в запиті

Коли ви відображаєте багатозначне поле в запиті, ви можете відобразити повне багатозначне поле, яке містить усі значення, розділені комами в одному рядку, або зведені дані з окремим рядком для кожного значення. Наприклад, у вас є таблиця "Питання ", яка містить поле "Назва " для кожного питання та багатозначне поле " Призначено", де можна призначати питання користувачам.

Відображення всіх значень багатозначного поля в одному рядку

  1. Відкрийте запит у режимі конструктора.
  2. У цьому прикладі додайте таблицю "Питання ".
  3. Перетягніть поля до бланка запиту. У цьому прикладі перетягніть поле "Назва " та багатозначне поле " Призначено ".
  4. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.

Підсумок Як ви, можливо, і сподівалися, в одному стовпці відображається поле "Назва ", а в другому – багатозначне поле " Призначено" :

Багатозначні поля запит із незведеними результатами Відображення всіх значень багатозначного поля в одному рядку (зведене подання)

  1. Відкрийте запит у режимі конструктора.
  2. У цьому прикладі додайте таблицю "Питання ".
  3. Перетягніть потрібні поля до сітки запиту. У цьому прикладі перетягніть поле "Назва " та багатозначне поле "Призначено.Value ".
    Формат, <Ім'я> поля. Value, додає властивість Value як рядок . Значення поля «Призначено ».
  4. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.

Підсумок Дані буде зведено таким чином, що поле "Назва " повторюватиметься, а кожне значення в багатозначному полі " Призначено " відображатиметься у відповідному рядку:

Багатозначні поля запит зі зведеними результатами На початок сторінки

Додавання умов до багатозначного поля в запиті

Розміщення однакових умов у сітці запиту в різних стовпцях дуже впливає на результати запиту.

Додавання умови, яка відображає всі значення в багатозначному полі в одному рядку

Спочатку Access створює набір результатів, а потім додає умови.

  1. Відкрийте запит у режимі конструктора.

  2. У цьому прикладі додайте таблицю "Питання ".

  3. Перетягніть потрібні поля до сітки запиту. У цьому прикладі перетягніть поле "Посада ", багатозначне поле " Призначено " та багатозначне поле " Призначено.Значення ".

  4. Зніміть прапорець біля поля «Призначено.значення.» у сітці запиту.

  5. У сітці запиту в розділі AssignedTo.Value у рядку Умови введіть "NOT "David Hamilton".

    Сітка конструктора запиту з прямим полем підстановки

    Корисно бачити режим SQL:
    SELECT Title, AssignedTo FROM Issues WHERE NOT AssignedTo.Value = "David Hamilton";

  6. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.

Підсумок Три питання, не призначені Девіду Гамільтону, відображаються в значенні за замовчуванням.

Результати для багатозначного поля <Ім'я>поля Додавання умови, за якої всі значення багатозначного поля відображаються в одному рядку (подання зі зведенням)

Спочатку в Access створюється зведений набір результатів, а потім додаються умови.

  1. Відкрийте запит у режимі конструктора.

  2. У цьому прикладі додайте таблицю "Питання ".

  3. Перетягніть потрібні поля до сітки запиту. У цьому прикладі перетягніть поле "Назва " та багатозначне поле "Призначено.Value ".

  4. У сітці запиту в полі "Призначено.Значення" в рядку "Критерії " введіть NOT "Давид Гамільтон".

    Сітка конструктора запиту з . Формат значення для поля підстановки

    Корисно бачити режим SQL:
    SELECT Issues.Title, AssignedTo.Value FROM Issues WHERE NOT AssignedTo.Value = "David Hamilton"

  5. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.

Підсумок Кожна проблема, не призначена Девіду Гамільтону, відображається у зведеному вигляді.

Результати для багатозначного поля <Ім'я> поля. Value Top of Page

Додавання кількох умов до багатозначного поля в запиті

Іноді потрібно шукати відповідність за кількома значеннями в багатозначному полі. Наприклад, припустімо, що потрібно переглянути питання, у яких значення в полі "Призначено " належать "Катерина Валлін" і "Тараса Петренко"

  1. Відкрийте запит у режимі конструктора.
  2. У цьому прикладі додайте таблицю "Питання ".
  3. Перетягніть потрібні поля до сітки запиту. У цьому прикладі перетягніть поле "Назва " та багатозначне поле " Призначено ".
  4. У сітці запиту в розділі "Призначено" в рядку "Критерії " введіть "Катерина Роллін" ТА "Ліза Мельник".
  5. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.

Підсумок Відображаються ті два випуски, які призначені "Келлі Роллін" і "Лізі Міллер".

Результат запиту, в якому використано оператор AND у багатозначному полі

На початок сторінки

Групування та підрахунок багатозначного поля в запиті

Для обчислень, групування та сортування значень, які зберігаються в багатозначному полі, використовуйте поле <Fieldname>. Поле значення. Докладні відомості про групові запити див. в статті "Обчислення даних за допомогою запиту".

Підрахунок кількості завдань, призначених кожному користувачу

  1. Відкрийте запит у режимі конструктора.
  2. У цьому прикладі додайте таблицю "Питання ".
  3. Перетягніть потрібні поля до сітки запиту. У цьому прикладі перетягніть елемент AssignedTo.Value до першого стовпця, а Title – до другого.
  4. На вкладці Конструктор у групі Відображення або приховання натисніть кнопку Підсумки.
    На сітці запиту з'явиться рядок підсумків . Прапорець "Групувати за " відображається за замовчуванням у клітинці підсумків під кожним полем у запиті.
  5. У сітці запиту в розділі "Назва" в рядку підсумків клацніть елемент "Кількість".
  6. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.

Підсумок Кількість завдань, призначених кожному користувачеві, відображається у зведеному поданні.

Запит для обчислення кількості завдань, призначених кожному працівнику

Підрахунок кількості користувачів, призначених кожному питанню

  1. Відкрийте запит у режимі конструктора.
  2. У цьому прикладі додайте таблицю "Питання ".
  3. Перетягніть потрібні поля до сітки запиту. У цьому прикладі перетягніть поле Title до першого стовпця, а потім – до другого.
  4. На вкладці Конструктор у групі Відображення або приховання натисніть кнопку Підсумки.
    На сітці запиту з'явиться рядок підсумків . Поле "Групувати за" за замовчуванням відображається в клітинці "Підсумок " під полем "Назва" запиту. Вираз відображається за промовчанням у клітинці "Підсумок " під полем "Призначено", оскільки операцію "Групувати за" не можна виконати безпосередньо для багатозначного поля, а лише <для поля "Ім'я> поля". Поле значення.
  5. У сітці запиту в розділі "Призначено" в рядку підсумків клацніть елемент "Кількість".
  6. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.

Підсумок Кількість осіб, призначених для кожного питання, відображається у зведеному поданні.

Результат запиту: кількість працівників для кожного завдання

На початок сторінки

Використання запиту на додавання з багатозначним полем

У багатозначне поле можна вставити окреме значення за допомогою запиту на додавання. Наприклад, припустімо, що до багатозначного поля "Призначено" в таблиці "Питання" потрібно додати ім'я "Тарас Михайло".

Примітка Це єдиний тип запиту на додавання, що працює з багатозначним полем.

  1. Відкрийте запит у режимі конструктора.
  2. Додайте таблицю "Питання ".
  3. На вкладці "Конструктор " натисніть кнопку "Додати".
  4. У діалоговому вікні "Додавання" виберіть пункт "Питання" та натисніть кнопку "OK".
  5. У рядку конструктора «Додавання до» виберіть елемент «Призначено.Значення».
  6. У рядку "Поле " сітки макета введіть "Тарас Михайло".
  7. Щоб обмежити операції додавання певними питаннями, додайте поле до сітки макета, наприклад "Назва", видаліть поле "Заголовок " із рядка " Додавання до" та введіть критерії, наприклад "Питання 3".
  8. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.
    Програма Access може запитати підтвердження того, чи потрібно додавати вибраний рядок. Натисніть кнопку " Так ", щоб вставити рядок, або кнопку "Ні ", щоб скасувати дію.

Підсумок "Tom Michaels" тепер додано до поля "Призначено" у випуску 3.

Важливо Не можна використовувати запит на додавання, що посилається на таблицю, яка містить багатозначне поле. Наприклад, цей запит неприпустимий:

INSERT INTO [NewIssues] ( ID, Title, AssignedTo ) SELECT Issues.ID, Issues.Title, Issues.AssignedTo FROM Issues;

На початок сторінки

Використання запиту на оновлення з багатозначним полем

За допомогою запиту на оновлення можна змінювати одне значення в багатозначному полі на інше. У цьому прикладі потрібно оновити багатозначне поле "Призначено", замінивши "Ольга Кроллін" на "Тараса Снігур".

  1. Відкрийте запит у режимі конструктора.
  2. Додайте таблицю "Питання ".
  3. На вкладці " Конструктор " натисніть кнопку "Оновити".
  4. Перетягніть елемент «Призначено.значення» до сітки запиту.
  5. У рядку " Оновлення до" введіть "Ліза Мевченко".
  6. У рядку "Критерії " введіть "Катерина Роллін".
  7. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.
    Програма Access може запитати підтвердження того, чи потрібно додавати вибраний рядок. Натисніть кнопку " Так ", щоб вставити рядок, або кнопку "Ні ", щоб скасувати дію.

Підсумок Ліза Міллер замінює Келлі Роллін у полі "Призначено" для всіх відповідних проблем.

На початок сторінки

Використання запиту на видалення з багатозначним полем

Працюючи з таблицею, яка містить багатозначне поле, можна використовувати запит на видалення, щоб видалити записи, які містять певне значення в багатозначному полі, або видалити певне значення з багатозначного поля в усіх записах таблиці. У прикладі нижче припустімо, що потрібно видалити "Давид Гамільтон" із таблиці "Питання".

Важливо Коли багатозначне поле з даними використовується за допомогою запиту на видалення, ці дані остаточно втрачаються, і відновити їх неможливо. З цієї причини необхідно створити резервну копію бази даних, перш ніж видаляти будь-які поля таблиці або інші компоненти бази даних.

Видалення певного значення з багатозначного поля в усіх записах

  1. На вкладці Створити в групі Запити натисніть кнопку Конструктор запитів.
  2. Додайте таблицю "Питання ".
  3. Відкрийте запит у режимі конструктора.
  4. На вкладці " Конструктор " натисніть кнопку "Видалити".
  5. У рядку "Критерії " введіть "Давид Гамільтон".
  6. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.
    Програма Access може запитати підтвердження того, чи потрібно видаляти записи. Натисніть кнопку " Так ", щоб видалити записи, або кнопку "Ні ", щоб скасувати.

Підсумок Девід Гамільтон усувається з усіх відповідних питань.

Видалення записів, які містять певне значення в багатозначному полі

  1. На вкладці Створити в групі Запити натисніть кнопку Конструктор запитів.

  2. Додайте таблицю "Питання ".

  3. Відкрийте запит у режимі конструктора.

  4. On the Design tab, click Delete group.

  5. На вкладці " Конструктор " у групі "Результати " клацніть стрілку під кнопкою "Вигляд" і виберіть пункт "Режим SQL".

  6. Введіть таку інструкцію SQL:

    DELETE FROM Issues WHERE (((Issues.AssignedTo.Value)="David Hamilton"));
    

    Примітка У цьому випадку можна використовувати лише інструкцію SQL, а не сітку конструктора. Якщо перейти до подання сітки конструктора, після оператора DELETE буде додано зірочку (*), яку слід вилучити з режиму SQL.

  7. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.
    Програма Access може запитати підтвердження того, чи потрібно видаляти записи. Натисніть кнопку " Так ", щоб видалити записи, або кнопку "Ні ", щоб скасувати.

Підсумок Усі проблеми, пов'язані з призначенням Девіда Гамільтона, видаляються.

На початок сторінки