Тема: Створення запитів та звітів в MS Access. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Тема: Створення запитів та звітів в MS Access.



Тема: Створення запитів та звітів в MS Access.

Мета: оволодіння навичками створення запитів та звітів в MS Access.

Перелік питань, що вивчаються.

 

1. Створення запитів

2. Запит на вибірку

3. Запит з параметром (параметричний запит)

4. Поля в запитах, що обчислюються

5. Створення звіту

6. Зміна розмірів звіту і його розділів

7. Створення звіту за допомогою Майстра звітів

8. Додавання виражень, що обчислюються, у форми і звіти

Створення запитів

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

Запити можуть використовуватися як джерела інформації для форм та звітів. У цих випадках в запиті використовуються дані з кількох таблиць. Access виконує запит кожного разу, коли відкривається форма або звіт, тому інформація, що відображена на екрані, завжди "свіжа".

При виконанні в Access звичайного запиту (запиту на вибірку, який просто вибирає потрібні дані), результати відображаються у формі динамічного набору, який має такий самий вигляд, як і таблиця, але фактично є динамічним набором записів, базованих на структурі запиту. Записів у динамічному наборі фактично не існує, тому коли цей набір закривається, записи зникають (дані, на яких базований набір, звичайно, залишаються в початкових таблицях). Запит можна зберегти, але при цьому одержані при його виконанні дані не зберігаються. При збереженні запитів зберігається тільки їх структура. Динамічний набір в Access містить живі дані, а не статичну копію даних первинних таблиць. Тому при модифікації даних у записах динамічного набору запиту модифікуються і записи в первинних таблицях. Дані в динамічному наборі можна змінювати так, як і в таблиці: пересувати і ховати стовпці, змінювати висоту рядків і ширину стовпців.

Створити запити в Access можна вручну або за допомогою майстра запитів. Майстер запитів Access містить спеціальні інструменти, які використовуються для розв'язку досить складних задач (наприклад, для пошуку записів, які повторюються, або перегляду даних запита). Але для виконання простих щоденних операцій, які вимагають простих запитів, можна відкрити запит, додати поле, вставити умову, виконати запит. Щоб створити запт вручну, треба виконати:

 

1. У вікні БД відкрити вкладку Запросы.

2. Натиснути кнопку Создать. З'явиться діалогове вікно Новый запрос (мал. 1).

Мал. 1.

 

У цьому діалоговому вікні вибрати пункт Конструктор і натиснути ОК. Після цього відкриється вікно конструктора запиту з діалоговим вікном Добавление таблицы (мал. 2).

Мал. 2.

 

Вікно конструктора запиту призначене для створення нового запиту. В ньому можна додавати таблиці, що використовуються в запиті, вибрати з таблиць окремі поля, визначити умови, яким мають задовольняти відібрані записи, вибрати порядок сортування, сховати поле таблиці і т.ін. Створивши запит, його можна виконати, зберегти і надрукувати результати виконання. Відкривши вікно запиту, можна приступити до розробки нового запиту; її треба розпочати з додавання таблиць, з яких вибираються дані. Для цього необхідно в діалоговому вікні Добавление таблицы вибрати ту таблицю, або таблиці, які мають використовуватися в запиті. Кількість таблиць, що використовуються в запиті, необмежена. Крім таблиць, в запиті можуть використовуватися інші запити. При створенні запитів із декількома таблицями треба призначити загальне поле, яке зв'язує таблиці, пересуванням його з вікна однієї таблиці у вікно іншої. Запити, що використовують декілька таблиць, називають реляційними. Відкрити діалогове вікно Добавление таблицы можна, натиснувши на кнопці Добавить таблицу панелі інструментів або вибравши команду Запрос/Добавить таблицу. Додавши таблицю (таблиці) і/або запит (запити), закрити діалогове вікно Добавление таблицы.

Вікно конструктора запиту розділене на дві частини. У верхній частині містяться вікна таблиць і запитів, які використовуються в запиті, що створюється, а в нижній - бланк запиту QBE, в якому задаються поля, що включаються, умови відбору і порядок сортування (якщо він необхідний).

Після визначення джерела даних для запиту, в стовпці рядка Поле бланка запиту додаються необхідні поля. Додавати поле можна декількома способами (мал. 3):

 

Мал. 3.

 

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

- щоб додати декілька полів, вибрати поля, використовуючи клавіші Shift або Ctrl, і пересунути їх мишею в бланк запиту (Shift - суміжні поля, Ctrl - несуміжні поля);

- щоб додати всі поля, треба пересунути мишею зірочку, що розміщена зверху вікна таблиці.

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

Після того, як всі необхідні поля переміщені в запит, треба визначити умови, за якими при виконанні запиту будуть вибиратися дані. Можна задати декілька умов, ввівши їх у стовпчики або об'єднавши умови за допомогою логічного оператора OR (або) чи AND (і). Щоб ввести умову, треба натиснути в будь-якому місці рядка Условие отбора і ввести вираз (можна вводити довгі вирази). Щоб проглянути вираз, треба натиснути комбінацію клавіш Shift+F2 і проглянути його в діалоговому вікні Область ввода.

Результати запиту можна сортувати за одним або декількома полями. За умовчанням дані відображаються в порядку, встановленому для ключового поля першої вибраної таблиці. Якщо ключового поля немає, дані відображаються в порядку відбору записів. Щоб задати порядок сортування даних, треба натиснути в рядку Сортировка, відкрити список і вибрати По возрастанию або По убыванию. Текстові дані сортуються за зростанням від А до Я, а числові - від 0 до 9. За спаданням дані сортуються в зворотному порядку: текстові від Я до А, а числові - від 9 до 0.

Порядок сортування за декількома полями визначає пріоритет полів. Крайнє зліва поле з увімкненим сортуванням має найвищий пріоритет, а крайнє справа - найнижчий.

Зауважимо, що при збереженні запиту з полями, які сортуються, ці поля пересуваються в крайнє зліва поле у вікніконструктора запиту. При перегляді динамічного набору поля повертаються на свої попередні місця.

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

Після створення запиту і встановлення всіх його параметрів запит можна виконати. Для цього треба натиснути на кнопку Запуск панелі інструментів або використати команду Запрос/Запуск. Запит відбирає дані і відображає результати в динамічному наборі. Для запуску запиту на виконання можна використати команду Режим таблицы з меню Вид або кнопку Режим таблицы панелі інструментів.

Запити можна зберігати так, як і інші об'єкти Access. Коли вікно перегляду результатів запиту активне, треба вибрати команду Файл/Сохранить або натиснути на кнопку Сохранить панелі інструментів. Якщо запит зберігається вперше, з'являється діалогове вікно, в якому треба вказати ім'я запиту. Для друкування результатів запиту треба виконати запит на відображення динамічного набору, потім виконати команду Файл/Печать або натиснути кнопку Печать панелі інструментів. У діалоговому вікні Печать, яке з'явиться, треба встановити необхідні параметри і натиснути ОК.

Цей метод дозволяє одержати простий звіт у табличній формі. Якщо потрібна більш приваблива форма, то треба зберегти запит і створити звіт, який базується на даному запиті. Надрукувати результати запиту можна також і з вікна бази даних, вибравши запит і натиснувши на кнопці Печать панелі інструментів, або виконавши команду Файл/Печать.

До цього часу ми розглядали запити, в яких вказувались лише поля, що входять у запит, і порядок сортування. Але на практиці робити такі запити доводиться дуже рідко. Для отримання необхідних специфічних даних задаються умови, яким мають відповідати дані, що вибираються. Можна використовувати багато умов для роботи з текстом, числовими величинами, датами і комбінаціями типів даних.Access допускає використання різних способів введення текстових виразів. Можна вводити текст у лапках або без них, ставити знаки рівності перед текстом або опускати їх (коли курсор виходить за межі поля, що містить текстовий вираз, Access автоматично бере текст в лапки). Тобто можна вводити будь-який з таких виразів: Київ, «Київ», = Київ, = «Київ».

Разом з текстовими умовами можна використовувати оператор Like і символ «*», який означає довільну послідовність символів.

Для полів, що містять числові або грошові значення, у виразах можна використовувати математичні операції. Так, вирази = 20.00 і between 5 and 12 є типовими числовими умовами.

Для полів, які містять дати, також використовуються математичні операції у виразах умов. Дати вводяться у будь-якому з таких форматів: июн 23 98, # 23/6/98#, 23-июн-98. Брати дати в символи # не обов'язково (якщо вони відсутні, то Access додасть їх автоматично). В умовах для дат можна використовувати функцію Date () для відбору записів, що містять поточну дату. Можна використовувати також вираз з between, наприклад,» between 24/8/91 and date ()».

Для вибору підмножини даних, що задовольняють декільком умовам, у відповідні поля бланка запиту треба внести умови у відповідному форматі. Такі запити використовують логічні операції AND (І), тому що для вибору запису мають одночасно задовольнятися перша і (and) друга умова.

У багатьох випадках за допомогою запиту з таблиці треба вибрати записи, які задовольняють хоча б одну з набору умов. Такі запити використовують логічну операцію OR (або) тому, що для вибору записи мають задовольняти ту або (or) іншу умову. Для введення декількох умов, об'єднаних операцією або, можна використовувати довільну кількість додаткових рядків під рядком «Условие отбора» бланка запиту.

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

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

Access використовує мову бази даних SQL (Structured Query Language - структурована мова запитів) для створення запитів. Незважаючи на те, що запит розробляється візуально у вікні конструктора запиту, при збереженні запиту Access транслює цей візуальний проект в оператор SQL, який і виконується при запуску запиту. Оператор SQL, який відповідає даному запиту, можна побачити у вікні конструктора запиту, якщо вибрати команду Вид/Режим SQL.

MS Access дозволяє виконувати наступні типи запитів: QBE-запити (QBE — Query By Example — Запити за зразком):

• запит на вибірку;

• перехресний запит;

• запит на створення таблиці;

• запит на відновлення;

• запит на додавання записів;

• запит на видалення записів.

Кожний з цих типів вказується в меню Запит після виводу на екран вікна Запрос у режимі Конструктора. У деяких випадках MS Access виводить на екран діалогове вікно безпосередньо перед початком запиту, в інших же — змінює список полів бланка запиту так, щоб можна було задати необхідні дії. Після збереження запиту MS Access використовує спеціальні позначення у вікні бази даних, що показують тип запиту.

Запит на вибірку

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

Для вибору записів, що задовольняють визначеним критеріям:

1. У рядку «Поле» клацніть у правій частині клітки на стрільці, що указує вниз, і виберіть ім'я полю, по якому буде здійснюватися запит. Якщо запит здійснюється по полях з різних таблиць, то спочатку клацніть у рядку«Таблиця» і вкажіть потрібну таблицю, що дозволить обмежити список полів у рядку «Поле». Якщо запит буде здійснюватися по декількох полях, відобразите їхні імена у вільних клітках рядка «Поле».

2. Простежте, щоб у рядку «Вывод на экран» прапорець відображався б галочкою.

3. У рядку «Условие отбора» введіть критерії вибору. (Для завдання діапазону значень у вікні Конструктора запитів можуть бути використані оператори: > (більше), >= (не менш), < (менше), <= (не більш) і Between (Вираження1),and (Вираження2) як з текстовими і числовими полями, так і з полями дат). Для введення умови вибірки можна використовувати вікно Построитель выражений (кнопка Построить панелі інструментів чи відповідна кнопка контекстного меню).

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

Для виконання запиту натисніть кнопку зі знаком оклику Запуск панелі інструментів чи скористайтеся командою Запрос,Запуск.

Створення звіту

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

При створенні звіту Access завжди оперує тільки з однією єдиною таблицею чи запитом. Якщо необхідно об'єднати інформацію з декількох таблиць і (чи) запитів в одному звіті, то колись варто зібрати бажані дані в новому запиті.

Для створення звіту за допомогою Майстра звітів:

1. У вікні База данных клацніть на вкладці Отчет.

2. У вікні, що відкрилося, клацніть на кнопці Создать. З'явиться вікно Новый отчет.

3. Вкажіть ім'я таблиці чи запиту, на основі яких створюєте звіт, і виберіть режим Мастер отчетов.

4. Виберіть поля, дані з яких будуть поміщені в звіт.

5. Далі визначте, чи потрібно згрупувати дані по якому-небудь з полів і, якщо потрібно, те виберіть варіант групування. Інтервал групування може бути змінений після натискання кнопки Группировка.

6. Далі задайте порядок сортування записів звіту. У разі потреби включення в звіт підсумкових полів, натисніть кнопку Итоги й установіть необхідні прапорці, що визначають тип підсумкових обчислень для запропонованих полів. Натисніть кнопку ОК.

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

Майстер звітів дозволяє підготувати наступні типи звітів:

• звіт, що містить інформацію, розташовану в один стовпець чи у вигляді таблиці;

• звіт з угрупованням і обчисленням підсумкових величин;

• поштові наклейки.

Для створення звіту самостійно без допомоги Майстра звітів:

1. У вікні База даних клацніть на вкладці Отчет.

2. У вікні, що відкрилося, клацніть на кнопці Создать. З'явиться вікно Новый отчет.

3. Вкажіть ім'я таблиці, на якій буде базуватися звіт і виберіть режим Конструктор.

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

Заголовок звіту — друкується тільки на початку звіту, використовується на титульній сторінці.

Верхній колонтитул — друкується вгорі кожної сторінки.

Заголовок групи — друкується перед обробкою першого запису групи.

Область даних — друкується кожен запис таблиці чи динамічного набору даних запиту.

Примітка групи — друкується після обробки останнього запису групи.

Нижній колонтитул — друкується внизу кожної сторінки.

Примітка звіту — друкується наприкінці звіту після обробки всіх записів.

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

Звіти призначені для виводу інформації на принтер, тому для розрахунку розташування даних на друкованій сторінці програма Access повинна «знати» усе необхідне про особливості принтера. Ці дані Access одержує від операційної системи. Відповідно, принтер у системі повинен бути встановлений.

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

Зауваження

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

4. Для додавання полів з інших таблиць чи запитів розкрийте список Таблицы и запросы і виберіть потрібний елемент (таблицю чи запит). У списку Доступные поля виділіть потрібні поля і натисніть кнопку ">". Access перемістить обране поле зі списку Доступные поля і вставить його в список Выбранные поля.

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

Зауваження

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

Мал. 5. Друге діалогове вікно Майстра звітів

 

6. В другому діалоговому вікні необхідно вказати, яким образом будуть структуровані дані в звіті. Майстер перевіряє зв'язки між таблицями й у залежності від обраного представлення пропонує кілька варіантів угруповання запису в звіті. Щоб здійснити угруповання по визначеному елементу, виділіть в списку цей елемент.

7. Натисніть на кнопку Вывести дополнительные сведения в лівій частині діалогового вікна для відображення одного з допоміжних діалогових вікон Майстра звітів. Якщо в цьому діалоговому вікні натиснути кнопку Показать примеры, то Access виведе додаткові допоміжні діалогові вікна, у яких використовуються приклади з таблиць "Продажу", "Клієнти" і "Замовлення", що дозволяють продемонструвати різні способи угруповання, які Майстер звітів може автоматично застосувати до створюваного звіту. Закрийте всі допоміжні діалогові вікна і поверніться до діалогового вікна Мастера отчетов, зображеному на мал. 5. Натисніть кнопку Далее для переходу до третього діалогового вікна Мастера отчетов.

8. У третім діалоговому вікні Майстра звітів необхідно визначити додаткові рівні угруповання в звіті. Виділите в списку поле, по якому потрібно групувати і натисніть кнопку ">" (чи просто двічі клацніть по цьому полю в списку), щоб установити угруповання.

Зауваження

Якщо буде потрібно скасувати додавання полю угруповання, натисніть кнопку "<" чи двічі клацніть за назвою цього поля (виділеному жирним шрифтом) в області діалогового вікна з ескізом звіту.

9. Майстер звітів дозволяє задати інтервали значень, по яких групуються дані. Щоб змінити їх у цьому ж (третьому) діалоговому вікні Майстра звітів, натисніть кнопку Группировка. На екрані з'явиться діалогове вікно Интервалы группировки, зображене на мал. 6. Змінюючи інтервал угруповання, можна впливати на спосіб угруповання даних у звіті. Для числових полів можна задати угруповання по десятках, сотнях і інших значеннях. Для текстових полів можливе угруповання по першій букві, першим трьох буквах і т.д.

10. Для створюваного звіту виберіть зі списку Інтервали угруповання потрібний вам варіант і натисніть кнопку ОК. Для переходу до четвертого діалогового вікна Майстра звітів натисніть кнопку Далее.

11. Access 2002 дозволяє сортувати записи в межах групи за значенням довільного поля, при цьому сортування проводиться не більш ніж по чотирьох полях (мал. 7). Виберіть у першому списку, що розкривається, перше потрібне поле. За замовчуванням прийнятий порядок сортування по зростанню; якщо ви хочете вибрати порядок сортування по убуванню, то натисніть на кнопку праворуч від списку, що розкривається. Для повернення до сортування по зростанню знову натисніть на цю кнопку.

Мал. 6. Діалогове вікно Интервалы группировки

 

12. Щоб указати для стовпця звіту підсумкову інформацію, натисніть на кнопку Итоги. У діалоговому вікні Итоги, що з'явилося,можна задати параметри для обраного стовпця. Вибрати можна серед усіх числових полів звіту, що не є лічильниками, які Майстер звітів перелічить у цьому діалоговому вікні і дозволить установити для кожного з них прапорці Sum, Avg, Min і Мах. У залежності від установлених прапорців Майстер звітів додасть відповідні підсумкові поля, що обчислюють підсумкову суму, середнє значення, мінімальне чи максимальне значення даного полю по всіх записах в кінець звіту. Група перемикачів Показать дозволяє вибрати, чи треба в звіті вказувати тільки підсумки чи необхідно видавати повний звіт, додаючи поля з проміжними підсумками наприкінці кожної групи і поля з повними підсумками наприкінці звіту. Для створюваного звіту установіть потрібні прапорці для цікавлячих вас полів. Для повернення до діалогового вікна Майстра звітів натисніть кнопку ОК.

Мал. 7. Четверте діалогове вікно Майстра звітів

 

13. Натисніть кнопку Далее, щоб перейти до п'ятого діалогового вікна Майстра звітів. Майстер звітів запропонує на вибір шість варіантів оформлення згрупованих даних (варіантів макета звіту). У лівій частині діалогового вікна Майстра відображається ескіз обраного макета. Виберіть у групі Макет перемикач ступенчатый. За замовчуванням Майстер звітів установлює прапорець Настроить ширину полей для размещения на одной странице, що дозволяє заощадити папір і зробити звіт більш зручним для читання. У групі Ориентация можна вибрати розташування сторінки звіту при друкуванні. Широким звітам, у яких відображається багато полів в одному рядку, зручно задавати орієнтацію альбомная Щоб перейти до шостого діалогового вікна Майстра звітів, натисніть кнопку Далее (Next).

14. У шостому діалоговому вікні Майстра звітів виберіть один із запропонованих стилів оформлення звіту. У лівій частині діалогового вікна Майстра відображається ескіз звіту обраного стилю. Для створюваного звіту виберіть стиль Сжатый, а потім натисніть кнопку Далее для переходу до останнього діалогового вікна Майстра звітів.

Зауваження

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

15. В останньому діалоговому вікні Мастера отчетов як заголовок звіту введіть потрібний вам заголовок. Майстер звітів збереже створений звіт під цим же ім'ям. Виберіть перемикач Просмотреть отчет і натисніть кнопку Готово для завершення створення звіту. Майстер звітів створить звіт і відобразить його в режимі Попереднього перегляду. Якщо при цьому необхідно одержати довідку по роботі зі звітом, попередньо установите прапорець Вывести справку по работе с отчетом?.

Література.

1. Гаєвський О.Ю. Інформатика 7-11 класи. -К.: А.С.К., 2003. –с. 32-65.

2. Информатика. Базовый курс. Учебник для Вузов / Под ред. С.В. Симоновича. –Сакт-Петербург: Питер, 2000. – с. 30-97.

3. Макарова М.В., Карнаухова Г.В., Запара С.В. Інформатика та комп’ютерна техніка. –Суми: Університетська книга, 2005. – с. 32-69.

4. Руденко В.Д., Макарчук О.М., Патланжоглу М.О. Базовий курс інформатики. Книга 1. Основи інформатики. –К.: BHV, 2005. – с. 34-96.

5. Войтюшенко Н.М., Останець А.І. Інформатика і комп’ютерна техніка. –К.: Центр навчальної літератури, 2006. с. 19-53.

 

Тема: Створення запитів та звітів в MS Access.

Мета: оволодіння навичками створення запитів та звітів в MS Access.



Поделиться:


Последнее изменение этой страницы: 2016-09-13; просмотров: 1229; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.216.233.58 (0.075 с.)