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

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

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

Забележка : Съветникът за заявки за търсене на записи без съответствия не се поддържа в уеб приложения на Access или уеб бази данни.

В тази статия

Кога трябва да извършвам търсене на записи без съответствия?

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

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

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

Когато трябва да извършвам търсене на записи без съответствия?

По-долу са описани две често срещани обстоятелства, при които може да искате да сравните две таблици и да намерите записи без съответствия. В зависимост от вашите обстоятелства, намирането на записи без съответствия може да е първата от няколкото стъпки, които искате да изпълните. В тази статия се разглежда само намирането на записи без съответствия.

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

    Например в шаблона на базата данни Northwind данните за продукти се записват в таблицата "Продукти", а данни кои продукти са включени във всяка поръчка, се записват в таблицата "Подробни данни за поръчки". Тъй като в таблицата "Продукти" няма данни за поръчки, от прегледа само на таблицата "Продукти" не е възможно да се определи кои продукти никога не са продавани. Тази информация не може да се определи и от прегледа само на таблицата "Подробни данни за поръчки". Тъй като (по замисъл) таблицата "Подробни данни за поръчки" съдържа данни само за продукти, които са продавани, за да определите кои продукти никога не са продавани, трябва да сравните двете таблици.

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

  • Имате две таблици, които имат припокриваща се, излишна или конфликтна информация, и искате да ги консолидирате в една таблица.    

    Нека например да имате една таблица с име "Купувачи" и друга таблица с име "Клиенти". Таблиците са почти идентични, но едната или и двете таблици съдържат някои записи, които липсват в другата. За да консолидирате таблиците, трябва първо да определите кои записи са уникални за едната таблица или за другата таблица.

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

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

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

Забележка : Примерите в тази статия използват база данни, която е създадена с помощта на шаблона за бази данни Northwind.

Покажете ми как да настроя Northwind

  1. В раздела Файл щракнете върху Създай. Забележка: ако използвате Access 2007, щракнете върху бутона Microsoft Office Изображение на бутона Office и след това върху Създай.

  2. В зависимост от вашата версия на Access можете да потърсите Northwind в полето за търсене или в левия екран, под Категории шаблони да щракнете върху Локални шаблони.

  3. Под Локални шаблони щракнете върху Northwind 2007 – пример и след това щракнете върху Създаване.

  4. Следвайте указанията в страницата Northwind Traders (в раздела Начален екран), за да отворите базата данни, и след това затворете прозореца "Диалог за влизане".

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

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

  1. В раздела Създаване, в групата Заявки щракнете върху Съветник за заявки. Забележка: ако използвате Access 2007, в раздела Създаване, в групата Други щракнете върху Съветник за заявки.

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

  3. В първата страница на съветника изберете таблицата, която има записи без съответствия, и след това щракнете върху Напред. Ако например искате да видите списък с продукти на Northwind, които никога не са продавани, изберете таблицата "Продукти".

    Изберете таблица или заявка в диалоговия прозорец "Съветник за заявки за търсене на записи без съответствия"
  4. Във втората страница изберете таблицата, която е свързана, и след това щракнете върху Напред. За да следвате примера, изберете таблицата "Подробни данни за поръчки".

    Изберете таблица или заявка, която съдържа свързани записи, в диалоговия прозорец "Съветник за заявки за търсене на записи без съответствия"
  5. В третата страница изберете полетата, които свързват таблиците, щракнете върху < = > и след това щракнете върху Напред. Можете да изберете само едно поле от всяка таблица. За да следвате примера, изберете "ИД" от таблицата "Продукти" и "ИД на продукт" от таблицата "Подробни данни за поръчки". Проверете дали са съпоставени правилните полета, като прегледате текста в полето Съответстващи си полета.

    Изберете съответстващите си полета от таблиците в диалоговия прозорец "Съветник за заявки за търсене на записи без съответствия"

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

  6. В четвъртата страница щракнете двукратно върху полетата от първата таблица, които искате да видите, и след това щракнете върху Напред. За да следвате примера, изберете полетата "ИД" и "ИД на продукта".

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

    Въведете име за вашата заявка за записи без съответствия в диалоговия прозорец "Съветник за заявки за търсене на записи без съответствия"

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

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

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

  1. В раздела Създаване, в групата Заявки щракнете върху Съветник за заявки. Забележка: ако използвате Access 2007, в раздела Създаване, в групата Други щракнете върху Съветник за заявки.

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

  3. В първата страница на съветника изберете таблицата, която има записи без съответствия, и след това щракнете върху Напред. Ако например искате да видите списък с продукти на Northwind, които никога не са продавани, изберете таблицата "Продукти".

  4. Във втората страница изберете таблицата, която е свързана, и след това щракнете върху Напред. За да следвате примера, изберете таблицата "Подробни данни за поръчки".

  5. В третата страница изберете полетата, които свързват таблиците, щракнете върху < = > и след това щракнете върху Напред. Можете да изберете само едно поле от всяка таблица. За да следвате примера, изберете "ИД" от таблицата "Продукти" и "ИД на продукт" от таблицата "Подробни данни за поръчки". Проверете дали са съпоставени правилните полета, като прегледате текста в полето Съответстващи си полета. Можете да съедините останалите полета, след като сте изпълнили съветника.

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

  6. В четвъртата страница щракнете двукратно върху полетата от първата таблица, които искате да видите, и след това щракнете върху Напред. За да следвате примера, изберете полетата "ИД" и "ИД на продукта".

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

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

  8. Обърнете внимание, че в мрежата за проектиране на заявки двете таблици са съединени в полетата (в този пример "ИД" и "ИД на продукт"), които зададохте в третата страница на съветника. Създайте съединение за всяка от оставащите двойки свързани полета, като ги плъзнете от първата таблица (таблицата, която има записи без съответствия) във втората таблица. За този пример плъзнете полето "Ценоразпис" от таблицата "Продукти" в полето "Единична цена" от таблицата "Подробни данни за поръчки".

  9. Щракнете двукратно върху съединение (линията, свързваща полетата), за да покажете диалоговия прозорец Свойства на съединението. За всяко съединение изберете опцията, която включва всички записи от таблицата "Продукти", и след това щракнете върху OK.

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

    Типът на съединението е означен чрез стила на линията.

    1. Когато създадете съединението между полетата "Ценоразпис" и "Единична цена", то ограничава изхода и от двете таблици. В резултата от заявката се включват само записите със съответстващи данни в полетата и в двете таблици.

    2. След като редактирате свойствата на съединението, съединението ограничава само таблицата, към която сочи стрелката. Всички записи в таблицата, от които стрелката излиза, се включват в резултата от заявката.

    Забележка : Уверете се, че всички стрелки в съединенията сочат в една и съща посока.

  10. За таблицата, която има свързани записи (в този пример таблицата "Подробни данни за поръчки"), щракнете двукратно върху всяко поле, което е съединено към първата таблица, освен полето, което избрахте в третата страница на съветника (в този случай полето "ИД на продукта"). За всяко от тези полета изчистете квадратчето за отметка в реда Покажи и въведете Е Null в реда Критерии.

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

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

    Заявката връща имената на продуктите, които не са част от съществуващи поръчки.

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

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

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

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

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

  4. В мрежата за проектиране на заявки двете таблици трябва да имат линии, наречени съединения, които ги свързват от техните свързани полета. Ако няма съединения, създайте ги, като плъзнете всяко свързано поле от първата таблица (таблицата, която има записи без съответствия) до втората таблица (таблицата, която има свързани записи).

  5. Щракнете двукратно върху съединението, за да отворите диалоговия прозорец Свойства на съединението. За всяко съединение изберете опция 2 и след това щракнете върху OK.

    В мрежата за проектиране на заявки съединенията се променят и имат стрелки в единия край.

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

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

    Ако желаете, въведете критерии за всяко от тези полета или създайте изчисляеми полета.

  7. За таблицата, която има свързани записи, щракнете двукратно върху всяко поле, което е съединено към първата таблица. За всяко от тези полета изчистете полето в реда Покажи и въведете Е Null в реда Критерии.

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

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

Вж. също

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

Намиране на дублирани записи със заявка

Използване на заявка за обединение, за да се комбинират няколко заявки в един резултат

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

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

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

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

×