У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент



Лабораторна робота - Створення багатотабличних форм
18
інших елементів управління або вбудованих функцій.

2. Для розрахунку значення за замовчуванням елементів управління форми.

3. У виразах, за допомогою яких задаються деякі властивості елементів управління, наприклад, перевірка умов на значення, визначення умов відбору записів у формі і ряд інших.

3.4.1 Створення обчислюваних полів

Простим обчислюваним полем є поле, в якому повинна виводитися поточна дата. Щоб створити таке поле потрібно:

1. Створити вільний елемент управління типу Поле (Text Box) в потрібному місці форми. Прямо у полі ввести вираз =^Date () (знак рівності обов'язковий).

2. Відкрити вікно Властивості (Properties) для цього елементу і задати у властивості Формат поля (Format) бажаний формат дати, наприклад Довгий формат дати (Long Date).

3. Встановити довжину поля так, щоб в нім поміщалася потрібна кількість символів.

4. Змінити назву мітки нового текстового поля. Нове поле виглядатиме так, як показано на рис.3.8.

Рис.3.8. Створення обчислюваного поля

Зазвичай для обчислюваних полів використовується саме текстове поле, хоч і не обов'язково. Допускаються будь-які елементи управління, що мають властивість Дані (Control Source).

Саме у властивості Дані повинен бути заданий вираз, який обчислює значення даного поля. Введення виразу допускається прямо в елемент управління, якщо воно коротке і довжина поля це допускає. Інакше вираз вводиться в рядок властивості Дані вікна Властивості (Properties). При цьому можна скористатися конструкторм виразів, а якщо вираз не поміщається в рядку властивості, потрібно натиснути клавіші <Shiftl>+<F2> і відкрити вікно Область введення (Zoom).

Обчислювані поля створюються найчастіше в табличних або стрічкових формах для відображення стовпця, дані в якому розраховуються. Наприклад, вартість товару розраховується як ціна * Кількість. Для відображення таких розрахункових даних використовують два способи.

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

У другому випадку форма може будуватися прямо на базі таблиці. У ній створюється текстове поле, в якому як джерело даних указується вираз, наприклад = [Ціна за одиницю] * Кількість. При цьому у виразі можуть указуватися не обов'язково ті поля, які включені у форму, а будь-які поля базової таблиці.

3.4.2. Створення обчислюваних полів для відображення підсумкових значень

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

Для цього потрібно:

1. Створити в області приміток підлеглої форми, що містить позиції замовлення, обчислюване текстове поле. Значення цього поля і повинно містити підсумкову суму. У формі "Підлегла форма замовлень" це поле розраховується як сума значень поля "Відпускна ціна" для всіх позицій замовлення (рис.3.9).

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

Рис.17. Обчислення підсумкового значення

Рис.18. Створення обчислюваного поля в головній формі

Особливістю створення підсумкового поля в підлеглій формі є те, що у функції sum. не можна використовувати ім'я обчислюваного елементу управління і можна використовувати тільки ім'я обчислюваного поля в базовому запиті. Якщо ж підсумовувані значення обчислюються прямо у формі, то у формулі для підсумкового поля доведеться повторити вираз для розрахунку цих значень. Наприклад, якби елемент управління Відпускна ціна розраховувався по тій же формулі у формі, тобто як джерело даних для нього стояв вираз

= Sum([Замовлено].[Ціна]*[Кількість]*(1–[Знижка])/100) *100,

то у властивості Дані (Control Source) для елементу управління "Проміжна сума" (Order Subtotal) довелося б ввести вираз

= Sum(Sum([Ціна]*[Кількість]*(1–[Знижка]) /100)*100).

Це ще один аргумент на користь того, що краще такі обчислення виконувати в базовому запиті.

3.4.3. Використання статистичних функцій у формах

При використанні статистичних функцій не враховуються записи, які містять порожнє значення (Null) в оброблюваних полях. Наприклад, вираз

Sum([B наявності]+[Прийнято] – [Відпущено] – [Замовлено])

буде повертати значення Null, якщо одне з полів, що беруть участь у виразі, містить порожнє значення. Щоб запобігти таким помилкам в обчисленнях, слід використовувати функцію Nz(), яка перетворить порожнє значення в нульове. Таким чином, опиcаний вище вираз виглядатиме так:

Sum(Nz([В наявності])+Nz([Прийнято])–Nz([Відпущено]) -Nz([Замовлено]))

У табл. 3.1 приведені найбільш часто використовувані у формах статистичні функції.

Таблиця 3.1. Статистичні функції

Функція | Опис

Sum() | Сума значень поля

Avg() | Середнє значення поля

Min() | Мінімальне значення поля

Мах Про | Максимальне значення поля

Count ( ) | Кількість значень поля

Dsumf) | Сума значень у вказаній підмножині записів

Dcount ( ) | Кількість записів в підмножині

Функція | Опис

DLookup | Значення конкретного поля у вказаній підмножині записів

Dmin (), Dmax () | Мінімальне і максимальне значення поля у вказаній підмножині записів

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

DLookup()

Зазвичай використовується для виводу у формі значення поля з таблиці, що не входить в базовий запит. Наприклад, у формі "Рахунок" можна відобразити додаткові поля з таблиці "Клієнти", які не включаються в базовий запит. Як значення властивості Дані обчислюваного елементу управління можна ввести наступний вираз:

=DLookup("[Адреса]", "[Клієнти]", "[Код організації] = " & _ Forms![Рахунок]![Код клієнта])

Критерієм для вибору запису з таблиці "Клієнти" буде поле Код клієнта у формі "Рахунок".

Dcount(), DSum()

У формі клієнта потрібно створити обчислювані поля для відображення кількості замовлень, зроблених клієнтом


Сторінки: 1 2 3 4 5