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

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

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

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

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

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

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

У цій статті

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

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

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

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

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

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

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

У програмі Microsoft Office Access 2007 передбачено кілька способів, як можна додати ці зразки таблиць до бази даних. Ви можете ввести дані вручну, скопіювати кожну таблицю до програми для роботи з електронними таблицями (як-от, Microsoft Office Excel 2007), а потім імпортувати аркуші до програми Office Access 2007, або вставити дані в текстовому редакторі (як-от, Блокноті), а потім імпортувати їх з отриманих текстових файлів.

У цьому розділі пояснюється, як ввести дані вручну в пустій таблиці даних, а також як скопіювати зразки таблиць до програми 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. У рядку Критерії стовпця Спеціалізація введіть МАТ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. У діалоговому вікні Відображення таблиці двічі клацніть таблицю Списки класів, а потім – Спеціалізація студентів.

  3. Закрийте діалогове вікно Відображення таблиці.

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

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

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

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

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

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

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

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

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

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

Отримуйте нові функції раніше за інших
Приєднайтеся до оцінювачів Office

Ця інформація корисна?

Дякуємо за ваш відгук!

Дякуємо за відгук! Схоже, вам може стати в нагоді допомога одного з наших спеціалістів служби підтримки Office, з яким ми вас можемо з’єднати.

×