DBF – широко распространенный формат хранения данных, появившийся в 80-х годах прошлого века. Впервые формат применялся в семействе СУБД dBase. В связи с популярностью и широким распространением dBase, было создано множество dBase-подобных программных продуктов, получивших собирательное название xBase. Несмотря на значительный возраст формата, он до сих пор достаточно широко используется. В данной статье рассматриваются способы работы с DBF из «1С:Предприятие».
В «1С:Предприятие» для работы с файлами формата DBF(версия dBase III) применяется специальный программный объект – xBase. Работа с этим объектом обычно не вызывает трудностей.
Внимание!
При работе с файлами DBF следует помнить, что имя файла должно удовлетворять ограничению 8.3.
Внимание!
Объект xBase доступен как на стороне клиента, так и на стороне сервера. Следует продумывать клиент-серверное взаимодействие при решении каждой конкретной задачи.
Чтение данных из файла DBF производится за несколько последовательных этапов:
Можно использовать несколько измененный алгоритм перебора строк файла:
Пока НЕ ДБФ . ВКонце () Цикл Сообщить(ДБФ. NAME); ДБФ. Следующая (); КонецЦикла;Этапы выгрузки в файл DBF:
Рассмотрим этот процесс на примере:
ДБФ = Новый XBase; // Этап 1. Создание объекта XBase ДБФ. Кодировка = КодировкаXBase. OEM; // Этап 2. Указание кодировки ДБФ. Поля. Добавить("CODE" , "S" , 9 ); // Этап 3. Описание имени и типа поля ДБФ. Поля. Добавить("NAME" , "S" , 40 ); ДБФ. СоздатьФайл("D:\MyFile.dbf" ); // Этап 4. Создание файла Выборка = Справочники. Номенклатура. Выбрать(); Пока Выборка. Следующий() Цикл ДБФ. Добавить(); // Добавление строки ДБФ. CODE = Выборка. Код; // Заполнение значения поля ДБФ. NAME = Выборка. Наименование; ДБФ. Записать(); // Запись строки КонецЦикла; ДБФ. ЗакрытьФайл (); // Этап 6. Закрытие файлаПри указании кодировки используется тип КодировкаXBase , который может принимать два значения:
Добавление нового поля при описании структуры имеет синтаксис
Добавить(< Имя>, < Тип>, < Длина>, < Точность>)Доступны следующие типы:
Длина поля является обязательным для типов полей «N», «F» и «S».
Совместно с файлом DBF может использоваться индексный файл, в котором может содержаться информация об одном или более индексе. Наличие индексов делает возможным использование поиска, а не только последовательного перебора всех строк файла.
При создании индексного файла следует задать:
Пример создания индексного файла:
ДБФ. Индексы. Добавить("INDCODE" , "CODE" ); ДБФ. СоздатьФайл ("D:\MyFile.dbf" , "D:\index.cdx" );Процедура добавления нового индекса имеет синтаксис:
Добавить(< Имя>, < Выражение>, <Уникальность>, < Убывание>, < Фильтр >)Для использования индексов при чтении из файла DBF следует:
Пример открытия файла DBF с использованием индексного файла:
ДБФ. ОткрытьФайл("D:\MyFile.dbf" , "D:\index.cdx" ); ДБФ. ТекущийИндекс = ДБФ. Индексы. INDCODE ;Внимание!
При открытии файла DBF позиционирование происходит на первой записи в файле. Первая запись в файле не соответствует первой записи в индексе. В связи с этим при использовании индексов перед тем, как последовательно обходить строки, необходимо спозиционироваться на первой строке индекса. Это можно сделать методом Первая () , например:
ДБФ . Первая ();Для поиска может использоваться одна из двух функций:
В результате работы обоих функций возвращается значение с типом булево (найдена запись с указанными условиями или нет). В случае успешного поиска текущий указатель устанавливается на найденной строке. В качестве режима поиска может использоваться одно из значений:
Рассмотрим поиск в файле DBF на примерах:
ДБФ = Новый XBase; ДБФ. ОткрытьФайл("D:\MyFile.dbf" , "D:\index.cdx" ); // При открытии файла DBF дополнительно указывается индексный файл ДБФ. ТекущийИндекс = ДБФ. Индексы. INDCODE; // Установка текущего индекса // поиск методом Найти: Если ДБФ. Найти("000000003" , "=" ) Тогда Сообщить( + ДБФ. NAME); Иначе Сообщить("Не найдено" ); КонецЕсли; // поиск методом НайтиПоКлючу: ДБФ. Ключ. CODE = "000000002" ; Если ДБФ. НайтиПоКлючу("=" ) Тогда Сообщить("Найдено. Наименование элемента: " + ДБФ. NAME); Иначе Сообщить("Не найдено" ); КонецЕсли; ДБФ. ЗакрытьФайл ();Удаление записи производится методом Удалить () :
ДБФ. Удалить ();Но при использовании этого метода запись не удаляется из файла безвозвратно, ей присваивается пометка удаления. При переборе строк помеченные на удаление записи пропускаются. Если необходимо обойти весь файл, включая помеченные на удаление записи, необходимо присвоить значение Истина свойству ОтображатьУдаленные объекта xBase. Узнать помечена запись на удаление или нет можно с помощью функции ЗаписьУдалена () . Для снятия пометки удаления используется метод Восстановить () .
ДБФ. ОтображатьУдаленные = Истина; Пока НЕ ДБФ. ВКонце() Цикл Если ДБФ. ЗаписьУдалена() Тогда ДБФ. Восстановить(); КонецЕсли; ДБФ. Следующая (); КонецЦикла;Для непосредственного удаления помеченных записей используется метод Сжать () :
ДБФ. Сжать ();Если необходимо удалить все записи в файле непосредственно, то можно использовать метод ОчиститьФайл () :
ДБФ. ОчиститьФайл ();Для работы с файлами 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». В этой строке:
Внимание!
При чтении указанным способом кодировка по-умолчанию – 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, во-первых, является портативной (что обычно немаловажно, так как каждый компьютерных дел мастер предпочитает носить набор необходимых программ на флешке), а во-вторых, является полностью бесплатной!
Для запуска программы ее достаточно распаковать из скачанного архива в любое место и открыть полученный EXE-файл. Перед нами появится пустое окошко следующего вида:
Drag&Drop, увы, не поддерживается, поэтому для начала работы нам потребуется вызвать меню «Файл» и там уже выбрать одно из двух доступных действий: «Создать» новую базу или «Открыть» существующую. Откроем существующую базу:
Перед нами откроется содержимое выбранной базы данных в виде таблицы. В «нулевой» строке отображаются имена полей, а начиная с первой - само содержимое. Под содержимым внизу находится панель инструментов и статусная строка.
В последней выводится достаточно много полезной служебной информации, в том числе, количество записей в базе данных, кодировка, дата создания и автоматически определенный формат. Из форматов Sdbf не поддерживает только ранние версии xBase (I и II) и позволяет открывать и создавать DBF-файлы следующих типов:
Программа Sdbf позволяет напрямую редактировать любую ячейку открытой базы данных, однако, нужные ячейки еще необходимо найти… Если база небольшая и простенькая, то сделать это можно довольно быстро и вручную. Однако, если записей несколько десятков, а то и сотен, то искать может быть довольно затруднительно.
Но это не такая уж и проблема, поскольку в Sdbf есть сразу несколько инструментов, позволяющих отсеять лишние данные и отобразить только то, что нужно!
Эти инструменты находятся на нижней панели инструментов. Здесь вначале идет 8 навигационных кнопок, которые позволяют перемещаться по базе (стрелки), добавлять/удалять записи, а также подтверждать или отменять изменения. Нужные же нам функции начинаются с девятой кнопки - «Поиск»:
При активации кнопки перед нами появляется небольшое окошко с формой поиска. Нам нужно указать текст, который нужно найти и выбрать из выпадающего списка поле, по которому будет производиться поиск. Теперь жмем кнопку «Найти далее» и программа автоматически выделит строку, следующую за текущим выделением, в которой есть искомый текст. Повторное нажатие кнопки выделит строку ниже от текущей, в которой есть те же искомые данные и т.д.
Иногда в базах данных встречается нестандартное форматирование ячейки: лишние пробелы, табуляции и прочие символы, которые визуально не отображаются, но влияют на результат выдачи поиска. Если Вы столкнулись с таким случаем, то для нормальной работы функции Вам будет достаточно снять флажок «С учетом формата» в нижней центральной части окошка поиска и искомые строки начнут отображаться.
Функция поиска удобна, когда нам нужно быстро найти единичные вхождения конкретных данных. Но бывают случаи, когда удобнее было бы отобразить сразу несколько строк, которые содержат только определенную информацию. В данном случае нам поможет вторая функция (кнопка которой идет сразу за кнопкой поиска) - «Фильтр»:
Чтобы задействовать фильтрацию, нам нужно сперва правильно составить запрос и ввести его в специально отведенное поле (сразу за кнопкой в центральной части панели инструментов). Принцип составления запроса - прост, но не совсем очевиден. Нам нужно сперва ввести название поля, по которому нужно фильтровать таблицу базы данных, а затем приравнять значение фильтра к конкретному тексту, по которому нам нужно найти все строки.
Значение берем в одинарные кавычки, после чего жмем саму кнопку «Фильтр» (она становится зажатой) и получаем таблицу, содержащую данные только с определенными нам значениями в указанных полях (в примере мы отфильтровали все строки со значением «U.S.A» в поле «Country» (регистр указания названия значения не имеет)). Вернуть таблицу к исходному виду можно просто повторным нажатием кнопки «Фильтр» (становится вновь отжатой).
Поле фильтрации может содержать простейшие условия «and» (для уточнения запроса по нескольким полям) и «or» (для альтернативной выборки данных из разных полей). К сожалению, Sdbf не поддерживает исключающие запросы (типа «not»), но это ограничение мы сможем обойти другим способом, о котором речь пойдет чуть ниже.
Кстати, чтобы не вводить вручную запрос фильтрации, Вы можете воспользоваться следующим трюком: выделите любую запись в поле, по которому будете фильтровать и нажмите сочетание клавиш «Alt+F» (только не F4:))). Запрос будет автоматически сформирован, а в значении будет стоять знак «*», который является маской поиска и соответствует любому количеству любых символов.
Увы, это единственный тип масок, который можно использовать в Sdbf и, что еще печальнее, один запрос может содержать только одну маску:(. Поэтому, если Вам нужно отфильтровать одно и то же поле по нескольким параметрам, то придется использовать оператор «and» (быстрое формирование запроса по нажатию «CTRL+ALT+F») или «or» («SHIFT+ALT+F»).
Поиск и фильтрация - это, бесспорно, хорошо, однако не всегда удобно. Когда количество записей велико, мы легко можем потерять из виду нужные нам данные при разборе таблиц. Однако и на этот случай в Sdbf имеется отличная функция - поддержка SQL-запросов !
При помощи таких запросов в Sdbf мы можем:
Для начала работы с запросами нам нужно нажать кнопку «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». Все - можно править и сохранять или сразу распечатывать результат!
Программа Sdbf при своих скромных размерах и системных требованиях позволяет делать с DBF-базами данных если и не все, то очень и очень многое… А реализация поддержки SQL-запросов вообще позволяет вывести работу по редактированию базы на новый уровень! С их помощью можно легко компенсировать многие недочеты в работе через графический интерфейс.
Самым же большим разочарованием, на мой взгляд, явилось отсутствие самой тривиальной функции «Отменить последнее действие» в миру «CTRL+Z»:(Самое обидное, что по недосмотру или незнанию пользователь может, например, случайно применить автозамену по всему полю, а вернуть данные уже будет невозможно:(
За сим можно констатировать, что программа в функциональном плане - более чем удачна, но перед работой с ней всегда выполняйте древнее админское правило - СОЗДАВАЙТЕ БЭКАПЫ! И будет Вам счастье:)
P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.
DBF – это популярный формат хранения и обмена данными между различными программами, а в первую очередь, между приложениями, которые обслуживают базы данных и электронные таблицы. Хотя он и стал устаревать, но продолжает оставаться востребованным в различных сферах. Например, с ним продолжают активно работать бухгалтерские программы, а контролирующие и государственные органы принимают значительную часть отчетов в данном формате.
Но, к сожалению, Эксель, начиная с версии Excel 2007, прекратил полноценную поддержку указанного формата. Теперь в этой программе можно только просмотреть содержимое DBF-файла, а сохранить данные с указанным расширением встроенными инструментами приложения уже не получится. К счастью, имеются другие возможности конвертации данных из программы Excel в нужный нам формат. Рассмотрим, каким образом это можно выполнить.
В Excel 2003 и в более ранних версиях этой программы можно было сохранить данные в формате DBF (dBase) стандартным путем. Для этого нужно было кликнуть по пункту «Файл» в горизонтальном меню приложения, а затем в открывшемся списке выбрать позицию «Сохранить как…» . В запустившемся окошке сохранения из списка требовалось выбрать наименование нужного формата и нажать на кнопку «Сохранить» .
Но, к сожалению, начиная с версии Excel 2007, разработчики Microsoft посчитали dBase устаревающим, а современные форматы Эксель слишком сложными для того, чтобы тратить время и средства на обеспечение полной совместимости. Поэтому в Excel осталась возможность читать DBF-файлы, но поддержка сохранения данных в этом формате встроенными программными инструментами была прекращена. Тем не менее, существуют некоторые способы конвертации данных сохраненных в Excel в DBF при помощи применения надстроек и другого программного обеспечения.
Существует ряд программ, которые позволяют конвертировать данные из Excel в DBF. Один из самых простых способов конвертирования данных из Excel в DBF является использование пакета утилит для конвертирования объектов с различным расширением WhiteTown Converters Pack.
Хотя процедура установки данной программы проста и интуитивно понятна, все-таки подробно остановимся на ней, указав на некоторые нюансы.
Сразу открывается вкладка «Input» («Ввод» ). Она предназначена для того, чтобы указать объект, который следует конвертировать. Для этого жмем по кнопке «Add» («Добавить» ).
Если же вы выберите вариант «Select Folder» , то откроется упрощенное окошко выбора директории. В нем будут отображаться только папки. Выбираем папку для сохранения и жмем на кнопку «OK» .
Делаем выбор того типа, который нужен для применения в конкретной программе.
Готовый документ будет расположен в той директории, которая была указана во вкладке «Output» .
Единственный существенный недостаток способа с применением пакета утилит WhiteTown Converters Pack состоит в том, что бесплатно можно будет провести только 30 процедур конвертирования, а потом придется приобретать лицензию.
Конвертировать книгу Эксель в dBase непосредственно через интерфейс приложения можно с помощью установки сторонних надстроек. Одной из лучших и наиболее удобных из них является надстройка XlsToDBF. Рассмотрим алгоритм её применения.
В самой верхней левой ячейке вписываем наименование, которое мы хотим присвоить создаваемому DBF-файлу. Оно состоит из двух частей: собственно названия и расширения. Допускается использование только латиницы. Пример такого наименования – «UCHASTOK.DBF» .
Кроме того, в строковом (Cnnn ) и числовом типе (Nnn ) после наименования в виде буквы следует указывать максимальное количество символов в поле. Если в числовом типе применяются десятичные знаки, то их количество тоже нужно указать после точки (Nnn.n ).
Существуют и другие типы данных в формате dBase (Memo, General и т.д.), но данная надстройка с ними работать не умеет. Впрочем, с ними не умел работать и Excel 2003, когда ещё поддерживал конвертацию в DBF.
В нашем конкретном случае первое поле будет строковым шириной в 100 символов (C100 ), а остальные поля будут числовыми шириной в 10 символов (N10 ).
Можно сделать и чуть проще, набрав комбинацию горячих клавиш Alt+F8 .
Как видим, данный способ значительно сложнее предыдущего. Кроме того, он весьма ограничен по количеству используемых типов полей и создаваемых типов объектов с расширением DBF. Ещё одним недостатком является то, что директорию создания объекта dBase можно назначать только перед процедурой конвертирования, путем прямого перемещения в папку назначения исходного Excel-файла. Среди преимуществ данного способа можно отметить то, что в отличие от предыдущего варианта, он абсолютно бесплатен и практически все манипуляции производятся непосредственно через интерфейс Эксель.
Хотя у новых версий Excel и нет встроенного способа сохранение данных в формате DBF, но, тем не менее, вариант с применением приложения Microsoft Access более всего приблизился к тому, чтобы назвать его стандартным. Дело в том, что эта программа выпущена тем же производителем, что и Эксель, и также входит в пакет Microsoft Office. К тому же, это самый безопасный вариант, так как не нужно будет связываться с программным обеспечением сторонних производителей. Microsoft Access специально предназначен для работы с базами данных.
Также существует возможность импорта информации отдельных диапазонов на листах. Но в нашем случае это не нужно. Устанавливаем переключатель в позицию «Листы» , а затем выбираем тот лист, откуда собираемся брать данные. Корректность отображения информации можно просмотреть в нижней части окна. Если все удовлетворяет, жмем на кнопку «Далее» .
В поле «Формат файла» выбираем один из трех типов формата DBF:
Нужно учесть, что чем современнее формат (выше порядковый номер), то тем больше существует возможностей по обработке в нем данных. То есть, выше вероятность того, что в файле удастся сохранить все данные таблицы. Но в то же время ниже вероятность того, что программа, куда вы в будущем собираетесь импортировать файл DBF, будет совместима именно с этим типом.
После того, как все настройки выставлены, жмем на кнопку «OK» .
Созданный файл в формате dBase будет находиться в той директории, которая была указана в окне экспорта. Далее с ним вы можете производить любые манипуляции, включая импорт его в другие программы.
Как видим, несмотря на то, что в современных версиях Excel отсутствует возможность сохранения файлов в формате DBF встроенными инструментами, тем не менее, данную процедуру можно осуществить с помощью применения других программ и надстроек. При этом следует отметить, что наиболее функциональный способ конвертирования – это использование набора утилит WhiteTown Converters Pack. Но, к сожалению, количество бесплатных преобразований в нем ограничено. Надстройка XlsToDBF позволяет выполнить конвертацию абсолютно бесплатно, но процедура намного сложнее. К тому же функционал данного варианта очень ограничен.
«Золотой серединой» является способ с использованием программы Access. Как и Excel – это разработка компании Microsoft, а поэтому сторонним приложением его уже не назовешь. К тому же данный вариант позволяет конвертировать файл Excel в несколько типов формата dBase. Хотя по этому показателю Access все-таки уступает программе WhiteTown.
как создать dbf файл из ексель из использованием ADO в ADO я запуталсь......именно в конретной информации.... 1. подключение к dbf(и к чему еще можно с помощю ado подключится и как); 2.создание файла dbf (другие варианты); 3.запись; 4.сохранение; 5.закрытие. спасибо за любое инфо
что искать по даной теме или полный игнор.....на тему ADO может лутше создать тему.....обшырное использование ADO
скупо как то получается
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.Open SQL,Conn,3,3 SS1=RS(0) SS2=RS(1) MsgBox SS1 MsgBox SS2 Rs.Close SQL="Drop table Testtable" RS.Open sql,Conn,3,3 MsgBox "Таблица удалена!"