Елемент управління список

Елемент управління Список (ListBox) використовується для представлення на екрані поля, можливі значення якого обмежуються списком, причому списком недовгим. Це пов'язано з тим, що такий список займає багато місця на екрані (рис. 9.14). І хоча можна використовувати смуги прокрутки, щоб подивитися значення, які не поміщаються в виділену область, очевидно, що для відображення довгих списків цей елемент керування не підходить.

Список може складатися з одного або декількох стовпців, однак при виборі елемента списку в пов'язане з ним поле таблиці передається тільки одне значення, наприклад в наведених на рис. 9.14 списках це "КодТіпа" (CategoryID) і "КодСотрудніка" (EmployeeID), які в списках навіть не відображаються. Зовнішній вигляд списку і його вміст визначаються його властивостями, які можна задати вручну, а можна скористатися майстром при розміщенні списку в формі, який, запросивши потрібну інформацію, визначить більшу частину властивостей автоматично. Створення списку за допомогою майстра вже демонструвалося в першій частині книги. Майстер списків дуже схожий на Майстра, за допомогою якого створюється елемент Поле зі списком (див. Розд. "Створення та видалення елементів управління" гл. 5). Для того щоб список правильно працював, потрібно коректно визначити його найважливіші властивості - це перші вісім властивостей на рис. 9.15. Відповідно, якщо він не працює належним чином, саме ці якості необхідно перевіряти в першу чергу.

Мал. 9.14. Елементи управління Список

Мал. 9.15. Властивості елемента управління Список

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

  • Властивість Число стовпців (Column Count) має значення 2, т. Е. В списку буде два стовпці (вибираються два поля), однак властивість Ширина стовпців (Column Width) визначає ширину першого стовпця, дорівнює 0, т. Е. Він не буде доступний широкому на екрані.
  • Незважаючи на те, що перший стовпець є прихованим, його теж можна приєднати до поля таблиці, як і будь-який інший стовпець списку, щоб в обраному елементі списку значення саме з цього стовпчика (у нашому прикладі - це значення поля "КодТіпа") записувалося в базову таблицю форми. Найчастіше саме перший слобец списку потрібно приєднати до поля джерела даних. Номер приєднаного стовпця вказується у властивості Приєднаний стовпець (Bound Column).
  • Властивість Заголовки стовпців (Column Heads) в нашому прикладі має значення Ні (No), тому вони не будуть відображатися в списку.

Крім розглянутого, існують ще три типи джерел рядків для елемента управління Список (ListBox):

  1. Список значень. Якщо кількість рядків у списку невелике і постійно, можна все значення задати прямо в вікні властивостей елемента. В цьому випадку у властивості Тип джерела рядків вибирається значення Список значень (Value List), а значення елементів списку перераховуються через крапку з комою без пробілів у властивості Джерело рядків. наприклад:

Якщо елементи списку містять прогалини, включіть їх в лапки. Щоб усі дні тижня відобразилися в одному стовпці списку, встановіть значення властивості Число стовпців рівним 1, а властивості Ширина стовпців надайте будь нульове значення, наприклад 2, 5 см (2, 5cm).

Якщо потрібно вивести два стовпці значень, то у властивості Джерело рядків в перерахуванні значень задаються послідовно пари значень, число стовпців встановлюється рівним 2, а у властивості Ширина стовпців задається пара значенні, наприклад 2, 5 см; Зсм (2, 5cm; 3cm).

Мал. 9.16. Використання функції в якості джерела рядків

Кілька слів про третій тип джерела рядків списку. Ця функція повинна мати такий список аргументів:

Function імя_функциі (fid As Control, id As Variant, _

row As Variant, col As Variant, code As Variant) As Variant

Ця функція викликається Access кожен раз, коли потрібно заповнення списку елементами. Наприклад, це відбувається автоматично, коли форма, яка містить список, відкривається в перший раз. Викликати оновлення вмісту списку в якийсь інший момент можна програмно, за допомогою методу оновлення вмісту елемента управління Require. Кожен раз при оновленні вмісту списку ця функція викликається неодноразово: з різним "кодом дії".

Пояснимо значення її аргументів і значення, що повертається.

Всі значення аргументів формуються і передаються в функцію самим Access. Розробнику тільки залишається їх обробити.

Властивість Приєднаний стовпець (Bound Column), що визначає той стовпець списку, значення якого при виборі стає значенням елемента управління, може мати значення 0. У цьому випадку значенням елемента Список (List Box) стане індекс (номер) обраного елемента в списку.

Елемент управління Список цікавий ще й тим, що він дозволяє робити множинний вибір в списку, т. Е. В ньому можна вибрати одночасно кілька елементів, чого не дозволяє робити елемент Поле зі списком (Combo Box). Така можливість потрібна досить часто, коли задаються критерії відбору записів. Наприклад, в базі даних об'єктів нерухомості треба знайти цікаві клієнта квартири, а його цікавлять квартири в певних районах міста. Можна, звичайно, вибирати в списку по черзі спочатку один район, щоб вибрати всі квартири в даному районі, а потім другий і т. Д. Однак зручніше в цьому випадку використовувати для вказівки цікавлять районів список, в якому вибираються відразу все цікавлять райони, а потім формується відповідний запит до бази даних.

Визначити, як користувач буде вибирати значення зі списку, можна за допомогою властивості незв'язні виділення (Multi Select). Його можна знайти на вкладці Інші (Other) вікна властивостей. За замовчуванням ця властивість має значення Відсутня (None). У цьому випадку дозволяється нибор тільки одного елемента зі списку. Але ця властивість може мати значення Простий (Simple) і Із зв'язковим вибором (Extended). У першому випадку дозволяється множинний вибір просто клацанням миші по потрібних елементів, а в другому список працює так, як майже всі списки в Windows, т. Е. Можна використовувати клавіші і для виділення суміжних і несуміжних елементів. Результати вибору зберігаються в спеціальному масиві і можуть бути використані програмами VBA.

Схожі статті