Сравняване на две таблици и намиране само на съвпадащи данни

Сравняване на две таблици и намиране само на съвпадащи данни

Понякога искате да прегледате записите от една таблица на Access само ако има съответстващи записи в друга таблица на Access, които съдържат едно или повече полета със съответстващи данни. Например искате да прегледате записите за служителите, които са обработили поне една поръчка, за да определите кои служители заслужават бонус. Или искате да прегледате информацията за връзка на клиентите от града, в който живее даден служител, за да определите служители за срещи с клиентите.

За да сравните две таблици на Access и да намерите съответстващите данни, можете:

  • Да създадете заявка, която съединява полета от двете таблици, когато полетата съдържат съответстваща информация, като използвате или съществуваща релация, или съединение, което сте създали за целите на заявката. Този метод осигурява оптимална ефективност (предвид скоростта, с която заявката връща резултати), но не можете да съединявате полета, съдържащи различни типове данни.

  • Да създадете заявка, която сравнява полета, като използва едно поле като критерий за другото. Използването на поле като критерий за друго поле обикновено е по-бавно в сравнение с използването на съединения, защото съединенията елиминират редове от резултатите от заявката преди четене на базовите таблици, докато критериите се прилагат към резултатите от заявката след четенето на базовите таблици. Можете обаче да използвате поле като критерий за поле, за да сравнявате полета, съдържащи различни типове данни, което не можете да направите с помощта на съединения.

Тази статия описва как да сравните две таблици, за да намерите съвпадащите данни, и предоставя примерни данни, които можете да използвате с примерните процедури.

Какво искате да направите?

Сравняване на две таблици с използване на съединения

Сравняване на две таблици с използване на поле като критерий

Сравняване на две таблици с използване на съединения

За да сравните две таблици, като използвате съединения, трябва да създадете заявка за избиране, която да включва и двете таблици. Ако няма релация между таблиците на база полетата, които съдържат съответстващите данни, трябва да създадете съединение на полетата, които искате да прегледате за съответствие. Можете да създадете толкова съединения, колкото желаете, но във всяка двойка съединените полета трябва да са с данни от един и същ или съвместим тип.

Да предположим, че сте изследовател в колеж и искате да разберете как последните промени в учебната програма на факултета по математика са се отразили на оценките на студентите. По-конкретно ви интересуват оценките на студентите от специалност "Математика". Вече имате таблица с данни за студентите по специалности и таблица с данни за записаните курсове. Данните за оценките се съхраняват в таблицата "Записани курсове", а данните за студентите по специалности – в таблицата "Студенти по специалности". За да видите как са се променили оценките на студентите от специалност "Математика" след последните промени в учебната програма, трябва да прегледате записите от таблицата със записани курсове, които имат съответстващи записи в таблицата със специалности.

Подготвяне на примерни данни

В този пример ще създадете заявка, която определя как последните промени в учебната програма на факултета по математика са се отразили на оценките на студентите. Можете да използвате следните две примерни таблици: "Студенти по специалности" и "Записани курсове". Добавете тези две таблици към база данни.

Microsoft Office Access 2007 предоставя няколко начина за добавяне на тези примерни таблици в база данни. Можете да въведете данните ръчно, можете да копирате всяка таблица в програма за електронни таблици (като например Microsoft Office Excel 2007) и след това да импортирате работните листове в Office Access 2007 можете да поставите данните в текстов редактор, като например Notepad, а след това да импортирате данните от създадените текстови файлове.

Стъпките в този раздел обясняват как да въведете данните ръчно в празен лист с данни, а също и как да копирате примерните таблици в 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 добавя нова, празна таблица в базата данни.

    Забележка : Не е необходимо да изпълнявате тази стъпка, ако отваряте нова, празна база данни, но ще трябва да я изпълните, когато се налага да добавите таблица към базата данни.

  3. Щракнете двукратно върху първата клетка в заглавния ред и въведете името на полето в примерната таблица.

    По подразбиране Access показва празни полета в заглавния ред с текст Добавяне на ново поле например:

    ново поле в лист с данни

  4. С клавишите със стрелки отидете до следващата празна заглавна клетка и въведете името на второто поле. (Можете също да щракнете двукратно върху новата клетка.). Повторете тази стъпка за всяко име на поле.

  5. Въведете данните в примерната таблица.

    Докато въвеждате данните, Access определя типа данни за всяко поле. Всяко поле има конкретен тип данни, като например "Число", "Текст" или "Дата/час". Задаването на тип на данните помага за правилното им въвеждане, а също и за избягване на грешки, като например използване на телефонен номер в изчисление. За тези примерни таблици оставете Access да определи типа на данните, но непременно прегледайте зададения тип данни за всяко поле.

  6. След като приключите с въвеждането на данните, щракнете върху Запиши или натиснете CTRL + S.

    Появява се диалоговият прозорец Запиши като.

  7. В полето Име на таблица въведете името на примерната таблица и след това щракнете върху OK.

    Можете да използвате имената на примерните таблици (например "Студенти по специалности"), защото тези имена се използват в заявките в процедурите, описани в тази статия.

След като приключите с въвеждането на примерните данни, сте готови да сравните двете таблици.

Пропуснете следващия раздел (Създаване на примерните работни листове), освен ако не искате да научите как да създадете работен лист, базиран на примерните данни от таблиците в предишния раздел.

Създаване на примерните работни листове

  1. Стартирайте своята програма за електронни таблици и създайте нов, празен файл. Ако използвате Excel, когато го стартирате, по подразбиране се създава нова, празна работна книга.

  2. Копирайте първата примерна таблица от предишния раздел и я поставете в първия работен лист, започвайки от първата клетка. Непременно копирайте заглавния ред, тъй като той съдържа имената на полетата в примерната таблица.

  3. Използвайте функционалността на вашата програма за електронни таблици и дайте на работния лист същото име като това на примерната таблица. Например когато поставите примерните данни от Записани курсове, дайте на работния лист името "Записани курсове".

  4. Повторете стъпки 2 и 3, като копирате втората примерна таблица в празен работен лист и преименувате работния лист.

    Забележка : Може да се наложи да добавите работни листове във файла с електронната таблица. За информация относно добавянето на работни листове във файл с електронна таблица вижте помощта за програмата за електронни таблици.

  5. Запишете работната книга на удобно място на компютъра или в мрежата и преминете към следващия набор от стъпки.

Създаване на таблици на база данни от работните листове

  1. В нова или съществуваща база данни.

    В раздела Външни данни, в групата Импортиране щракнете върху Excel.

    Добавяне на приложение

    -или-

    Щракнете върху Още и изберете програма за електронни таблици от списъка.

    Показва се диалоговият прозорец Получаване на външни данни – електронна таблица на <име на програмата>.

  2. Щракнете върху Преглед, намерете и отворете файла с електронната таблица, който създадохте в предишните стъпки, и след това щракнете върху OK.

    Стартира се съветникът за импортиране на електронни таблици.

    По подразбиране съветникът избира първия работен лист в работната книга ("Студенти по специалности", ако сте изпълнили стъпките в предишния раздел) и данните от този работен лист се показват в долната част на страницата на съветника.

  3. Щракнете върху Напред.

  4. На следващата страница на съветника маркирайте квадратчето за отметка Първият ред съдържа заглавия на колони и след това щракнете върху Напред.

  5. На следващата страница можете да използвате текстовите полета и списъците под Опции за полета, за да промените имената и типовете на данните за полетата или да пропуснете полета от операцията за импортиране. За този пример не трябва да променяте нищо. Щракнете върху Напред.

  6. На следващата страница изберете опцията Без първичен ключ и натиснете Напред.

  7. По подразбиране Access поставя името на работния лист на новата таблица. Приемете името в полето Импортирай в таблица и щракнете върху Готово.

  8. На страницата Запиши стъпките на импортирането щракнете върху Затвори, за да завършите работата със съветника.

  9. Повтаряйте стъпки от 1 до 7, докато създадете таблица от всеки работен лист във файла с електронната таблица.

Сравняване на примерните таблици и намиране на съответстващи записи с използване на съединения

Сега сте готови да сравните таблицата "Студенти по специалности" и таблицата "Записани курсове". Тъй като не сте дефинирали релации между двете таблици, трябва да създадете съединения между съответните полета в заявката. Таблиците имат повече от едно общо поле, затова ще трябва да се създаде съединение за всяка двойка общи полета: "ИД на студент", "Година" и "Учебна програма (таблицата "Записани курсове") и "Специалност" (таблицата "Студенти по специалности"). В този пример ви интересуват само студентите от специалност "Математика", затова ще използвате също и критерий за поле, за да ограничите резултатите от заявката.

  1. Отворете базата данни, в която сте записали примерните таблици.

  2. В раздела Създаване щракнете върху Проектиране на заявки.

  3. В диалоговия прозорец Показване на таблица щракнете двукратно върху таблицата със записите, които искате да покажете, в този пример – таблицата Записани курсове, след което щракнете двукратно върху таблицата, с която сравнявате, в този пример – таблицата Студенти по специалности.

  4. Затворете диалоговия прозорец Показване на таблица.

  5. Плъзнете полето ИД на студент от таблицата Записани курсове в полето ИД на студент на таблицата Студенти по специалности. В мрежата за проектиране се появява линия между двете таблици, което означава, че сте създали съединение. Щракнете двукратно върху линията, за да отворите диалоговия прозорец Свойства на съединението.

  6. Разгледайте трите опции в диалоговия прозорец Свойства на съединението. По подразбиране е избрана опция 1. В някои случаи трябва да промените свойствата на съединението, за да включите допълнителни редове от една таблица. Тъй като искате да намерите само съвпадащи данни, оставете избраната опция 1 за съединението. Затворете диалоговия прозорец Свойства на съединението, като щракнете върху Отказ.

  7. Трябва да създадете още две съединения. Създайте тези съединения, като плъзнете полето Година от таблицата Записани курсове в полето Година на таблицата Студенти по специалности и след това плъзнете полето Учебна програма от таблицата Записани курсове в полето Специалност на таблицата Студенти по специалности.

  8. В таблицата Записани курсове щракнете двукратно върху звездичката (*), за да добавите всички полета на таблицата към мрежата за проектиране на заявки.

    Забележка : Когато използвате звездичката, за да добавите всички полета, в мрежата за проектиране се показва само една колона. Колоната, която се показва, е името на таблицата, последвана от точка (.) и звездичка (*). В този пример колоната е с име Записани курсове.*.

  9. В таблицата Студенти по специалности щракнете двукратно върху полето Специалност, за да го добавите към мрежата.

  10. Изчистете квадратчето за отметка в реда Покажи на колоната Специалност в мрежата за проектиране на заявки.

  11. В реда Критерии на колоната Специалност въведете МАТЕМ..

  12. В раздела Проектиране, в групата Резултати щракнете върху Изпълни.

    Заявката се изпълнява и след това се показват оценките по математика само за студентите от специалност "Математика".

Най-горе на страницата

Сравняване на две таблици с използване на поле като критерий

Понякога искате да сравните таблици въз основа на полета, които съдържат съответстващи данни, но от различен тип. Например в таблицата има поле с данни от числов тип, което искате да сравните с поле в друга таблица, съдържащо данни от тип текст. Полета, които съдържат подобни данни, но от различен тип, може да се получат, когато числа са записани като текст – било то нарочно или по други причини – например при импортиране на данни от друга програма. Тъй като не можете да създавате съединения между полетата, съдържащи различни типове данни, трябва да използвате друг начин за сравняване на полетата. Можете да сравните две полета, съдържащи различни типове данни, като използвате едното поле като критерий за другото.

Да предположим, че сте изследовател в колеж и искате да разберете как последните промени в учебната програма на факултета по математика са се отразили на оценките на студентите. По-конкретно ви интересуват оценките на студентите от специалност "Математика". Вече имате таблица "Студенти по специалности" и таблица "Записани курсове". Данните за оценките се съхраняват в таблицата "Записани курсове", а данните за студентите по специалности – в таблицата "Студенти по специалности". За да видите как са се променили оценките на студентите от специалност "Математика", трябва да прегледате записите от таблицата "Записани курсове", които имат съответстващи записи в таблицата "Студенти по специалности". Обаче едно от полетата, които искате да използвате за сравняване на таблиците, съдържа различен тип данни от съответстващото му поле.

За да сравните две таблици, като използвате поле като критерий, трябва да създадете заявка за избиране, която да включва и двете таблици. Трябва да включите полетата, които искате да се покажат, както и полето, което съответства на полето критерий. След това трябва да създадете критерий за сравняване на таблиците. Можете да създадете толкова критерии за сравняване на полета, колкото желаете.

За илюстриране на този метод ще използвате примерните таблици от предишния раздел, но ще промените типа на данните за полето "ИД на студент" в примерната таблица "Студенти по специалности" от число – на текст. Тъй като не можете да създадете съединение между две полета, които съдържат различни типове данни, ще трябва да сравните двете полета "ИД на студент", като използвате едното поле като критерий за другото.

Промяна на типа на данните за полето "ИД на студент" в "Студенти по специалности"

  1. Отворете базата данни, в която сте записали примерните таблици.

  2. В навигационния екран щракнете с десния бутон върху таблицата "Студенти по специалности" и след това щракнете върху Изглед за проектиране в контекстното меню.

    Таблицата "Студенти по специалности" се отваря в изглед за проектиране.

  3. В колоната Тип на данните променете настройката за ИД на студент от Число да Текст.

  4. Затворете таблицата "Студенти по специалности". Когато бъдете подканени да запишете промените, щракнете върху Да.

Сравняване на примерните таблици и намиране на съответстващи записи с използване на критерий за поле

Следващата процедура показва как да сравните двете полета "ИД на студент", като използвате полето от "Записани курсове" като критерий за полето от "Студенти по специалности". С ключовата дума Като можете да сравните полетата, въпреки че съдържат различни типове данни.

  1. В раздела Създаване, в групата Други щракнете върху Проектиране на заявки.

  2. В диалоговия прозорец Показване на таблица щракнете двукратно върху Записани курсове и след това щракнете двукратно върху Студенти по специалности.

  3. Затворете диалоговия прозорец Показване на таблица.

  4. Плъзнете полето Година от таблицата Записани курсове в полето Година на таблицата Студенти по специалности и след това плъзнете полето Учебна програма от таблицата Записани курсове в полето Специалност на таблицата Студенти по специалности. Тъй като тези полета имат един и същи тип данни, можете да ги сравните, като използвате съединения. Съединенията са предпочитаният метод за сравняване на полета, които имат един и същ тип данни.

  5. Щракнете двукратно върху звездичката (*) в таблицата Записани курсове, за да добавите всички полета на тази таблица към мрежата за проектиране на заявки.

    Забележка : Когато използвате звездичката, за да добавите всички полета, в мрежата за проектиране се показва само една колона. Колоната, която се показва, е името на таблицата, последвана от точка (.) и звездичка (*). В този пример колоната е с име Записани курсове.*.

  6. В таблицата Студенти по специалности щракнете двукратно върху полето ИД на студент, за да го добавите към мрежата.

  7. Изчистете квадратчето за отметка в реда Покажи на колоната ИД на студент в мрежата за проектиране. В реда Критерии в колоната ИД на студент въведете Като [Записани курсове].[ИД на студент].

  8. В таблицата Студенти по специалности щракнете двукратно върху полето Специалност, за да го добавите към мрежата.

  9. Изчистете квадратчето за отметка в реда Покажи на колоната Специалност в мрежата за проектиране. В реда Критерии въведете МАТЕМ..

  10. В раздела Проектиране, в групата Резултати щракнете върху Изпълни.

    Заявката се изпълнява и след това се показват оценките по математика само за студентите от специалност "Математика".

Най-горе на страницата

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към участниците в Office Insider

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×