НОУ ІНТУІТ, Лекція, Excel та бази даних

Перетворення списків Excel на базу даних Access

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

Зрозуміло, що зворотне перетворення даних Excel в Access виконується складніше з простої причини, що база даних Access влаштована значно складніше, ніж списки Excel. Тому немає багатьох можливостей, які є при перенесенні даних із Access до Excel. Не можна, наприклад, зберегти таблицю Excel як mdb-файлу у форматі бази даних Access. Тим не менш, існують принаймні два способи перенесення даних. Перший дозволяє розпочати роботу з перенесення даних в Excel, використовуючи його команду "Перенести в MS Access", що є аналогом розглянутої вище команди Access - "Зв'язки з Office - Аналіз в MS Excel". Другий спосіб використовує можливості Access імпорту зовнішніх даних. Я розгляну зараз обидва ці способи і виконаю зворотне перенесення створеної бази даних офісу РР в Excel до бази даних Access, створивши під іншим ім'ям нову копію існуючої бази даних.

Імпорт списків Excel у програмі Access

Access дозволяє імпортувати зовнішні дані, і я скористаюся цією можливістю для перенесення списків Excel. Я створив в Access нову поки що порожню базу даних, дав їй ім'я "dbPPnew" і зайнявся виконанням операції імпорту, вибравши з меню "Файл" команду"Зовнішні дані Імпорт…". У вікні Імпорту я, як завжди, в віконці "тип файлу" вибрав з великого списку потрібний мені тип - Microsoft Excel - потім в полі "Папка" вибрав потрібну папку, вибрав файл з книгою Excel, що містить базу даних і натиснув кнопку " Імпорт”. В результаті Майстер Імпорту починає свою роботу. Ось перше вікно, яке відкриває цей Майстер, пропонуючи імпортувати робочі листи або іменовані діапазони книги Excel:

лекція

Зверніть увагу, я вважав за краще працювати з іменованими діапазонами, а не з аркушами книги. Справа в тому, що Майстер імпорту не надто інтелектуальний і не може розібратися, де на робочому аркуші починається список Excel. Він передбачає, що заголовки полів списку починаються у першому рядку. Я ж робочий аркуш починав із деякого загального заголовка, і лише потім уже розміщував список. Тому, перш ніж займатися імпортом списків, я ввів іменовані діапазони для списків, назвавши кожен діапазон на ім'я списку. Це дозволить Майстру Імпорту розібратися з іменами полів списку та зробити їх іменами полів таблиці Access, за умови, що на другому кроці роботи Майстра буде увімкнено прапорець "Перший рядок містить заголовки стовпців". Я ввімкнув цей прапорець, а на третьому кроці роботи увімкнув перемикач "У новій таблиці", оскільки йдеться не про додавання даних до існуючої таблиці, а про створення нової таблиці. Ось як виглядає наступне вікно Майстра Імпорту, що дозволяє уточнити характеристики полів таблиці:

excel

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

excel

Я не став викликати Майстра Аналізу таблиць, але сподіваюся, що ще настане його час, і я розповім докладніше про кроки його роботи. Таблиця "Книги" була успішно перенесена з Excel до Access. Аналогічним чином можна було б імпортувати інші списки Excel, перетворюючи їх у таблиці бази даних Access. Але наступний список "Замовники" я перенесу з Excel до Access, використовуючи команду "Перенести до MS Access", яка з'являється в меню Excel при включеній надбудові "AccessLinks".

Перенесення списків з Excel до Access

Спеціальна надбудова AccessLinks додає в меню Excel команди, що дозволяють перетворити списки Excel на об'єкти бази даних Access - таблиці, форми, звіти. Якщо надбудова AccessLinks ще не підключена, це слід зробити, вибравши команду "Надбудови" з меню "Сервіс" і увімкнувши прапорець відповідної надбудови. При включеній надбудові в меню "Дані" з'являються три команди: MS Access Form, MS Access Report, Convert to MS Access. Перші дві з них дозволяють за даними списку Excel побудувати форму і звіт бази даних Access, я не зупинятимусь на них, оскільки по суті всю побудову здійснюють відомі в Access Майстра побудови форм і звітів. Давайте трохи докладніше розглянемо лише третю команду, яка перетворює список на таблицю бази даних. Перше вікно, яке з'являється після дзвінка цієї команди, дозволяє вказати базуданих Access:

інтуіт

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