Як зробити файл dbf. Створення файлу dbf з ексель - VBA. Вивантаження у файл DBF

Головна / Оптимізація роботи

Безкоштовний універсальний DBF редактор, що дозволяє відкривати існуючі та створювати нові бази даних. Має дуже невеликі розміри, може запускатися з флешки і при цьому має багато просунутих інструментів для роботи з файлами DBF, серед яких є навіть підтримка SQL-запитів!

Скріншотів.

Зазвичай на сайті ми висвітлюємо програми, які будуть цікаві широкому колу читачів, але сьогодні випадок не зовсім пересічний:). Я колись працював таким собі «комп'ютерним спеціалістом» у кількох державних конторах і там часто доводилося стикатися з різними програмами, що працюють на базі FoxPro.

Головною проблемою всіх цих додатків було те, що простий користувач міг легко замкнути базу даних так, що її не можна було потім відкрити штатними засобами, тому доводилося перекручуватися, щоб повернути її до життя (що не завжди виходило з огляду на «здібності» «диких юзверів») :)).

І ось, через кілька років, як я вже не працюю там, нам на пошту надіслали прохання додати нову безкоштовну програму для редагування DBF-баз даних, яка має нехитру назву. Sdbf. Про неї і поговоримо:)

Порівняння із платним аналогом

Sdbf, незважаючи на свою портативність (може працювати з флешки!) та малий розмір, є досить просунутим редактором баз даних, який дозволяє створювати, правити та експортувати будь-які бази формату DBF, починаючи зі специфікації xBaseIII, та закінчуючи сучасним xVisualFoxPro! Порівняємо функціонал Sdbf, з можливостями одного з найпростіших редакторів даного штибу DBF Commander Professional:

З наведеної вище таблички ми бачимо, що програми незначно відрізняються за функціоналом, але Sdbf, по-перше, є портативною (що зазвичай немаловажно, тому що кожен комп'ютерних справ майстер вважає за краще носити набір необхідних програм на флешці), а по-друге, є повністю безкоштовною!

Перший запуск Sdbf

Для запуску програми її достатньо розпакувати з архіву в будь-яке місце і відкрити отриманий EXE-файл. Перед нами з'явиться порожнє вікно наступного вигляду:

Drag&Drop, на жаль, не підтримується, тому для початку роботи нам потрібно викликати меню "Файл" і там вже вибрати одну з двох доступних дій: "Створити" нову базу або "Відкрити" існуючу. Відкриємо існуючу базу:

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

В останній виводиться досить багато корисної службової інформації, у тому числі кількість записів у базі даних, кодування, дата створення та автоматично визначений формат. З форматів Sdbf не підтримує лише ранні версії xBase (I та II) і дозволяє відкривати та створювати DBF-файли наступних типів:

  • xBase III – VII;
  • xClipper;
  • xFoxPro;
  • xVisualFoxPro.

Інструменти пошуку та фільтрації даних

Програма Sdbf дозволяє безпосередньо редагувати будь-яку комірку відкритої бази даних, однак, потрібні комірки ще необхідно знайти… Якщо база невелика та простенька, то зробити це можна досить швидко та вручну. Однак якщо записів кілька десятків, а то й сотень, то шукати може бути досить важко.

Але це не така вже й проблема, оскільки у Sdbf є одразу кілька інструментів, що дозволяють відсіяти зайві дані та відобразити лише те, що потрібно!

Ці інструменти розташовані на нижній панелі інструментів. Тут спочатку йде 8 навігаційних кнопок, які дозволяють переміщатися по базі (стрілки), додавати/вилучати записи, а також підтверджувати або скасовувати зміни. Потрібні ж функції починаються з дев'ятої кнопки - «Пошук»:

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

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

Функція пошуку зручна, коли потрібно швидко знайти одиничні входження конкретних даних. Але трапляються випадки, коли зручніше було б відобразити відразу кілька рядків, які містять лише певну інформацію. В даному випадку нам допоможе друга функція (кнопка якої йде відразу за кнопкою пошуку) – «Фільтр»:

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

Значення беремо в одинарні лапки, після чого тиснемо саму кнопку «Фільтр» (вона стає затиснутою) і отримуємо таблицю, що містить дані тільки з визначеними нам значеннями у вказаних полях (у прикладі ми відфільтрували всі рядки зі значенням «U.S.A» у полі «Country» (Регістр вказівки назви значення не має)). Повернути таблицю до вихідного вигляду можна просто повторним натисканням кнопки Фільтр (стає знову віджатою).

Поле фільтрації може містити найпростіші умови "and" (для уточнення запиту по кількох полях) та "or" (для альтернативної вибірки даних із різних полів). На жаль, Sdbf не підтримує виключні запити (типу «not»), але це обмеження ми зможемо обійти іншим способом, про який йдеться трохи нижче.

До речі, щоб не вводити вручну запит фільтрації, Ви можете скористатися наступним трюком: виділіть будь-який запис у полі, за яким фільтруватимете і натисніть клавіші Alt+F (тільки не F4:))). Запит буде автоматично сформований, а в значенні стоятиме знак «*», який є маскою пошуку та відповідає будь-якій кількості будь-яких символів.

На жаль, це єдиний тип масок, який можна використовувати в Sdbf і, що ще сумніше, один запит може містити тільки одну маску: (. Тому, якщо Вам потрібно відфільтрувати одне й те саме поле за декількома параметрами, доведеться використовувати оператор «and» (швидке формування запиту натискання «CTRL+ALT+F») або «or» («SHIFT+ALT+F»).

Виконання SQL-запитів до таблиць баз даних

Пошук та фільтрація – це, безперечно, добре, проте не завжди зручно. Коли кількість записів велика, ми легко можемо втратити з уваги потрібні нам дані під час аналізу таблиць. Однак і на цей випадок у Sdbf є відмінна функція – підтримка SQL-запитів!

За допомогою таких запитів у Sdbf ми можемо:

  1. Динамічно форматувати нашу таблицю, створюючи вибірку лише за певними потрібними полями (оператори SELECT та SELECT TOP);
  2. Копіювати дані з однієї бази в іншу (INSERT FROM та INSERT INTO);
  3. Змінювати та видаляти вміст певних рядків (UPDATE та DELETE, відповідно);
  4. Групувати паралельні запити (UNION);
  5. Формувати зведені таблиці (PIVOT).

Для початку роботи із запитами нам потрібно натиснути кнопку «SQL-запит» у правому кінці панелі інструментів. Однак, результат такої дії буде дещо бентежить: вміст щойно редагованої бази даних пропаде, а поверх робочого вікна з'явиться ще одне порожнє віконце з двома полями (вгорі - поле виведення даних, а внизу - введення).

Лякатися не варто :). Потрібно просто відразу ввести потрібний SQL-запит у нижньому полі із зазначенням імені потрібної бази даних. Якщо Ви не пам'ятаєте цього імені, можете активувати бічну панель Sdbf (натисканням на сіру вертикальну смужку праворуч), на якій у вигляді списку відображаються всі бази, які Ви відкривали раніше.

Також для прискорення роботи бажано запам'ятати гарячі клавіші, які можна переглянути, викликавши довідку щодо натискання клавіші F1. Їх лише три, але вони дозволяють значно прискорити процес створення правильних запитів.

Так, поєднання CTRL+Пробіл - відобразить спливаюче вікно зі списком доступних імен баз даних (щоб не дивитися в бічну панель), CTRL+F - виведе список функцій для поточного оператора, а CTRL+Enter запустить процес виконання запиту . Крім того, якщо клацнути по полю введення правою кнопкою миші (викликати контекстне меню), то ми отримаємо список операторів, що підтримуються Sdbf.

Повернемося до нашого попереднього скріншоту та подивимося на найпростіший запит, який там складено. Він базується на операторі SELECT, а значить повертає нам вибірку. Як параметр вибірки стоїть «*», що означає виведення будь-яких даних, проте ми могли б вказати там через кому імена будь-яких полів таблиці бази даних.

Вибірка, яку ми розглянули вище, є найпростішою, проте Sdbf дозволяє виконувати запити та складніше. На наступному скріншоті ми побачимо вибірку, динамічно сформовану таблицю, що складається з полів, які містять імена клієнтів, місто, де ті проживають і країну. Причому фільтрація клієнтів йде саме по країні проживання (U.S.A) і результати виводяться в алфавітному порядку:

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

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

Перша - «where» має схожість з фільтром, розглянутим нами раніше, і виконує аналогічну дію - дозволяє вибрати ті записи, які відповідають умові.

Друга функція – «order by» відповідає за сортування отриманих результатів по одному з полів (у даному випадку по полю з ім'ям клієнта – «NAME») в алфавітному (параметр «asc») або інвертованому («desc») порядку.

Звичайно, що наведений приклад теж досить примітивний, але він відображає загальну суть створення та обробки SQL-запитів. Якщо хочете дізнатися про них більше, раджу почитати мануали: http://dimonchik.com/insert.html або https://www.sql.ru/articles/articles.aspx?g=SQL&s=0 .

До речі, плюсом Sdbf є можливість експортувати отриману в результаті запиту таблицю як нову базу даних або у вигляді HTML, RTF або CSV-файлу! Для цього достатньо викликати контекстне меню поля відображення таблиці та вибрати відповідний пункт.

Додаткові функції з рядка меню

З основними можливостями Sdbf ми з Вами розібралися, але все це не закінчується. Цілий ряд корисних і навіть унікальних функцій таїть у собі рядок меню, той самий, який ми використовували для відкриття бази даних:) Так, багато корисних можливостей (які іноді дозволяють обійтися без SQL-запитів) можна в меню «Таблиця»:

Серед інших «корисників» типу зміни кодування та злиття баз даних у самому низу ми можемо знайти пункт «Змінити структуру». Даний пункт викликає додаткове віконце, в якому ми можемо повністю змінити всі поля відкритої таблиці, додати нові або видалити більше непотрібні розділи (це ж вікно відкривається при створенні бази даних з нуля).

Саме ми можемо змінювати черговість полів, їх імена, типи, розміри (кількість знаків у осередку) і точність (розрядність - зазвичай визначається автоматично і від типу поля).

Єдине, що треба пам'ятати при редагуванні (а особливо створенні) баз, так це те, що для кожного типу бази існують свої набори типів полів і вони часто (якщо не брати до уваги основні N, C, D) відрізняються. Наприклад, у базах xClipper немає підтримки полів з картинками (P, B), а xBase до сьомої версії не підтримують автоінкрементні поля (+). Тобто потрібно завжди пам'ятати про сумісність:).

Якщо ми розглядаємо рядок меню, то не забудьте заглянути в меню «Поле»:

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

Функція ж «Обчислити» є аналогом Excel'євських формул автопідрахунку і дає нам можливість проводити такі математичні та статистичні операції, як знаходження автосуми поля, обчислення середнього арифметичного, а також максимумів та мінімумів значень. Природно, що для виконання обчислень типи поля мають бути числовими (N, F, I, O, B).

Остання функція, яка не настільки очевидна, але може бути корисною є вбудований HEX-редактор:

Він дозволяє правити дані будь-якого осередку. Для цього достатньо виділити вміст, який потрібно змінити і в контекстному меню вибрати останній пункт - Відкрити в hex. Все - можна правити і зберігати або відразу друкувати результат!

Переваги та недоліки програми

  • портативність та малий розмір;
  • підтримка майже всіх типів DBF-файлів;
  • можливість створювати бази даних із нуля;
  • підтримка SQL-запитів;
  • вбудована система пошуку, фільтрації та редагування даних.
  • не дозволяє задати у фільтрі більше однієї маски;
  • немає функції скасування дій.

Висновки

Програма Sdbf за своїх скромних розмірів і системних вимог дозволяє робити з DBF-базами даних якщо і не все, то дуже і дуже багато… А реалізація підтримки SQL-запитів взагалі дозволяє вивести роботу з редагування бази на новий рівень! З їхньою допомогою можна легко компенсувати багато недоліків у роботі через графічний інтерфейс.

Найбільшим же розчаруванням, на мій погляд, стала відсутність самої тривіальної функції «Скасувати останню дію» у світі «CTRL+Z»: (Найгірше, що через недогляд або незнання користувач може, наприклад, випадково застосувати автозаміну по всьому полю, а повернути дані вже неможливо:(

За цим можна констатувати, що програма у функціональному плані – більш ніж вдала, але перед роботою з нею завжди виконуйте стародавнє адмінське правило – СТВОРЮЙТЕ БЕКАПИ! І буде Вам щастя:)

P.S. Дозволяється вільно копіювати та цитувати цю статтю за умови вказівки відкритого активного посилання на джерело та збереження авторства Руслана Тертишного.

DBF - поширений формат зберігання даних, що з'явився в 80-х роках минулого століття. Вперше формат застосовувався у сімействі СУБД dBase. У зв'язку з популярністю і широким поширенням dBase, було створено безліч dBase-подібних програмних продуктів, що отримали збірну назву xBase. Незважаючи на значний вік формату, він і досі досить широко використовується. У статті розглядаються способи роботи з DBF з «1С:Підприємство».

У «1С:Підприємство» для роботи з файлами формату DBF (версія dBase III) застосовується спеціальний програмний об'єкт – xBase. Робота з цим об'єктом зазвичай не викликає труднощів.

Увага!

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

Увага!

Об'єкт xBase доступний як стороні клієнта, і стороні сервера. Слід продумувати клієнт-серверну взаємодію під час вирішення кожної конкретної задачі.

Читання файлу DBF

Читання даних із файлу DBF проводиться за кілька послідовних етапів:

  1. створення об'єкта XBase;
  2. Відкриття файлу;
  3. Послідовний перебір всіх рядків файлу та зчитування значень полів;
  4. Закриття файлу.
ДБФ = Новий XBase; ДБФ. Відкрити Файл("D:\MyFile.dbf"); // Етап 2. Відкриття файлу Поки що Істина Цикл // Етап 3. Перебір рядків файлуПовідомити (ДБФ. NAME); Якщо НЕ ДБФ. Наступна() Тоді // Позиціювання на наступному записі Перервати; КінецьЯкщо; КінецьЦикл;ДБФ. ЗакритиФайл(); // Етап 4. Закриття файлу

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

Поки що НЕ ДБФ. ВКонце () Цикл Повідомити (ДБФ. NAME); ДБФ. Наступна(); КінецьЦикл;

Вивантаження у файл DBF

Етапи вивантаження у файл DBF:

  1. створення об'єкта XBase;
  2. Вказівка ​​кодування (якщо не вказати, то використовуватиметься кодування ANSI);
  3. Опис полів;
  4. Створення файлу;
  5. Цикл з додаванням та заповненням рядків;
  6. Закриття файлу.

Розглянемо цей процес на прикладі:

ДБФ = Новий XBase; // Етап 1. Створення об'єкту XBaseДБФ. Кодування = КодуванняXBase. OEM; // Етап 2. Вказівка ​​кодуванняДБФ. Поля. Додати ("CODE", "S", 9); // Етап 3. Опис імені та типу поляДБФ. Поля. Додати ("NAME", "S", 40); ДБФ. Створити файл("D:\MyFile.dbf"); // Етап 4. Створення файлуВибірка = Довідники. Номенклатура. Вибрати(); Поки що Вибірка. Наступний() Цикл ДБФ. Додати(); // Додавання рядкаДБФ. CODE = Вибірка. Код; // Заповнення значення поляДБФ. NAME = Вибірка. Найменування; ДБФ. Записати(); // Запис рядка КонецЦикла; ДБФ. ЗакритиФайл(); // Етап 6. Закриття файлу

При вказівці кодування використовується тип КодуванняXBase , який може набувати два значення:

  • ANSI- Формат Windows;
  • OEM- Формат DOS.

Додавання нового поля при описі структури має синтаксис

Додати (< Имя>, < Тип>, < Длина>, < Точность>)

Доступні такі типи:

  • "N" - число;
  • "S" - рядок;
  • "D" - дата;
  • «L» – бульова;
  • "F" - аналогічно "N" - число.

Довжина поля є обов'язковою для типів полів «N», «F» та «S».

Робота з індексами

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

Під час створення індексного файлу слід задати:

  • Перелік індексів;
  • Шлях збереження індексного файла (на етапі 4 розвантаження).

Приклад створення індексного файлу:

ДБФ . Індекси. Додати("INDCODE", "CODE"); ДБФ. СтворитиФайл("D:\MyFile.dbf", "D:\index.cdx");

Процедура додавання нового індексу має синтаксис:

Додати (< Имя>, < Выражение>, <Уникальность>, < Убывание>, < Фильтр >)

Для використання індексів під час читання з файлу DBF слід:

  • Вказати шлях до індексного файлу (на етапі 2 завантаження);
  • Вказати поточний індекс.

Приклад відкриття файлу DBF за допомогою індексного файлу:

ДБФ . Відкрити Файл("D:\MyFile.dbf", "D:\index.cdx"); ДБФ. Поточний індекс = ДБФ. Індекси. INDCODE;

Увага!

При відкритті файлу DBF позиціонування відбувається на першому записі файлу. Перший запис у файлі не відповідає першому запису в індексі. У зв'язку з цим при використанні індексів перед тим, як послідовно оминати рядки, необхідно спозиціонуватися на першому рядку індексу. Це можна зробити методом Перша (), наприклад:

ДБФ. Перша ();

Для пошуку може використовуватись одна з двох функцій:

  • Знайти (< Ключ>, < Режим >) ;
  • ЗнайтиПоКлючу(< Режим >) .

В результаті роботи обох функцій повертається значення з типом булева (знайдено запис із зазначеними умовами чи ні). У разі успішного пошуку поточний покажчик встановлюється на знайденому рядку. Як режим пошуку може використовуватися одне з значень:

  • «>=»;
  • «>»;
  • «<=»;
  • «<«.

Розглянемо пошук у файлі DBF на прикладах:

ДБФ = Новий XBase; ДБФ. Відкрити Файл("D:\MyFile.dbf", "D:\index.cdx"); // При відкритті файлу DBF додатково вказується індексний файлДБФ. Поточний індекс = ДБФ. Індекси. INDCODE; // Установка поточного індексу // Пошук методом Знайти:Якщо ДБФ. Знайти("000000003" , "=" ) Тоді Повідомити( + ДБФ. NAME); Інакше Повідомити("Не знайдено" ); КінецьЯкщо; // Пошук методом ЗнайтиПоКлючу:ДБФ. Ключ. CODE = "000000002"; Якщо ДБФ. ЗнайтиПоКлючу("=" ) Тоді Повідомити( "Знайдено. Найменування елемента: "+ ДБФ. NAME); Інакше Повідомити("Не знайдено" ); КінецьЯкщо; ДБФ. ЗакритиФайл();

Видалення записів у файлі DBF

Видалення запису здійснюється методом Видалити () :

ДБФ . видалити();

Але при використанні цього запису не видаляється з файлу безповоротно, їй присвоюється позначка видалення. При переборі рядків позначені видалення записи пропускаються. Якщо необхідно обійти весь файл, включаючи позначені видалення запису, необхідно призначити значення Істина властивості ВідображатиВидаленіоб'єкт xBase. Дізнатися позначений запис на видалення чи ні можна за допомогою функції Запис Видалити (). Для зняття позначки видалення використовується метод Відновити ().

ДБФ . ВідображатиВидалені = Істина; Поки що НЕ ДБФ. ВКонце() Цикл Якщо ДБФ. ЗаписУдалена() Тоді ДБФ. Відновити(); КінецьЯкщо; ДБФ. Наступна(); КінецьЦикл;

Для безпосереднього видалення помічених записів використовується метод Стиснути () :

ДБФ . Стиснути();

Якщо необхідно видалити всі записи у файлі безпосередньо, можна використовувати метод ОчиститиФайл () :

ДБФ . ОчиститиФайл();

Завантаження з DBF за допомогою ADO

Для роботи з файлами DBF можна використовувати технологію ADO. Драйвери ADO входять до складу операційної системи Windows і додатково встановлювати їх не треба.

Розглянемо приклад коду для читання з файлу DBF за технологією ADO:

АДО = Новий COMОб'єкт("ADODB.Connection"); // Створення COM-об'єктаАДО. Open( "Provider=Microsoft.Jet.OLEDB.4.0; |Data Source=""D:\""; |Extended Properties=DBASE III"); БД = АДО. Execute("Select * from MyFile"); // Запит з отриманням всіх записів з файлу MyFile.DBFПоки що БД. EOF = 0 Цикл //Цикл із записами файлу DBFПовідомити(БД. Fields("Name" ). value); // Приклад звернення до значення поляБД. MoveNext(); //Переходимо до наступного записуКінецьЦикл; АДО. Close();

У наведеному прикладі використовується рядок підключення Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Extended Properties=DBASE III. У цьому рядку:

  • Provider – це драйвер, що використовується;
  • Data Source – шлях, де є файл DBF. Шлях вказується з точністю до каталогу. Ім'я файлу використовується як ім'я таблиці у запитах;
  • Extended Properties – у разі звернення до файлів DBF є обов'язковим параметром. Можна вказати формат файлу

Увага!

При читанні вказаним способом за замовчуванням кодування – OEM. Для того, щоб змінити кодування на ANSI необхідно в реєстрі Windows присвоїти параметру HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\xBase\DataCodePage значення "ANSI".

Залишились питання?
Запитайте у коментарях до статті.

як створити dbf файл з ексель з використанням ADO в ADO я заплутався......саме у конретній інформації.... 1. підключення до dbf(і до чого ще можна за допомогою ado підключиться і як); 2. створення файлу dbf (інші варіанти); 3. запис; 4. збереження; 5.закриття. дякую за будь-яке інфо

що шукати по цій темі або повний ігнор.....на тему ADO може краще створити тему.....обширне використання ADO

скупо як виходить

Код завдання: «Створення dbf файлу з ексель»

Textual

Лістинг програми

"::: Етап 1 - Визначаємо, звідки ми запущені homeDir=Wscript.ScriptFullName "::: Це повний шлях нашого файлу k=Instrrev(homeDir,"\") "::: Шукаємо "\" з кінця homeDir=left (homeDir,(k-1)) "::: Це - чисте ім'я директорії "::: Етап 2 - Створюємо ADO-з'єднання та порожній набір записів Set Conn = CreateObject("ADODB.Connection") Set RS = CreateObject(" ADODB.Recordset") DSNName = "DRIVER=Microsoft dBase Driver (*.dbf);DBQ=" DSNName = DSNName & HomeDir "::: Етап 3 - Відкриваємо з'єднання Conn.Open DSNName "::: Етап 4 - готуємо SQL- оператор для створення таблиці SQL="create table Testtable (N1 Float, N2 Float)" "::: Етап 5 - виконуємо його RS.Open sql, Conn, 3,3 "::: Етап 6 - Додаємо в таблицю 100 записів For i=1 to 100 SQL="insert into testtable values ​​(" & cstr(i) & "," & Cstr(2*i-1) & ")" RS.Open sql,Conn,3,3 Next ":: : Етап 7 - підсумовуємо... SQL="Select sum(N1),sum(N2) from Testtable" Rs.Close SQL="Drop tabl e Testtable" RS.Open sql,Conn,3,3 MsgBox "Таблиця видалена!"

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

Але, на жаль, Ексель починаючи з версії Excel 2007 припинив повноцінну підтримку зазначеного формату. Тепер у цій програмі можна лише переглянути вміст DBF-файлу, а зберегти дані із зазначеним розширенням вбудованим інструментом програми вже не вдасться. На щастя, є інші можливості конвертації даних із програми Excel у потрібний нам формат. Розглянемо, як це можна виконати.

В Excel 2003 і ранніх версіях цієї програми можна було зберегти дані у форматі DBF (dBase) стандартним шляхом. Для цього потрібно було клацнути по пункту "Файл"у горизонтальному меню програми, а потім у списку вибрати позицію "Зберегти як…". У вікні збереження, що запустилося, зі списку потрібно вибрати найменування потрібного формату і натиснути на кнопку «Зберегти».

Але, на жаль, починаючи з версії Excel 2007, розробники Microsoft вважають застарілим dBase, а сучасні формати Ексель занадто складними для того, щоб витрачати час і кошти на забезпечення повної сумісності. Тому в Excel залишилася можливість читати файли DBF, але підтримка збереження даних у цьому форматі вбудованими програмними інструментами була припинена. Тим не менш, існують деякі способи конвертації даних, збережених в Excel в DBF за допомогою застосування надбудов та іншого програмного забезпечення.

Спосіб 1: WhiteTown Converters Pack

Існує ряд програм, які дозволяють конвертувати дані з Excel у DBF. Один із найпростіших способів конвертування даних з Excel у DBF є використання пакета утиліт для конвертування об'єктів з різним розширенням WhiteTown Converters Pack.

Хоча процедура встановлення цієї програми проста і інтуїтивно зрозуміла, все-таки докладно зупинимося на ній, вказавши деякі нюанси.

  1. Після того, як ви завантажили та запустили інсталятор, відразу відкривається віконце Майстри установки, в якому пропонується вибрати мову для подальшої процедури інсталяції. За замовчуванням там має відобразитися та мова, яка встановлена ​​на вашому екземплярі Windows, але при бажанні її можна змінити. Ми ж цього робити не будемо і просто тиснемо на кнопку "OK".
  2. Далі запускається вікно, в якому вказується місце на системному диску, куди встановлюватимуться утиліта. За промовчанням це папка "Program Files"на диску "C". Тут краще теж нічого не міняти та натиснути на клавішу «Далі».
  3. Потім відкривається вікно, в якому можна вибрати, які напрями перетворення ви хочете мати. За промовчанням вибрано всі доступні компоненти конвертування. Але, можливо, деякі користувачі не захочуть встановлювати їх усі, тому що кожна утиліта займає місце на жорсткому диску. У всякому разі, саме для нас важливо, щоб стояла галочка біля пункту "XLS (Excel) to DBF Converter". Установку інших компонентів пакета утиліт користувач може вибрати на власний розсуд. Після того, як налаштування зроблено, не забуваємо клацнути по клавіші «Далі».
  4. Після цього відкривається вікно, в якому додається ярлик в папці. «Пуск». За замовчуванням ярлик називається "WhiteTown", але за бажання можна змінити його найменування. Тиснемо на клавішу «Далі».
  5. Потім запускається вікно, в якому питається, чи створювати ярлик на робочому столі. Якщо ви хочете, щоб він був доданий, залиште галочку біля відповідного параметра, якщо не хочете, то зніміть її. Потім, як завжди, тиснемо на клавішу «Далі».
  6. Після цього відкривається ще одне віконце. У ньому наведено основні параметри установки. Якщо користувача щось не влаштовує, і він хоче відредагувати параметри, слід натиснути на клавішу "Назад". Якщо все гаразд, то клацаємо по кнопці "Встановити".
  7. Починається процедура установки, прогрес якої відображатиме динамічний індикатор.
  8. Потім відкривається інформаційне повідомлення англійською мовою, де висловлюється подяка з приводу інсталяції цього пакета. Тиснемо на клавішу «Далі».
  9. В останньому вікні Майстри установкиповідомляється, що програма WhiteTown Converters Pack успішно встановлена. Нам залишається лише натиснути на кнопку «Завершити».
  10. Після цього на робочому столі з'явиться папка під назвою "WhiteTown". Вона містить ярлики утиліт за конкретними напрямками конвертації. Відкриваємо цю папку. Перед нами постає велика кількість утиліт, що входять до пакету WhiteTown з різних напрямків конвертації. При цьому кожен напрямок має окрему утиліту для 32-бітної та 64-бітної операційної системи Windows. Відкриваємо програму з найменуванням "XLS to DBF Converter", що відповідає розрядності вашої ОС.
  11. Запускається програма XLS to DBF Converter. Як бачимо, інтерфейс англомовний, але він інтуїтивно зрозумілий.

    Відразу відкривається вкладка "Input" («Введення»). Вона призначена для того, щоб вказати об'єкт, який слід конвертувати. Для цього тиснемо на кнопку "Add" («Додати»).

  12. Після цього відкривається стандартне віконце додавання об'єкта. У ньому потрібно перейти в ту директорію, де розміщена потрібна нам книга Excel з розширенням xls або xlsx. Після того, як об'єкт знайдено, виділяємо його найменування та тиснемо на кнопку «Відкрити».
  13. Як бачимо, після цього шлях до об'єкту відобразився у вкладці "Input". Тиснемо на клавішу "Next" («Далі»).
  14. Після цього ми автоматично переміщуємось у другу вкладку "Output" («Висновок»). Тут потрібно вказати в яку саме директорію виводитиметься готовий об'єкт із розширенням DBF. Для того, щоб вибрати папку збереження готового файлу DBF, тиснемо на кнопку "Browse ..." («Переглянути»). Відкривається невеликий список із двох пунктів "Select File" ("Вибрати файл") та "Select Folder" ("Вибрати папку"). Насправді ці пункти лише означають вибір різного виду вікон навігації, щоб вказати папку збереження. Робимо вибір.
  15. У першому випадку це буде звичайне вікно "Зберегти як…". У ньому будуть відображатися як папки, так і вже існуючі об'єкти dBase. Переходимо до директорії, де бажаємо зробити збереження. Далі у полі "Ім'я файлу"вказуємо те найменування, під яким бажаємо, щоб значився об'єкт після конвертації. Після цього тиснемо на кнопку «Зберегти».

    Якщо ж ви оберете варіант "Select Folder", відкриється спрощене віконце вибору директорії. У ньому відображатимуться лише папки. Вибираємо папку для збереження та тиснемо на кнопку "OK".

  16. Як бачимо, після будь-якої з цих дій шлях до папки для збереження об'єкта буде відображено у вкладці "Output". Для переходу до наступної вкладки клацаємо по клавіші "Next" («Далі»).
  17. В останній вкладці "Options" ("Параметри") дуже багато налаштувань, але нас найбільше цікавить "Type of memo fields" ("Тип поля memo"). Клацаємо по полю, в якому за умовчанням стоїть налаштування "Auto" ("Авто"). Відкриється список типів dBase, щоб зберегти об'єкт. Цей параметр дуже важливий, тому що далеко не всі програми, що працюють з dBase, можуть обробляти всі типи об'єктів з цим розширенням. Тому потрібно знати, який тип вибрати. Існує можливість вибору із шести різних типів:
    • dBASE III;
    • FoxPro;
    • dBASE IV;
    • Visual FoxPro;
    • >SMT;
    • dBASE Level 7.

    Робимо вибір того типу, який потрібен для застосування у конкретній програмі.

  18. Після того, як вибір зроблено, можна переходити до безпосередньої процедури конвертування. Для цього тиснемо на кнопку "Start" («Старт»).
  19. Запускається процедура перетворення. Якщо в книзі Ексель є кілька аркушів з даними, то для кожного з них буде створено окремий файл DBF. Про завершення процесу конвертації свідчить зелений індикатор прогресу. Після того, як він дійде до кінця поля, тиснемо на кнопку «Finish» («Фініш»).

Готовий документ буде розташований у директорії, яка була вказана у вкладці "Output".

Єдиний істотний недолік способу із застосуванням пакета утиліт WhiteTown Converters Pack полягає в тому, що безкоштовно можна буде провести лише 30 процедур конвертування, а потім доведеться придбати ліцензію.

Спосіб 2: надбудова XlsToDBF

Конвертувати книгу Ексель у dBase безпосередньо через інтерфейс програми можна за допомогою установки сторонніх надбудов. Однією з найкращих і найзручніших є надбудова XlsToDBF. Розглянемо алгоритм її застосування.

  1. Після того, як завантажили архів XlsToDBF.7z із надбудовою, розпаковуємо з нього об'єкт під назвою XlsToDBF.xla. Оскільки архів має розширення 7z, то розпакування можна проводити або стандартною програмою для цього розширення 7-Zip, або за допомогою іншого архіватора, який підтримує роботу з ним.
  2. Після цього запускаємо програму Ексель та переходимо у вкладку "Файл". Далі переміщуємось у розділ "Параметри"через меню у лівій частині вікна.
  3. У віконці параметрів, що відкрилося, клацаємо по пункту «Надбудови». Переміщуємось у праву частину вікна. У самому його низу розташоване поле «Управління». Переставляємо у ньому перемикач у позицію «Надбудови Excel»і клацаємо по кнопці "Перейти ...".
  4. Відкривається невелике віконце управління надбудовами. Тиснемо в ньому на кнопку "Огляд ...".
  5. Запускається віконце відкриття об'єкта. Нам потрібно перейти до директорії, де знаходиться розпакований архів XlsToDBF. Заходимо в папку під однойменною назвою та виділяємо об'єкт із найменуванням "XlsToDBF.xla". Після цього тиснемо на кнопку "OK".
  6. Потім ми повертаємось у віконце управління надбудовами. Як бачимо, у списку з'явилося найменування "XLS -> DBF". Це і є наша надбудова. Біля неї має стояти галочка. Якщо галочка відсутня, то ставимо її, а потім тиснемо на кнопку "OK".
  7. Отже, надбудову встановлено. Тепер відкриваємо документ Ексель, дані з якого потрібно перетворити на dBase, або просто набираємо їх на аркуші, якщо документ ще не створений.
  8. Тепер нам потрібно буде зробити деякі маніпуляції з даними, щоб підготувати їх до конвертації. Насамперед, додаємо два рядки над шапкою таблиці. Вони повинні бути найпершими на аркуші та мати найменування на вертикальній панелі координат «1»і «2».

    У верхній лівій комірці вписуємо найменування, яке ми хочемо присвоїти створюваному DBF-файлу. Воно складається з двох частин: власне назви та розширення. Допускається використання лише латиниці. Приклад такої назви – "UCHASTOK.DBF".

  9. У першому осередку праворуч від найменування необхідно вказати кодування. Існує два варіанти кодування із застосуванням даної надбудови: CP866і CP1251. Якщо осередок B2порожня або в ній встановлено будь-яке значення, відмінне від "CP866", то за замовчуванням застосовуватиметься кодування CP1251. Ставимо те кодування, яке вважаємо за потрібне або залишаємо поле порожнім.
  10. Далі переходимо до наступного рядка. Справа в тому, що в структурі dBase кожен стовпець, що називається полем, має власний тип даних. Існують такі їх позначення:
    • N(Numeric) – числовий;
    • L(Logical) – логічний;
    • D(Date) – дата;
    • C(Character) – рядковий.

    Крім того, у рядковому ( Cnnn) та числовому типі ( Nnn) після найменування у вигляді літери слід вказувати максимальну кількість символів у полі. Якщо в числовому типі застосовуються десяткові знаки, їх кількість теж потрібно вказати після точки ( Nnn.n).

    Існують і інші типи даних у форматі dBase (Memo, General тощо), але ця надбудова з ними працювати не вміє. Втім, з ними не вмів працювати і Excel 2003, коли підтримував конвертацію в DBF.

    У нашому конкретному випадку перше поле буде рядковою шириною 100 символів ( C100), а інші поля будуть числовими шириною 10 символів ( N10).

  11. У наступному рядку розташовані найменування полів. Але річ у тому, що вони також мають бути внесені на латиниці, а не на кирилиці, як у нас. Також у найменуванні полів не допускаються прогалини. Перейменовуємо їх відповідно до цих правил.
  12. Після цього підготовку даних вважатимуться закінченою. Виділяємо на аркуші курсором із лівою клавішею миші весь діапазон таблиці. Потім переходимо у вкладку «Розробник». За замовчуванням вона відключена, тому перед подальшими маніпуляціями потрібно її активувати та включити роботу макросів. Далі на стрічці у блоці налаштувань «Код»клацаємо по значку «Макроси».

    Можна зробити трохи простіше, набравши комбінацію гарячих клавіш Alt+F8.

  13. Запускається віконце макросів. В полі "Ім'я макросу"вводимо найменування нашої надбудови "XlsToDBF"без лапок. Регістр у своїй не важливий. Далі клацаємо по кнопці «Виконати».
  14. Макрос у фоновому режимі виконує обробку. Після цього в тій же папці, де розташований вихідний Excel-файл, буде сформовано об'єкт з розширенням DBF з тим найменуванням, яке було задано в осередку A1.

Як бачимо, даний спосіб значно складніший за попередній. Крім того, він дуже обмежений за кількістю типів полів і створюваних типів об'єктів з розширенням DBF. Ще одним недоліком є ​​те, що директорію створення об'єкта dBase можна призначати лише перед процедурою конвертування шляхом прямого переміщення в папку призначення вихідного Excel-файлу. Серед переваг даного способу можна відзначити те, що на відміну від попереднього варіанту він абсолютно безкоштовний і практично всі маніпуляції проводяться безпосередньо через інтерфейс Ексель.

Спосіб 3: Microsoft Access

Хоча у нових версій Excel і немає вбудованого способу збереження даних у форматі DBF, проте, варіант із застосуванням Microsoft Access найбільше наблизився до того, щоб назвати його стандартним. Справа в тому, що ця програма випущена тим же виробником, що Ексель, і також входить в пакет Microsoft Office. До того ж, це найбезпечніший варіант, тому що не потрібно буде зв'язуватися із програмним забезпеченням сторонніх виробників. Microsoft Access спеціально призначений для роботи з базами даних.

  1. Після того, як всі необхідні дані на аркуші Ексель введені, для того, щоб конвертувати їх у формат DBF, потрібно спочатку зробити збереження в одному з форматів Excel. Для цього клацаємо по іконці у вигляді дискети у верхньому лівому куті вікна програми.
  2. Відкриється вікно збереження. Переходимо до директорії, де бажаємо, щоб файл був збережений. Саме з цієї папки його потрібно буде потім відкрити Microsoft Access. Формат книги можна залишити за промовчанням xlsx, а можна змінити на xls. В даному випадку це не критично, тому що все одно ми зберігаємо файл тільки для того, щоб перетворити його на DBF. Після того, як всі налаштування виконані, тиснемо на кнопку «Зберегти»та закриваємо вікно Excel.
  3. Запускаємо програму Microsoft Access. Переходимо у вкладку "Файл"якщо вона відкрилася в іншій вкладці. Тиснемо на пункт меню «Відкрити», розташований у лівій частині вікна.
  4. Відкриється вікно відкриття файлу. Переходимо до директорії, де ми зберегли файл в один з форматів Excel. Щоб він відобразився у вікні, переставляємо перемикач формату файлів у положення "Книга Excel (*.xlsx)"або Microsoft Excel (*.xls), Залежно від того, в якому з них книга була збережена. Після того, як найменування потрібного нам файлу відобразилося, виділяємо його та тиснемо на кнопку «Відкрити».
  5. Відчиняється вікно "Зв'язок з електронною таблицею". Воно дозволяє максимально коректно перемістити дані з файлу Excel до Microsoft Access. Нам потрібно вибрати лист Ексель, дані з якого ми збираємось імпортувати. Справа в тому, що навіть якщо у файлі Excel містилася інформація на декількох аркушах, то імпортувати її в Access можна лише окремо і, відповідно, потім перетворити її на окремі файли DBF.

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

  6. У наступному вікні, якщо таблиця містить заголовки, потрібно поставити галочку біля пункту "Перший рядок містить заголовки стовпців". Потім тиснемо на кнопку «Далі».
  7. У новому вікні зв'язку з електронною таблицею можна змінити ім'я зв'язаного елемента. Потім тиснемо на кнопку «Готово».
  8. Після цього з'явиться діалогове вікно, в якому буде повідомлення про те, що зв'язування таблиці з файлом Excel завершено. Тиснемо на кнопку "OK".
  9. У лівій частині інтерфейсу програми з'явиться найменування таблиці, яке ми надали їй в останньому вікні. Двічі клацаємо по ньому лівою кнопкою миші.
  10. Після цього таблиця з'явиться у вікні. Переміщуємось у вкладку "Зовнішні дані".
  11. На стрічці у блоці інструментів «Експорт»клацаємо по напису "Додатково". У списку, що відкрився, вибираємо пункт "Файл dBase".
  12. Відкриється вікно експорту у форматі DBF. В полі "Ім'я файлу"можна вказати місце зберігання файлу та його найменування, якщо ті, що вказані за замовчуванням, вам з якоїсь причини не підходять.

    В полі "Формат файлу"вибираємо один із трьох типів формату DBF:

    • dBASE III(за замовчуванням);
    • dBASE IV;
    • dBASE 5.

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

    Після того, як всі налаштування виставлені, тиснемо на кнопку "OK".

  13. Якщо після цього з'явилося повідомлення про помилку, спробуйте експортувати дані, використовуючи інший тип формату DBF. Якщо все пройшло нормально, то з'явиться вікно, в якому повідомляється, що експорт виконано успішно. Тиснемо на кнопку «Закрити».

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

Як бачимо, незважаючи на те, що в сучасних версіях Excel відсутня можливість збереження файлів у форматі DBF вбудованими інструментами, проте цю процедуру можна здійснити за допомогою інших програм і надбудов. При цьому слід зазначити, що найбільш функціональний спосіб конвертування – це використання набору WhiteTown Converters Pack. Але, на жаль, кількість безкоштовних перетворень у ньому обмежена. Надбудова XlsToDBF дозволяє виконати конвертацію абсолютно безкоштовно, але процедура набагато складніша. До того ж функціонал цього варіанта дуже обмежений.

"Золотою серединою" є спосіб з використанням програми Access. Як і Excel – це розробка компанії Microsoft, тому стороннім додатком його вже не назвеш. До того ж цей варіант дозволяє конвертувати файл Excel у кілька типів формату dBase. Хоча за цим показником Access все-таки поступається програмою WhiteTown.

© 2022 androidas.ru - Все про Android