Порівняння двох таблиць в Access і пошук лише відповідних даних

Інколи потрібно переглянути записи з однієї таблиці Access лише за наявності відповідних записів в іншій таблиці Access, які містять одне або кілька полів з однаковими даними. Наприклад, вам може знадобитися переглянути записи тих співробітників, які виконали принаймні одне замовлення, щоб визначити, хто з них заслуговує на бонус. Або вам може знадобитися переглянути контактну інформацію тих клієнтів, які живуть в одному місті з певним працівником, щоб підібрати працівників і клієнтів для особистих зустрічей.

Порівняти дві таблиці Access і знайти однакові дані можна одним із наведених нижче способів.

  • Створіть запит, який об’єднує потрібні поля з усіх відповідних таблиць за допомогою наявного зв’язку або за допомогою об’єднання, створеного спеціально для запиту. Цей спосіб забезпечує оптимальну продуктивність (швидкість, з якою запит повертає результати), проте ви не можете об’єднати поля з різними типами даних.

  • Створення запиту, який порівнює поля, використовуючи одне поле як умову для іншого. Використання поля як умови для іншого поля зазвичай повільніше, ніж використання об'єднань, оскільки об'єднання усуває рядки з результатів запиту до прочитання базових таблиць, тоді як умови застосовуються до результатів запиту після прочитання базових таблиць. Проте поле можна використовувати як умову поля, щоб порівнювати поля з різними типами даних, що не можна зробити за допомогою об'єднань.

У цій статті описано, як порівняти дві таблиці, щоб знайти однакові дані, і надано зразки даних і приклади процедур, якими можна скористатися.

У цій статті

Порівняння двох таблиць за допомогою об’єднань

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

Припустімо, що ви досліджуєте роботу навчальних закладів і хочете дізнатися, як зміни навчального плану на факультеті математики вплинули на оцінки студентів. Вас особливо цікавлять оцінки студентів-математиків. У вас є таблиця з даними про спеціалізацію студентів і таблиця з даними списків класів. Оцінки зберігаються в таблиці "Списки класів", а дані про спеціалізацію студентів – у таблиці "Спеціалізація студентів". Щоб дізнатися, як оцінки змінилися для математичних спеціалізацій після останніх змін до навчального плану, потрібно переглянути записи з таблиці класів, які містять відповідні записи в таблиці спеціалізацій.

Підготовка зразків даних

У цьому прикладі створюється запит, який визначає, як останні зміни до навчального плану на факультеті математики вплинули на оцінки студентів-математиків. Використовуються такі два зразки таблиць: "Спеціалізація студентів" і "Списки класів". Додайте їх до бази даних.

Access можна додати ці зразки таблиць до бази даних кількома способами. Ви можете ввести дані вручну, скопіювати кожну таблицю до програми для роботи з електронними таблицями, а потім імпортувати аркуші до Access або вставити дані в текстовий редактор, наприклад Блокнот, а потім імпортувати дані з отриманих текстових файлів.

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

Спеціалізація студентів

Ідентифікатор студента

Рік

Спеціалізація

123456789

2005

МАТ

223334444

2005

АНГЛ

987654321

2005

МАТ

135791357

2005

ІСТ

147025836

2005

БІОЛ

707070707

2005

МАТ

123456789

2006

МАТ

223334444

2006

АНГЛ

987654321

2006

ПСИХ

135791357

2006

МИСТ

147025836

2006

БІОЛ

707070707

2006

МАТ

Списки класів

Ідентифікатор студента

Рік

Курс

Навчальний план

Номер курсу

Оцінка

123456789

2005

3

МАТ

221

A

123456789

2005

3

АНГЛ

101

B

123456789

2006

1

МАТ

242

C

123456789

2006

1

МАТ

224

C

223334444

2005

3

АНГЛ

112

A

223334444

2005

3

МАТ

120

C

223334444

2006

1

СОЦ

110

A

223334444

2006

1

АНГЛ

201

B

987654321

2005

3

МАТ

120

A

987654321

2005

3

ПСИХ

101

A

987654321

2006

1

МАТ

221

B

987654321

2006

1

МАТ

242

C

135791357

2005

3

ІСТ

102

A

135791357

2005

3

МИСТ

112

A

135791357

2006

1

МАТ

120

B

135791357

2006

1

МАТ

141

C

147025836

2005

3

БІОЛ

113

B

147025836

2005

3

ХІМ

113

B

147025836

2006

1

МАТ

120

D

147025836

2006

1

СТАТ

114

B

707070707

2005

3

МАТ

221

B

707070707

2005

3

СТАТ

114

A

707070707

2006

1

МАТ

242

D

707070707

2006

1

МАТ

224

C

Якщо ви хочете ввести зразок даних у програмі для роботи з електронними таблицями, ви можете пропустити наступний розділ.

Введення зразків даних уручну

  1. Відкрийте нову або наявну базу даних.

  2. На вкладці Створити в групі Таблиці натисніть кнопку Таблиця.

    Зображення стрічки Access

    Програма Access додасть нову пусту таблицю до бази даних.

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

  3. Двічі клацніть першу клітинку в рядку заголовка, а потім введіть ім’я поля в зразку таблиці.

    За замовчуванням програма Access позначає пусті поля в рядку заголовка текстом Додати нове поле, ось так:

    Нове поле в таблиці даних

  4. За допомогою клавіш зі стрілками перейдіть до наступної пустої клітинки заголовка, а потім введіть ім'я другого поля. (Також можна двічі клацнути нову клітинку.) Повторіть цю дію для кожного імені поля.

  5. Введіть дані в зразку таблиці.

    Коли ви вводите дані, програма Access визначає тип даних для кожного поля. Кожне поле має певний тип даних, наприклад "Числовий", "Текст" або "Дата й час". Настроювання типу даних забезпечує точність введення даних, а також допомагає уникнути помилок, наприклад, коли в арифметичній операції намагаються використати номер телефону. Для цих зразків таблиць дозвольте програмі Access визначити тип даних, але потім обов’язково перевірте тип даних кожного поля.

  6. Ввівши всі дані, натисніть кнопку Зберегти або клавіші Ctrl+S.

    З’явиться діалогове вікно Збереження документа.

  7. У полі Ім’я таблиці введіть ім’я зразка таблиці, а потім натисніть кнопку OK.

    Радимо використовувати назви зразків таблиць (наприклад, "Спеціалізація студентів"), оскільки запити в розділах з описом процедур у цій статті також використовують ці імена.

Ввівши всі зразки даних, ви готові порівняти дві таблиці.

Пропустіть наступний розділ ("Створення зразків аркушів"), якщо ви вже знаєте, як створити аркуш на основі зразків даних із таблиць у попередньому розділі.

Створення зразків аркушів

  1. Запустіть програму для роботи з електронними таблицями та створіть новий пустий файл. Якщо використовується Excel, нову пусту книгу буде створено за замовчуванням.

  2. Скопіюйте перший зразок таблиці з попереднього розділу та вставте його на першому аркуші, починаючи з першої клітинки. Обов’язково скопіюйте рядок заголовка, оскільки він містить імена полів зразка таблиці.

  3. За допомогою засобів, передбачених у програмі для роботи з електронними таблицями, надайте аркушу ім’я зразка таблиці. Наприклад, якщо ви вставили зразок даних Списки класів, назвіть аркуш "Списки класів".

  4. Повторіть кроки 2 та 3, скопіювавши другий зразок таблиці до пустого аркуша та перейменувавши аркуш.

    Примітка.: Можливо, знадобиться додати аркуші до файлу електронної таблиці. Відомості про додавання аркушів до файлу електронної таблиці див. в довідці програми для роботи з електронними таблицями.

  5. Збережіть книгу в зручному розташуванні на комп’ютері або в мережі та перейдіть до наступних кроків.

Створення таблиць бази даних з аркушів

  1. Відкрийте нову або наявну базу даних.

    На вкладці Зовнішні дані в групі Імпорт і зв’язування натисніть кнопку Excel.

    Зображення стрічки Access

    -або-

    Натисніть кнопку Додатково, а потім зі списку виберіть програму для роботи з електронними таблицями.

    Відкриється діалогове вікно Отримати зовнішні дані – Таблиця <ім’я програми>.

  2. Натисніть кнопку Огляд, знайдіть і відкрийте файл електронної таблиці, створений на попередніх кроках, і натисніть кнопку OK.

    Запуститься майстер імпорту електронних таблиць.

    За замовчуванням майстер вибирає перший аркуш у книзі ("Спеціалізація студентів", якщо ви дотримувались усіх інструкцій у попередньому розділі). Дані з цього аркуша відобразяться в нижній частині сторінки майстра.

  3. Натисніть кнопку Далі.

  4. На наступній сторінці майстра встановіть прапорець Перший рядок містить заголовки стовпців, а потім натисніть кнопку Далі.

  5. На наступній сторінці ви можете змінити імена й типи даних полів або виключити поля з операції імпорту за допомогою текстових полів і списків у розділі Параметри поля. У цьому прикладі не потрібно нічого міняти. Натисніть кнопку Далі.

  6. На наступній сторінці виберіть параметр Не використовувати первинний ключ і натисніть кнопку Далі.

  7. За замовчуванням програма Access застосує до нової таблиці ім’я аркуша. Прийміть це ім’я в полі Імпортувати до таблиці та натисніть кнопку Готово.

  8. На сторінці Зберегти етапи імпортування натисніть кнопку Закрити, щоб завершити роботу майстра.

  9. Повторюйте кроки 1–7, доки не створите таблицю з кожного аркуша у файлі електронної таблиці.

Порівняння зразків таблиць і пошук відповідних записів за допомогою об’єднань

Тепер ви готові порівняти таблиці "Списки класів" і "Спеціалізація студентів". Оскільки зв’язки між двома таблицями не встановлено, потрібно створити об’єднання між відповідними полями в запиті. Таблиці мають кілька спільних полів, і вам знадобиться створити об’єднання для кожної пари спільних полів: "Ідентифікатор студента", "Рік", "Навчальний план" (таблиця "Списки класів") і "Спеціалізація" (таблиця "Спеціалізація студентів"). У цьому прикладі вас цікавить лише математична спеціалізація, тому знадобиться обмежити результати запиту, скориставшись полем як умовою.

  1. Відкрийте базу даних, у якій ви зберегли зразки таблиць.

  2. На вкладці Створення натисніть кнопку Конструктор запитів.

  3. Двічі клацніть таблицю, яка містить записи, які потрібно відобразити , у цьому прикладі – таблицю Списки класів , а потім двічі клацніть таблицю, з якою її порівнюють , у цьому прикладі – таблицю Спеціалізація студентів .

  4. Перетягніть поле Ідентифікатор студента з таблиці Списки класів до поля Ідентифікатор студента таблиці Спеціалізація студентів. Між двома таблицями на бланку відобразиться лінія, яка позначає об’єднання. Двічі клацніть лінію, щоб відкрити діалогове вікно Параметри об’єднання.

  5. Ознайомтеся з трьома параметрами в діалоговому вікні Параметри об’єднання. За замовчуванням вибрано перший параметр. У деяких випадках потрібно включити додаткові рядки з однієї з таблиць. Оскільки ви хочете знайти лише однакові дані, залиште вибраним перший параметр об’єднання. Закрийте діалогове вікно Параметри об’єднання, натиснувши кнопку Скасувати.

  6. Тепер потрібно створити ще два об’єднання. Для цього перетягніть поле Рік із таблиці Списки класів до поля Рік таблиці Спеціалізація студентів, а потім перетягніть поле Навчальний план із таблиці Списки класів до поля Спеціалізація таблиці Спеціалізація студентів.

  7. У таблиці Списки класів двічі клацніть зірочку (*), щоб додати всі поля таблиці до бланку запитів.

    Примітка.: Якщо додати всі поля за допомогою зірочки, на бланку з'явиться лише один стовпець. Стовпець, що з'явиться, має ім'я таблиці, а потім крапку (.) і зірочку (*). У цьому прикладі стовпець називається Списки класів.*.

  8. У таблиці Спеціалізація студентів двічі клацніть поле Спеціалізація, щоб додати його до бланку.

  9. На бланку запиту зніміть прапорець у рядку Відображення стовпця Спеціалізація.

  10. У рядку Критерії стовпця Спеціалізація введіть МАТ.

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

    Запит відобразить оцінки з математики лише для студентів із математичною спеціалізацією.

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

Порівняння двох таблиць за допомогою поля як умови

Іноді може знадобитися порівняти таблиці на основі полів, які містять однакові дані, але мають різні типи даних. Наприклад, поле в одній таблиці може мати тип даних "Число", і ви хочете порівняти це поле з полем в іншій таблиці з типом даних "Текст". Поля, які містять схожі дані, але мають різні типи полів, можуть призвести до того, що числа зберігаються як текст (за структурою або з інших причин, як-от імпорт даних з іншої програми). Оскільки не можна створювати об'єднання між полями з різними типами даних, потрібно використати інший спосіб порівняння полів. Ви можете порівняти два поля з різними типами даних, використовуючи одне поле як умову для іншого.

Припустімо, що ви досліджуєте роботу навчальних закладів і хочете дізнатися, як зміни навчального плану на факультеті математики вплинули на оцінки студентів. Вас особливо цікавлять оцінки студентів-математиків. Ви вже маєте дві таблиці "Спеціалізація студентів" і "Списки класів". Оцінки зберігаються в таблиці "Списки класів", а дані про спеціалізацію студентів – у таблиці "Спеціалізація студентів". Щоб дізнатися, як оцінки змінилися для математичних спеціалізацій, потрібно поглянути на записи з таблиці класів, які містять відповідні записи в таблиці спеціалізацій. Проте одне з полів, за допомогою якого потрібно порівняти таблиці, має не такий тип даних, як його пара.

Щоб порівняти дві таблиці за допомогою поля як умови, створіть вибірковий запит, який охоплює обидві таблиці. Додайте поля, які потрібно відобразити, а також поле, що відповідає полю-умові. Потім створіть умову для порівняння таблиць. Ви можете створити скільки завгодно умов, щоб порівняти поля.

Щоб подивитися, як працює цей спосіб, скористайтеся зразками таблиць із попереднього розділу, але вам знадобиться змінити тип даних поля "Ідентифікатор студента" зразка таблиці "Спеціалізація студентів" із числового на текстовий. Оскільки не можна створити об’єднання між двома полями з різними типами даних, вам доведеться порівняти два поля "Ідентифікатор студента", використовуючи одне поле як умову для іншого.

Змінення типу даних поля "Ідентифікатор студента" в таблиці "Спеціалізація студентів"

  1. Відкрийте базу даних, у якій ви зберегли зразки таблиць.

  2. В області переходів клацніть правою кнопкою миші таблицю "Спеціалізація студентів" і в контекстному меню виберіть пункт Конструктор.

    Таблиця "Спеціалізація студентів" відкриється в режимі конструктора.

  3. У стовпці Тип даних змініть настройку для поля Ідентифікатор студента з Число на Текст.

  4. Закрийте таблицю "Спеціалізація студентів". Коли буде запропоновано зберегти зміни, натисніть кнопку Так.

Порівняння зразків таблиць і пошук відповідних записів за допомогою поля як умови

Нижче описано, як порівняти два поля "Ідентифікатор студента", використавши поле з таблиці "Списки класів" як умову для поля з таблиці "Спеціалізація студентів". За допомогою ключового слова Like можна порівняти поля, навіть якщо їхні типи даних різняться.

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

  2. Двічі клацніть елемент Списки класів і двічі клацніть елемент Спеціалізація студентів.

  3. Перетягніть поле Рік із таблиці Списки класів до поля Рік таблиці Спеціалізація студентів , а потім перетягніть поле Навчальний план із таблиці Списки класів до поля Спеціалізація таблиці Спеціалізація студентів . Оскільки ці поля мають однакові типи даних, їх можна порівняти за допомогою об'єднань. Об'єднання – це рекомендований спосіб порівняння полів з однаковим типом даних.

  4. У таблиці Списки класів двічі клацніть зірочку (*), щоб додати всі поля цієї таблиці до бланку запитів.

    Примітка.: Якщо додати всі поля за допомогою зірочки, на бланку з'явиться лише один стовпець. Стовпець, що з'явиться, має ім'я таблиці, а потім крапку (.) і зірочку (*). У цьому прикладі стовпець називається Списки класів.*.

  5. У таблиці Спеціалізація студентів двічі клацніть поле Ідентифікатор студента, щоб додати його до бланку.

  6. На бланку зніміть прапорець у рядку Відображення стовпця Ідентифікатор студента. У рядку Критерії стовпця Ідентифікатор студента введіть вираз Like [Списки класів].[Ідентифікатор студента].

  7. У таблиці Спеціалізація студентів двічі клацніть поле Спеціалізація, щоб додати його до бланку.

  8. На бланку зніміть прапорець у рядку Відображення стовпця Спеціалізація. У рядку Критерії введіть МАТ.

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

    Запит відобразить оцінки з математики лише для студентів із математичною спеціалізацією.

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

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.