Използване на многозначни полета в заявки

Забележка:  Бихме искали да ви осигурим най-новото помощно съдържание възможно най-бързо на вашия собствен език. Тази страница е преведена чрез автоматизация и може да съдържа граматически грешки и несъответствия. Нашата цел е това съдържание да ви бъде полезно. Можете ли да ни кажете дали информацията е била полезна за вас, в дъното на тази страница? Ето статията на английски за бърза справка.

В Microsoft Office Access 2007 можете да създадете поле, което поддържа няколко стойности, като например списък с хора, на които сте възложили проблем. Многозначните полета са подходящи за определени ситуации, когато например използвате Office Access 2007, за да работите с информация, съхранена в списък на Windows SharePoint Services 3.0 и този списък съдържа поле, което използва един типовете многозначни полета налични в Windows SharePoint Services 3.0.

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

В тази статия

Какво представлява Многозначното поле?

Въвеждане на заявки

Показване на многозначно поле в заявка

Показване на отделните стойности в многозначно поле

Разбиране на обвързаната стойност и стойност за показване в справочно поле

Как да показвате обвързаната стойност в заявка

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

Търсене на повече от една стойност в многозначно поле

Разбиране на въздействието на число. Поле за стойност в списъка на полетата

Преброяване, групиране и използване на други агрегатни функции

Използване на заявка за добавяне с многозначно поле

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

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

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

Какво означава многозначно поле?

Да предположим, че трябва да възложите задача на един от служителите или доставчиците си, но решавате, че трябва да я възложите на повече от едно лице. Може да създадете многозначно поле в Office Access 2007, което ви позволява да избирате хората от списък.

Многозначно поле

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

Разгъващ се списък на многозначно поле

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

Многозначно поле със стойности, разделени със запетаи

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

Може би се чудите защо Office Access 2007 позволява съхраняването на повече от една стойност в поле, когато повечето рационални системи за управление на бази данни забраняват това. Отговорът е, че ядрото за управление на бази данни в Office Access 2007 всъщност не съхранява стойностите в едно поле. Въпреки че това, което виждате и с което работите, изглежда като едно поле, в действителност стойностите се съхраняват самостоятелно и се управляват в скрити системни таблици. Машината на базата данни на Access върши това вместо вас, като автоматично отделя данните и отново ги връща обратно, за да постави данните в едно поле.

На технически език едно многозначно поле на Access моделира една връзка много към много. Например, да разгледаме една таблица на събития, в която възлагате отговорността за всяко събитие на един или повече служители. Да предположим, че създадете едно многозначно поле, наречено "AssignedTo" за възлагане на събитията на служителите. Връзката между събитията и служителите е от типа "много към много". Това означава, че може да имате много служители, присвоени на едно събитие, а също и всеки от служителите, присвоен на много събития.

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

Въведение в заявките

Базите данни съществуват главно с цел да обслужват информация: "Кой е нашия най-търсен продукт? Кой е най-добрият ни клиент? Къде не са постигнати нашите планирани продажби?" Всичко това са въпроси, които може с пълно основание да зададете на добре проектирана база данни. За да получите отговорите от вашата база данни на Access, вие създавате заявка и въвеждате необходимите критерии. Данните в заявка могат да идват от една или няколко таблици. След като Access извлече данните, които отговарят на въпроса ви, можете да разгледате и анализирате данните. След като веднъж сте създали заявка, можете да я използвате като основа за формуляр, отчет, диаграма или дори друга заявка.

Office Access 2007 ви позволява да използвате многозначни полета в определени заявки и по определени начини. Можете да покажете многозначно поле в заявка, да покажете отделни стойности в многозначно поле в заявка и да извършите определени сумиращи операции и заявки за действие, използвайки многозначни полета.

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

Показване на многозначно поле в заявка

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

  1. Щракнете върху бутона Microsoft Office Изображение на бутона Office и след това изберете Отвори.

  2. В диалоговия прозорец Отвори изберете и отворете базата данни.

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

    Изображение на лентата на Access

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

  5. Щракнете върху Затвори.

  6. Плъзнете полетата, които искате да използвате към мрежата за проектиране на заявки. В този пример плъзнете полето Title и многозначното поле AssignedTo към мрежата на заявката.

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

Резултатът от заявката ще изглежда като нещо подобно на следващата фигура – едната колона ще показва заглавието на резултата, а втората – многозначното поле:

Резултат на заявката, показващ полетата за заглавие и присвояване

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

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

  2. Щракнете върху Изглед за SQL.

SQL командата изглежда така:

SELECT Issues.Title, 
Issues.AssignedTo
FROM Issues;

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

Показване на отделни стойности в многозначно поле

Нека искате да видите многозначното поле AssignedTo разгънато (наричано понякога разтеглено), така че всяко негово име или стойност да се появява на отделен ред. За да направите това, трябва да зададете свойството Стойност като добавите низа ".Value" към AssignedTo в реда Поле, както е показано тук в мрежата на заявката:

Мрежа на заявката, показваща заглавие и стойност за присвояване

Когато задавате AssignedTo в реда на Поле, Access показва всичките стойности в многозначното поле само в един ред, когато изпълните заявката. Когато обаче използвате свойството Value, както и при AssignedTo.Value, Access показва многозначното поле в разширена форма, така че всяка стойност се появява в самостоятелен ред. Можете да създадете заявка за показване на отделни стойности, използвайки следната процедура:

  1. Щракнете върху бутона Microsoft Office Изображение на бутона Office и след това изберете Отвори.

  2. В диалоговия прозорец Отвори изберете и отворете базата данни.

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

    Изображение на лентата на Access

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

  5. Щракнете върху Затвори.

  6. Плъзнете полетата, които искате да използвате (в този пример, многозначното поле, наречено "Присвоена стойност"), към мрежата на заявката.

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

Резултат от заявката, показващ заглавието и отделните присвоени стойности

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

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

  2. Щракнете върху Изглед за SQL.

SQL командата изглежда така:

SELECT Issues.Title, 
Issues.AssignedTo.Value
FROM Issues;

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

Разбиране на обвързаната стойност и показваната стойност в поле за справка

Многозначното поле е поле за справка. Полето за справка е поле в таблица, чиято стойност се извлича от друга таблица или заявка, или от списък със стойности. Access поддържа еднозначни полета за справка от преди много версии. Многозначните полета за справка са нови за Office Access 2007. Предназначението на едно поле за справка е да замести показването на номер, например ИД (или друга стойност на външен ключ) с нещо по-смислено, например име. Вместо например да покаже номер на ИД на контакт, Access може са покаже име на контакта. Номерът на ИД на контакта е обвързаната стойност. Тя се търси автоматично в таблица източник или заявка и се замества с името на контакта. Името на контакта е показваната стойност.

Както при еднозначно поле, което има показвана и обвързана стойност, многозначното поле има показвани стойности, които се показват в потребителския интерфейс, и обвързани стойности, които се съхраняват в таблицата. За всеки запис в многозначно поле показваната стойност е "справочната" на базата на обвързаната стойност.

Това означава, че Access често показва справочната показвана стойност, която не е същата като обвързаната стойност, която се съхранява в полето. В предишния пример, който използва полето AssignedTo, набор от ИД стойности на служители от заявката "Допълнителни данни за контакти" се съхранява в полето AssignedTo. Заявката "Разширени контакти" бе избрана като "Източник на редове", когато се създаваше многозначното поле.

Тези идентификатори на служители са обвързаните стойности. Тъй като полето AssignedTo е поле за справка, Access показва набора справочни стойности в резултата от заявката – в този случай, имената на контактите. Имената на контактите са показваните стойности.

Лист с данни с показвани стойности в сравнение с лист с данни с обвързани стойности

1. Показваните стойности.

2. Обвързаните стойности.

Можете да видите свойства за справки за многозначно поле в режим на проектиране. Ето как:

  1. Щракнете върху бутона Microsoft Office Изображение на бутона Office и след това изберете Отвори.

  2. В диалоговия прозорец Отвори изберете и отворете базата данни.

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

  4. Щракнете върху Режим на проектиране.

  5. Щракнете върху многозначното поле (щракнете например върху AssignedTo).

  6. Под Свойства на полето щракнете върху раздела Търсене.

Свойства на многозначно справочно поле

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

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

Как да се покаже обвързана стойност в заявка

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

  1. Щракнете върху бутона Microsoft Office Изображение на бутона Office и след това изберете Отвори.

  2. В диалоговия прозорец Отвори изберете и отворете базата данни.

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

    Изображение на лентата на Access

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

  5. Щракнете върху Затвори.

  6. Плъзнете полетата, които искате да използвате към мрежата за проектиране на заявки. В този пример плъзнете полето Title и многозначното поле AssignedTo.Value към мрежата на заявката.

  7. Щракнете върху полето AssignedTo.Value в мрежата за заявки, така че това поле да приеме фокуса.

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

  9. В "Списък на свойствата" на раздела Търсене в свойството Управление на дисплея изберете Текстово поле.

Свойство 'Управление на дисплея' в конструктор на заявки

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

Обвързана стойност, показана в резултат от заявка

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

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

Да допуснем, че искате да видите проблемите, възложени на "Петър Банков". Можете да въведете критерии на заявка в реда "Критерии" в мрежата за заявки, но когато въвеждате критерии за поле за справка, трябва да въведете обвързаната стойност, а не показваната стойност. В този случай вие определяте, че обвързаната стойност за Петър Банков е 6. Това е съответната стойност на първичния ключ в заявката "Допълнителни данни за контакти" за Петър.

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

  1. Щракнете върху бутона Microsoft Office Изображение на бутона Office и след това изберете Отвори.

  2. В диалоговия прозорец Отвори изберете и отворете базата данни.

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

    Изображение на лентата на Access

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

  5. Щракнете върху Затвори.

  6. Плъзнете полетата, които искате да използвате, към мрежата за заявки. В този случай плъзнете Title към първата колона в мрежата. След това плъзнете AssignedTo към втората колона.

  7. В раздела на мрежата за заявки под AssignedTo в реда "Критерии" въведете 6. Забележете, че въвеждате обвързаната стойност, а не показваната стойност.

    Мрежа за заявки с критерии за многозначно поле

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

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

Резултат от заявка, където стойността на AssignedTo включва 6

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

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

  2. Щракнете върху Изглед за SQL.

SQL командата изглежда така:

SELECT Issues.AssignedTo
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6));

Търсене на текст вместо номер на ИД

Ами ако прецените, че записите на номерата на ИД са неудобни и предпочитате да въвеждате името "Петър Банков" като търсена стойност? За да работи това, трябва да имате поле в резултата от заявката, което съдържа текстово име. По този начин можете да търсите "Петър Банков" в това поле.

Не можете да използвате полето AssignedTo.Value, понеже неговата обвързана стойност е ИД и следователно трябва да въведете ИД, за да филтрирате това поле.

В този пример полето за името на контакта не се намира в таблица. То се намира в заявката източник, която осигурява данни за многозначното поле AssignedTo. Можете да съедините таблицата или заявката източник за многозначното поле с таблицата, която съдържа многозначното поле, за да включите поле (в този пример това е името на контакта) от таблицата или заявката източник в резултата от заявката. След това можете да търсите това поле вместо многозначното поле.

  1. Щракнете върху бутона Microsoft Office Изображение на бутона Office и след това изберете Отвори.

  2. В диалоговия прозорец Отвори изберете и отворете базата данни.

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

    Изображение на лентата на Access

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

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

  6. Щракнете върху Затвори.

  7. Плъзнете полетата, които искате да използвате, към мрежата за заявки. В този пример плъзнете Title от таблицата "Проблеми" към първата колона на мрежата. След това плъзнете Име на контакт от заявката "Допълнителни данни за контакти" към втората колона и изчистете квадратчето "Покажи". После плъзнете AssignedTo към третата колона.

  8. Ако не се вижда свързваща линия между полето ID в заявката "Допълнителни данни за контакти" и полето AssignedTo.Value както е показано по-долу, щракнете и плъзнете от полето ID в заявката "Допълнителни данни за контакти" към полето AssignedTo.Value в таблицата "Проблеми".

    Показва се свързваща линия.

    Ако се виждат някакви други свързващи линии, премахнете ги. За да премахнете свързваща линия, щракнете върху нея, за да осветите, и след това натиснете Delete.

  9. В мрежата за заявки под Име на контакт в реда "Критерии въведете "Петър Банков".

    Мрежа за заявки с критерии AssignedTo съдържащи "Петър Банков"

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

Когато изпълните заявката, резултатът се показва в изглед на лист с данни. Забележете, че резултатите от заявката показват само редовете в които присъства "Петър Банков". Този метод работи, понеже съединението между ID в таблицата източник и полето AssignedTo.Value връща отделен ред за всяка стойност в многозначното поле; а всеки ред също съдържа поле "Име на контакт" с пълното име. Тъй като "Име на контакт" е изчислено поле вместо да е поле за справка, няма обвързана и показвана стойност. Има само една стойност – името на контакта. По този начин можете да подадете съответния текст, в този случай "Петър Банков."

Резултат от заявки с AssignedTo съдържащо ''Петър Банков''

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

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

  2. Щракнете върху Изглед за SQL.

SQL командата изглежда така:

SELECT Issues.Title, Issues.AssignedTo 
FROM [Contacts Extended] INNER JOIN Issues ON
[Contacts Extended].ID = Issues.AssignedTo.Value
WHERE ((([Contacts Extended].[Contact Name])=
"Kelly Rollin"));

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

Търсене на повече от една стойност в многозначно поле

Понякога ви е нужно да търсите за съвпадение с повече от една стойност. Да предположим, че искате да видите тези проблеми, в които и "Петър Банков" и "Вяра Калнъкова" са измежду стойностите в полето AssignedTo. Обвързаната стойност за Петър Банков е 6, а обвързаната стойност за Вяра Калнъкова е 10. За да зададете няколко критерия за многозначно поле, можете да използвате операторите AND и OR.

За да създадете заявката, използвайте следната процедура.

  1. Щракнете върху бутона Microsoft Office Изображение на бутона Office и след това изберете Отвори.

  2. В диалоговия прозорец Отвори изберете и отворете базата данни.

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

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

  5. Щракнете върху Затвори.

  6. Плъзнете полетата, които искате да използвате, към мрежата за заявки. В този случай плъзнете Title към първата колона в мрежата. След това плъзнете AssignedTo към втората колона.

  7. В мрежата на заявката под присвоени, в реда критерии въведете 6 и 10.

    Заявка, показваща използването на AND в многозначно поле

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

Когато изпълните заявката, резултатът се показва в изглед на лист с данни.

Резултат от заявка, показващ използването на AND в многозначно поле

Резултатът показва само проблемите, които за възложени и на Петър Банков, и на Вяра Калнъкова. Когато създавате заявка, използвайки режим на проектиране, Access автоматично създава съответната SQL команда. SQL е използваният от Access език за заявки. Можете да превключите на изглед за SQL, за да видите SQL командата с помощта на следната процедура.

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

  2. Щракнете върху Изглед за SQL.

SQL командата изглежда така:

SELECT Issues.Title, Issues.AssignedTo
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6
And (Issues.AssignedTo.Value)=10));

Използване на оператора OR вместо оператора AND

Да предположим, че искате да промените заявката да описва тези редове, където присъстват или "Петър Банков" , или "Вяра Калнъкова". Можете да редактирате SQL командата, за да използва оператора OR вместо оператора AND. Командата трябва да изглежда така:

SELECT Issues.Title, Issues.AssignedTo
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6
Or (Issues.AssignedTo.Value)=10));

Когато изпълните заявката, резултатът се показва в изглед на лист с данни.

Заявка, която използва оператор Or с многозначно поле

Резултатът показва само проблемите, които са възложени или на Петър Банков, или на Вяра Калнъкова.

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

Разбиране на последиците от включването на поле .Value в списъка с полета

Важно е да се разберат последиците от включването на поле .Value в списъка с изходните колони (списъка SELECT) във вашата заявка. Когато заявката се обработва, първата стъпка е да се породи набор от резултати без влияние на WHERE клауза или филтър. След това се прилага филтър към този начален набор. По тази причина може да е полезно да се мисли за този набор от резултати като за първо породен и след това ограничен посредством филтър в клаузата WHERE. Да разгледаме този пример:

SELECT Issues.Title, AssignedTo
FROM Issues
WHERE NOT AssignedTo.Value = 3;

Началният набор резултати би изглеждал така преди филтрирането:

Title

AssignedTo

Проблем 1

Костадин Христов, Вяра Симбаева

Проблем 2

Диляна Алексиева-Босева, Петър Банков, Надежда Маринова, Вяра Калнъкова

Проблем 3

Петър Христов, Петър Банков, Вяра Симбаева, Ивайло Главчовски

Проблем 4

Костадин Белишки, Вяра Калнъкова

Проблем 5

Костадин Христов, Диляна Алексиева-Босева

Проблем 6

Пламен Димитров, Петър Банков

Проблем 7

Петър Христов, Надежда Маринова

Проблем 8

Костадин Христов

Проблем 9

Петър Банков, Вяра Калнъкова

Проблем 10

Вяра Симбаева, Ивайло Главчовски

След това стъпката за филтриране преминава през началния набор от резултати и избира редове, които не съдържат Костадин Христов, чийто ID е 3:

Title

AssignedTo

Проблем 2

Диляна Алексиева-Босева, Петър Банков, Надежда Маринова, Вяра Калнъкова

Проблем 3

Петър Христов, Петър Банков, Вяра Симбаева, Ивайло Главчовски

Проблем 4

Костадин Белишки, Вяра Калнъкова

Проблем 6

Пламен Димитров, Петър Банков

Проблем 7

Петър Христов, Надежда Маринова

Проблем 9

Петър Банков, Вяра Калнъкова

Проблем 10

Вяра Симбаева, Ивайло Главчовски

Сега да разгледаме втори пример – такъв, който включва полето .Value в списъка с полета. Забележете първо как присъствието на полето .Value променя началния набор резултати преди филтриране:

SELECT Issues.Title, AssignedTo.Value
FROM Issues
WHERE NOT AssignedTo.Value = 3;

Началният набор резултати изглежда така преди филтрирането:

Title

AssignedTo.Value

Проблем 1

Костадин Христов

Проблем 1

Вяра Симбаева

Проблем 2

Диляна Алексиева-Босева

Проблем 2

Петър Банков

Проблем 2

Вяра Калнъкова

Проблем 2

Надежда Маринова

Проблем 3

Вяра Симбаева

Проблем 3

Петър Христов

Проблем 3

Петър Банков

Проблем 3

Ивайло Главчовски

Проблем 4

Вяра Калнъкова

Проблем 4

Костадин Белишки

Проблем 5

Костадин Христов

Проблем 5

Диляна Алексиева-Босева

Проблем 6

Петър Банков

Проблем 6

Пламен Димитров

Проблем 7

Петър Христов

Проблем 7

Надежда Маринова

Проблем 8

Костадин Христов

Проблем 9

Петър Банков

Проблем 9

Вяра Калнъкова

Проблем 10

Ивайло Главчовски

Проблем 10

Вяра Симбаева

Сега стъпката за филтриране преминава през началния набор от резултати и избира само редове, които не съдържат Костадин Христов, чийто ИД е 3:

Title

AssignedTo.Value

Проблем 1

Вяра Симбаева

Проблем 2

Диляна Алексиева-Босева

Проблем 2

Петър Банков

Проблем 2

Вяра Калнъкова

Проблем 2

Надежда Маринова

Проблем 3

Вяра Симбаева

Проблем 3

Петър Христов

Проблем 3

Петър Банков

Проблем 3

Ивайло Главчовски

Проблем 4

Вяра Калнъкова

Проблем 4

Костадин Белишки

Проблем 5

Диляна Алексиева-Босева

Проблем 6

Петър Банков

Проблем 6

Пламен Димитров

Проблем 7

Петър Христов

Проблем 7

Надежда Маринова

Проблем 9

Петър Банков

Проблем 9

Вяра Калнъкова

Проблем 10

Ивайло Главчовски

Проблем 10

Вяра Симбаева

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

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

Преброяване, групиране и използване на други агрегатни функции

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

Една агрегатна функция извършва изчисление с набор от стойности и след това връща единствена стойност. Например Sum, Count и Avg са три агрегатните функции, които можете да използвате за изчисляване на общи суми. Можете да изчислите общи суми за всички записи или за групи от записи. За да обобщавате по групи, трябва да изберете полето или полетата, по които да групирате в мрежата за заявки.

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

  1. Щракнете върху бутона Microsoft Office Изображение на бутона Office и след това изберете Отвори.

  2. В диалоговия прозорец Отвори изберете и отворете базата данни.

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

    Изображение на лентата на Access

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

  5. Щракнете върху Затвори.

  6. Плъзнете полетата, които искате да използвате, към мрежата за заявки. В този случай бихте плъзнали AssignedTo.Value към първата колона в мрежата. След това плъзнете Title към втората колона.

  7. В раздела Проектиране, в групата Покажи/скрий щракнете върху Суми.

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

  8. В мрежата за заявки под Title в реда Обща сума щракнете върху Count.

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

Когато проектирате заявката си, вие определяте кои полета да използвате за групиране и кои полета да използвате за общи суми (изчисления). За този пример AssignedTo.Value е полето, използвано за групиране, а Title е полето, използвано за общо изчисление. За полетата, които искате да използвате за групиране, изберете Групирай по в реда Обща сума. За полетата, които искате да използвате за общо изчисление, изберете типа изчисление (например Sum или Avg). Забележете, че когато използвате многозначно поле за групиране, трябва да използвате полето .Value. В този пример не можете да използвате полето AssignedTo за групиране – трябва да използвате полето AssignedTo.Value. Трябва също да използвате полето .Value, когато използвате многозначно поле за сортиране.

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

Когато изпълните заявката, резултатът се показва в изглед на лист с данни.

Заявка, която преброява проблемите възложени на всеки човек

За да видите SQL командата за тази заявка, превключете на изглед за SQL, използвайки следната процедура.

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

  2. Щракнете върху Изглед за SQL.

SQL командата изглежда така:

SELECT Issues.AssignedTo.Value, 
Count(Issues.Title) AS CountOfTitle
FROM Issues
GROUP BY Issues.AssignedTo.Value;

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

  1. Щракнете върху бутона Microsoft Office Изображение на бутона Office и след това изберете Отвори.

  2. В диалоговия прозорец Отвори изберете и отворете базата данни.

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

    Изображение на лентата на Access

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

  5. Щракнете върху Затвори.

  6. Плъзнете полетата, които искате да използвате, към мрежата за заявки. В този случай бихте плъзнали Title към първата колона в мрежата. След това плъзнете AssignedTo към втората колона.

  7. В раздела Проектиране, в групата Покажи/скрий щракнете върху Суми.

    В мрежата за заявки се показва редът Обща сума. Групирай по се показва по подразбиране в клетката Обща сума под полето Title в заявката. Израз се показва по подразбиране в клетката Обща сума под полето AssignedTo – това е така, понеже не можете да извършите операция "Групирай по" в многозначно поле. Можете да направите това само за многозначно .Value поле.

  8. В мрежата за заявки под AssignedTo в реда Обща сума щракнете върху Count.

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

Когато изпълните заявката, резултатът се показва в изглед на лист с данни.

Резултат от заявка, който показва броя на хората за един проблем

За да видите SQL командата за тази заявка, превключете на изглед за SQL, използвайки следната процедура.

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

  2. Щракнете върху Изглед за SQL.

SQL командата изглежда така:

SELECT Issues.Title, 
Count(Issues.AssignedTo) AS CountOfAssignedTo
FROM Issues
GROUP BY Issues.Title;

Забележка: В тази SQL команда SELECT е без значение дали използвате Count(Issues.AssignedTo) или Count(Issues.AssignedTo.Value) – резултатът е един и същ.

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

Използване на заявка за добавяне с многозначно поле

Можете да вмъкнете единична стойност в многозначно поле с помощта на заявка за вмъкване. Да предположим например, че искате да добавите "Петър Банков" към многозначното поле AssignedTo за даден проблем. Първо бихте определили първичния ключ за проблема и за записа на контакта за Петър. Приемете, че стойностите са 10 за проблема и 6 за Петър.

Следващата процедура показва как да създадете заявката.

  1. Щракнете върху бутона Microsoft Office Изображение на бутона Office и след това изберете Отвори.

  2. В диалоговия прозорец Отвори изберете и отворете базата данни.

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

    Изображение на лентата на Access

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

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

  6. Щракнете върху Изглед за SQL.

  7. В изглед за SQL въведете следната SQL команда:

    INSERT INTO Issues ( AssignedTo.[Value] )
    VALUES (6)
    WHERE ID = 10;
  8. В раздела Проектиране, в групата Резултати щракнете върху Изпълни, за да изпълните заявката.

    Access може да ви помоли да потвърдите дали да добави избрания ред. Щракнете върху Да, за да вмъкнете реда, или върху Не, за да откажете.

Сега Петър се показва в полето "AssignedTo" за този проблем. Това е единствената форма на заявка за вмъкване, която ще работи с многозначно поле.

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

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

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

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

Можете да използвате заявка за актуализиране, за да промените стойностите в съществуващи записи. Когато използвате заявка за актуализиране, за да актуализирате таблица, която съдържа многозначни полета, можете да промените единична стойност в многозначно поле с друга стойност. Да предположим, че искате да актуализирате многозначното поле AssignedTo за конкретен проблем – например да заместите "Петър Банков" с "Вяра Калнъкова." Първо бихте определили първичния ключ за проблема и за записите на контакти за Петър и Вяра. Да предположим, че 8 е стойността за проблема, 6 е стойността за Петър и 10 е стойността за Вяра.

Следващата процедура показва как да създадете заявката.

  1. Щракнете върху бутона Microsoft Office Изображение на бутона Office и след това изберете Отвори.

  2. В диалоговия прозорец Отвори изберете и отворете базата данни.

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

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

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

  6. Щракнете върху Изглед за SQL.

  7. В изглед за SQL въведете следната SQL команда:

    UPDATE Issues 
    SET Issues.AssignedTo.Value = 10
    WHERE (((Issues.AssignedTo.Value)=6)
    AND ((Issues.ID)=8));

    Забележки: 

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

    • Можете да зададете една стойност за промяна.

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

    Access може да ви помоли да потвърдите дали да актуализира записа. Щракнете върху Да, за да актуализирате реда, или върху Не, за да откажете.

Сега Вяра Калнъкова се показва на мястото на Петър Банков в полето AssignedTo за този проблем.

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

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

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

Да предположим, че искате да премахнете "Петър Банков" от полето AssignedTo навсякъде в таблицата. Създавате заявка, използвайки следната процедура.

  1. Щракнете върху бутона Microsoft Office Изображение на бутона Office и след това изберете Отвори.

  2. В диалоговия прозорец Отвори изберете и отворете базата данни.

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

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

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

  6. Щракнете върху Изглед за SQL.

  7. В изглед за SQL въведете следната SQL команда:

    DELETE Issues.AssignedTo.Value
    FROM Issues
    WHERE (((Issues.AssignedTo.Value)=6));
  8. В раздела Проектиране, в групата Резултати щракнете върху Изпълни, за да изпълните заявката.

    Access може да ви помоли да потвърдите дали да изтрие записите. Щракнете върху Да, за да изтриете записите, или върху Не, за да откажете.

Следващата примерна заявка не изтрива всички записи от таблицата "Проблеми". Тя изтрива стойност от многозначното поле AssignedTo във всеки запис, където се среща стойността. Ако искате да изтриете записи от таблицата "Проблеми", не задавайте поле след клаузата DELETE в SQL командата. Например, за да изтриете всички проблеми, които показват "Петър Банков" измежду хората, на които е възложен проблемът, въвеждате следната SQL команда:

DELETE 
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6));

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

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

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

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

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

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

×