Лекція 18. Тема: " Створення багатокористувацької бази даних засобами СУБД Access".

Файли бази даних слід розділити. Один файл, що містить таблиці, слід розмістити на сервері. Інші, клієнтські файли, міститимуть інші об'єкти – форми, запити, звіти тощо.

Спочатку робимо тестову базу, а потім експортуємо об'єкти в діючу базу.

Як створити базу відразу розділеною? Спочатку створимо таблиці. Папка "Розробка БД КБ" –.accdb .  Спочатку створюємо таблиці, які є джерелом даних в полях зі списком, тобто, які є довідниковими даними. Потім дані з них будемо підставляти в головну таблицю. Для цього в основній таблиці у полі "Тип данных" слід обирати "Мастер подстановок".

Тепер відкриваємо схему даних і встановлюємо прапорці на каскадне оновлення зв'язаних полів.

Після цього переходимо: "Параметри" –  "Текущая база данных" –  прапорець "Сжимать при закрытии".

Тепер знімаємо прапорець "Область навигации" і прапорець "Полный набор меню Access" (це невеликий захист файла "від дурня"). Якщо відкрити базу даних шляхом натискання Shift+Enter, то вона відкриється у звичайному вигляді.

Тепер створюємо клієнтські файли. Заходимо у файл Клієнт_1.accdb – Меню "Внешние данні" – Access – перемикач "Создать связанную таблицу для связи с источником данных" – Тестові таблиці – Открыть – виділяємо усі таблиці – ОК.

Тепер створимо, наприклад, форму на основі будь якої таблиці. Переходимо у її конструктор. Конструктор – піктограма "Страница свойств" –  Виділяємо усі поля – ПКМ – Макет – Удалить макет.  Тепер можна поля налаштовувати по одинці.

Тепер виділяємо форму (у лівому верхньому куті чорний квадрат) – Свойства – Вкладка "Макет" – Режим по умолчанию – "Разделенная форма"

– Вкладка "Другие" – "Всплывающее окно" – Да.

– Макет – Цвет фона – задаємо кольор

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

Тепер зробимо копії файлу Клієнт_1 і надамо їм назви, Клієнт_1, Клієнт_2, Клієнт_3…. Клієнт_n. В подальшому всі ці файли слід налаштувати під вимоги відповідних клієнтів.

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

На прикінці налаштуємо піктограми до усіх клієнтських файлі. Відкриваємо по черзі  клієнтські файли і для кожного з них виконуємо наступні дії: "Файл" – Параметри – Текущая база данных – Заголовок приложения – заносимо текст; Значок приложения – задаємо малюнок піктограми.

Для створення індивідуальної іконки у програмі Paint відкриваємо потрібний файл з зображенням – натискаємо "Изменить раз мер" – знімаємо прапорець "Сохранять пропорции" – встановлюємо розмір у відсотках: 140 по горизонталі, 100 – по вертикалі – Ок. Знов викликаємо вікно зміни розміру – встановлюємо прапорець "Сохранять  пропорции" і встановити розмір у пік селях 64 по горизонталі, залишивши розмір по вертикалі таким, яким запропонував Paint – Ок.  Додаємо надпис на зображення, наприклад, "Адміністратор". У кінці зберігаємо файл з розширенням BMP.

Розділену БД рекомендують створювати відразу на етапі її розробки.  Тестову БД слід створювати на локальному ПК. На сервері буде зберігатися, або вже існує аналогічна БД, але у варіанті для її реального використання. Створимо на сервері папку "БД КБ", а в ній ще три папки: "01_Основна", "02_Резервна", "03_Клієнські_файли".  Папка "01_Основна" буде містити два файли: "Інструкції_БД_КБ.docx", "Таблиці_БД_КБ.accdb".

Папка  "02_Резервна" буде містити копії основного табличного файлу, які клієнти будуть створювати на початку і на прикінці кожного сеансу роботи (ця тема розглядається окремо).

Папка "03_Клієнські_файли" буде містити "іменні" папки для кожного користувача БД, наприклад папка "1_Розанов". Кожна така папку буде містити клієнтський файл ДБ, налаштований до відповідних обов'язків користувача, наприклад "Розанов.accde". Слід пам'ятати, що клієнтський файл жодних таблиць не містить, а являються лише інструментом звертання до табличних даних. Крім того, клієнтські файли мають вже відкомпільо-ваний вигляд, тобто, мають розширення не  accdb, а accde. Нагадування !!! Користувач не повинен напряму працювати з табличними даними, а лише через інші об'єкти – форми або запити, бо таблиці ніяк не захищені від зміни даних або структури таблиць. Крім того, слід захистити об'єкти, з якими працює користувач – запити, форми, звіти тощо, тобто, клієнтські файли повинні пройти компіляцію.

Імпорт об'єктів бази даних слід виконувати у наступному порядку: перший крок: розроблені таблиці разом із схемою даних слід імпортувати у діючий табличний файл, тобто, з тестових таблиць у діючий файл з таблицями. Є два способи виконати ці дії: 1) просто перетягнути таблиці з вікна БД локального комп'ютера у вікно БД на сервері, але в цьому випадку схема даних не копіюється. 2) імпорт за допомогою майстра. Для цього файл, з якого робимо імпорт об'єктів, слід закрити. Після цього обираємо: меню "Внешние данные" – Access – тепер вказуємо шлях до файлу, що містить тестові таблиці бази даних і обираємо перемикач "Импорт таблиц, запросов, форм…. в текущую  базу данных". Тепер обираємо "Выделить все" – Параметры – Импорт - Схема данных – ОК.   Тепер усі табличні дані перейдуть разом із схемою даних. Після цього виконуємо імпорт об'єктів, що містяться у клієнтських файлах. Ці файли будуть зберігатися на локальному ресурсі, але повинні посилатися на таблиці на сервері. Тепер слід клієнтські файли зберегти не сервері, але у відкомпільованому вигляді. Для цього закриваємо БД і виконуємо: "Сохранить как" – "Сохранить базу даннях как" – виділяємо  *.accdb – Создать ACCDE – Сохранить как – Вказємо папку на сервері.

УВАГА !!!!

1) Якщо клієнтський файл знаходиться на клієнтській машині, то немає контролю своєчасного оновлення його. Знаходження клієнтського файлу на сервері дає можливість адміністратору вести його оновлення

2) Можна здійснювати контроль користувача, відстежуючи файл блокіровки *.LACCDB. Він створюється автоматично при відкритті клієнтського файлу, і знищується під час його закриття. Він створюється і в каталозі клієнтського файлу і в каталозі файлу, що містить таблиці даних. Тобто, автоматично будуть створені два файли блокування, які автоматично знищуються при закритті клієнтського файлу. Якщо при закритті БД відбулися збої, то файл блокування не знищується автоматично і при новому відкритті БД він буде заважати. Тобто, його попередньо слід знищити.

Остання зміна: вівторок 3 січня 2023 09:27 AM