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

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

Увага!

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

Увага!

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

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

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

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

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

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

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

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

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

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

ДБФ \u003d Новий XBase; // Етап 1. Створення об'єкта XBase ДБФ. Кодування \u003d КодіровкаXBase. OEM; // Етап 2. Вказівка \u200b\u200bкодування ДБФ. Поля. Додати ( "CODE", "S", 9); // Етап 3. Опис імені та типу поля ДБФ. Поля. Додати ( "NAME", "S", 40); ДБФ. СоздатьФайл ( "D: \\ MyFile.dbf"); // Етап 4. Створення файлу Вибірка \u003d Довідники. Номенклатура. Вибрати (); Поки Вибірка. Наступний () Цикл ДБФ. Додати (); // Додавання рядка ДБФ. CODE \u003d Вибірка. код; // Заповнення значення поля ДБФ. NAME \u003d Вибірка. Найменування; ДБФ. Записати (); // Запис рядка КонецЦікла; ДБФ. ЗакритьФайл(); // Етап 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"); ДБФ. ТекущійІндекс \u003d ДБФ. Індекси інфляції. INDCODE;

Увага!

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

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

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

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

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

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

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

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

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

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

ДБФ . вилучити();

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

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

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

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

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

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

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

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

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

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

У наведеному прикладі використовується рядок підключення «Provider \u003d Microsoft.Jet.OLEDB.4.0; Data Source \u003d« D: \\ »; Extended Properties \u003d 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 редактор, що дозволяє відкривати існуючі і створювати нові бази даних. Має дуже невеликі розміри, може запускатися з флешки і при цьому має багато просунутих інструментів для роботи з 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 навігаційних кнопок, які дозволяють переміщатися по базі (стрілки), додавати / видаляти записи, а також підтверджувати або скасовувати зміни. Потрібні ж нам функції починаються з дев'ятої кнопки - «Пошук»:

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

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

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

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

Значення беремо в одинарні лапки, після чого тиснемо саму кнопку «Фільтр» (вона стає затиснутою) і отримуємо таблицю, яка містить дані тільки з певними нам значеннями в зазначених полях (в прикладі ми відфільтрували всі рядки зі значенням «USA» в поле «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\u003dSQL&s\u003d0.

До речі, плюсом 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 файл з ексель з використанням ADO в ADO я заплутався ...... саме в конретно інформації .... 1. підключення до dbf (і до чого ще можна з помощю ado підключиться і як); 2. Створення файлу dbf (інші варіанти); 3.запісь; 4.сохраненіе; 5.закритіе. спасибі за будь-інфо

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

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

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

Textual

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

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