Създаване на dbf файл. Създаване на dbf файл от Excel - VBA

DBF е популярен формат за съхранение и обмен на данни между различни програми и предимно между приложения, които поддържат бази данни и електронни таблици. Въпреки че е остарял, той продължава да бъде търсен в различни области. Например, те продължават активно да работят с него счетоводни програми, а регулаторните и държавните органи приемат значителна част от отчетите в този формат.

Но, за съжаление, Excel, започвайки с Excel 2007, спря напълно да поддържа този формат. Сега в тази програма можете да видите само съдържанието на DBF файла и да запазите данните от него посочено разширениеВградените инструменти на приложението вече няма да работят. За щастие има и други опции за конвертиране на данни от Excel програмив необходимия ни формат. Нека да разгледаме как може да стане това.

В Excel 2003 и по-ранните версии на програмата можете да записвате данни във формат DBF (dBase), като използвате стандартния метод. За да направите това, трябваше да щракнете върху елемента "файл" V хоризонтално менюприложения и след това изберете позиция в списъка, който се отваря „Запиши като...“. В прозореца за запазване, който се отваря, трябва да изберете име от списъка необходим формати натиснете бутона "Запазване".

Но, за съжаление, започвайки с Excel 2007, разработчиците на Microsoft смятат dBase за остарял, а съвременните формати на Excel са твърде сложни, за да отделят време и пари за осигуряване на пълна съвместимост. Поради това Excel запази възможността да чете DBF файлове, но поддръжката за запазване на данни в този формат с вградени софтуерни инструменти беше преустановена. Има обаче някои начини за конвертиране на данни, записани в Excel, в DBF с помощта на добавки и друг софтуер.

Метод 1: WhiteTown Converters Pack

Има редица програми, които ви позволяват да конвертирате данни от Excel в DBF. Един от най прости начиниконвертирането на данни от Excel в DBF е да се използва пакет от помощни програми за конвертиране на обекти с различни разширения WhiteTown Converters Pack.

Въпреки че процедурата за инсталиране на тази програма е проста и интуитивна, все пак ще се спрем на нея подробно, като посочим някои нюанси.

  1. След като изтеглите и стартирате инсталатора, веднага се отваря прозорец Съветници за инсталиране, което ви подканва да изберете език за по-нататъшни инсталационни процедури. По подразбиране трябва да показва езика, който е инсталиран на вашето копие на Windows, но можете да го промените, ако желаете. Ние няма да правим това и просто натискаме бутона. "ОК".
  2. След това се отваря прозорец, в който местоположението на системен диск, където ще бъде инсталирана помощната програма. По подразбиране това е папката "Програмни файлове"на диск "C". Тук също е по-добре да не променяте нищо и да натиснете клавиша "Следващ".
  3. След това се отваря прозорец, в който можете да изберете кои конкретни посоки на трансформация искате да имате. По подразбиране са избрани всички налични компоненти за преобразуване. Но някои потребители може да не искат да инсталират всички, тъй като всяка помощна програма заема място на твърдия диск. Във всеки случай за нас е важно да има отметка до артикула „XLS (Excel) към DBF конвертор“. Потребителят може да избере да инсталира останалите компоненти на пакета помощни програми по свое усмотрение. След като направите настройките, не забравяйте да кликнете върху бутона "Следващ".
  4. След това се отваря прозорец, в който добавяте пряк път към папката "Старт". По подразбиране се извиква пряк път "Уайттаун", но можете да промените името му, ако желаете. Натиснете бутона "Следващ".
  5. След това се отваря прозорец с въпрос дали да се създаде пряк път на работния плот. Ако искате да бъде добавен, оставете отметка до съответния параметър; ако не искате, махнете отметката. След това, както винаги, натиснете бутона "Следващ".
  6. След това се отваря друг прозорец. Той показва основните параметри на инсталацията. Ако потребителят не е доволен от нещо и иска да редактира параметрите, тогава натиснете бутона "обратно". Ако всичко е наред, щракнете върху бутона "Инсталиране".
  7. Започва процедурата по инсталиране, напредъкът на която ще се показва от динамичен индикатор.
  8. След това се отваря информационно съобщениена английски, който изразява благодарност за инсталирането на този пакет. Натиснете бутона "Следващ".
  9. В последния прозорец Съветници за инсталиранеСъобщава се, че програмата WhiteTown Converters Pack е инсталирана успешно. Всичко, което трябва да направим, е да натиснем бутона "Край".
  10. След това се извика папка "Уайттаун". Той съдържа помощни преки пътища за конкретни области на преобразуване. Отворете тази папка. Предлагаме ви голям брой помощни програми, включени в софтуерния пакет WhiteTown. различни посокипреобразуване. Освен това всяка посока има отделна помощна програма за 32-битови и 64-битови операционни системи Windows системи. Отворете приложението с името „XLS към DBF конвертор“, съответстващ на битовостта на вашата ОС.
  11. Започва XLS програмакъм DBF конвертор. Както можете да видите, интерфейсът е на английски, но въпреки това е интуитивен.

    Разделът се отваря веднага "Вход" ("Влез"). Той е предназначен да посочи обекта, който трябва да бъде преобразуван. За да направите това, щракнете върху бутона "Добави" ("Добави").

  12. След това се отваря стандартен прозорец за добавяне на обект. В него трябва да отидете в директорията, където се намира необходимата работна книга на Excel с разширение xls или xlsx. След като обектът бъде намерен, изберете името му и щракнете върху бутона "Отворено".
  13. Както можете да видите, след това пътят до обекта се показва в раздела "Вход". Натиснете бутона "Следващ" ("Следващ").
  14. След това автоматично се преместваме във втория раздел "Изход" ("заключение"). Тук трябва да посочите в коя директория ще бъде изведен готовият обект с разширение DBF. За да изберете папката за запазване на готовия DBF файл, щракнете върху бутона „Преглед...“ ("Изглед"). Отваря се малък списък от два елемента „Избор на файл“ („Избор на файл“) И „Избор на папка“ („Избор на папка“). Всъщност тези точки означават само избор на различни типове прозорци за навигация, за да се посочи папката за запис. Ние правим избор.
  15. В първия случай това ще бъде обикновен прозорец „Запиши като...“. Той ще покаже както папки, така и съществуващи dBase обекти. Отиваме в директорията, където искаме да запазим. Следващ в полето "Име на файл"Посочваме името, под което искаме обектът да бъде изписан след конвертирането. След това кликнете върху бутона "Запазване".

    Ако изберете опцията „Избор на папка“, тогава ще се отвори опростен прозорец за избор на директория. Ще покаже само папки. Изберете папката за запазване и щракнете върху бутона "ОК".

  16. Както можете да видите, след всяко от тези действия, пътят до папката за запазване на обекта ще се покаже в раздела "Изход". За да преминете към следващия раздел, щракнете върху бутона "Следващ" ("Следващ").
  17. IN последния раздел "Опции" ("Опции") има много настройки, но най-много ни интересуват „Тип полета за бележка“ („Тип поле за бележка“). Кликнете върху полето, в което е настройката по подразбиране "автоматично" ("автоматично"). Отваря се списък с типове dBase за запазване на обекта. Този параметър е много важен, тъй като не всички програми, които работят с dBase, могат да обработват всички типове обекти с това разширение. Ето защо трябва да знаете предварително кой тип да изберете. Има избор от шест различни вида:
    • dBASE III;
    • FoxPro;
    • dBASE IV;
    • Visual FoxPro;
    • >SMT;
    • dBASE ниво 7.

    Ние правим избор на вида, който е необходим за използване в конкретна програма.

  18. След като направите избора, можете да преминете към същинската процедура по преобразуване. За да направите това, щракнете върху бутона "Старт" ("Старт").
  19. Започва процедурата по преобразуване. Ако една работна книга на Excel има няколко листа с данни, тогава за всеки от тях ще бъде създаден отделен DBF файл. Завършването на процеса на преобразуване ще бъде обозначено със зелен индикатор за напредък. След като стигне до края на полето, щракнете върху бутона "Край" ("Край").

Готовият документ ще бъде разположен в директорията, посочена в раздела "Изход".

Единственият съществен недостатък на метода с помощта на пакета помощни програми WhiteTown Converters Pack е, че можете да извършите само 30 процедури за конвертиране безплатно и след това ще трябва да закупите лиценз.

Метод 2: Добавка XlsToDBF

Можете да конвертирате работна книга на Excel в dBase директно през интерфейса на приложението, като инсталирате добавки на трети страни. Един от най-добрите и удобни от тях е добавката XlsToDBF. Нека разгледаме алгоритъма за неговото прилагане.

  1. След като изтеглите архива XlsToDBF.7z с добавката, разопаковайте обект, наречен XlsToDBF.xla от него. Тъй като архивът има разширение 7z, разопаковането може да се извърши и от двете стандартна програмаза това разширение 7-Zip или с помощта на друг архиватор, който поддържа работа с него.
  2. След това стартирайте програмата Excel и отидете в раздела "файл". След това преминаваме към секцията "Опции"през менюто от лявата страна на прозореца.
  3. В прозореца с параметри, който се отваря, щракнете върху елемента „Добавки“. Преместете се в дясната страна на прозореца. В самото дъно има поле "Контрол". Преместваме превключвателя в него на позиция „Добавки на Excel“и щракнете върху бутона "Върви...".
  4. Отваря се малък прозорец за управление на добавките. Кликнете върху бутона там „Преглед…“.
  5. Отваря се прозорецът за отваряне на обекта. Трябва да отидем в директорията, където се намира разопакованият XlsToDBF архив. Отидете в папката със същото име и изберете обекта с името "XlsToDBF.xla". След това кликнете върху бутона "ОК".
  6. След това се връщаме в прозореца за управление на добавките. Както можете да видите, името се появи в списъка "XLS -> DBF". Това е нашата надстройка. До него трябва да има отметка. Ако няма отметка, проверете я и след това щракнете върху бутона "ОК".
  7. И така, добавката е инсталирана. Сега отваряме документа на Excel, данните от който трябва да бъдат преобразувани в dBase, или просто го въвеждаме на листа, ако документът все още не е създаден.
  8. Сега ще трябва да направим известна манипулация на данните, за да ги подготвим за преобразуване. Първо, добавяме два реда над заглавката на таблицата. Те трябва да са първите на листа и да имат имена на вертикалната координатна лента "1"И "2".

    В горната лява клетка въвеждаме името, което искаме да присвоим на създадения DBF файл. Състои се от две части: самото име и разширението. Разрешена е само латиница. Пример за такова име е "UCHASTOK.DBF".

  9. В първата клетка отдясно на името трябва да посочите кодирането. Има две опции за кодиране с помощта на тази добавка: CP866И CP1251. Ако клетката B2е празен или има зададена стойност, различна от "CP866", тогава ще бъде приложено кодирането по подразбиране CP1251. Задаваме кодирането, което считаме за необходимо, или оставяме полето празно.
  10. След това преминаваме към следващ ред. Факт е, че в структурата на dBase всяка колона, наречена поле, има свой собствен тип данни. Има такива обозначения:
    • Н(Numeric) – числено;
    • Л(Logical) – логичен;
    • г(Дата) – дата;
    • В(знак) – низ.

    Освен това в низа ( CNN) и числов тип ( 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 файл в целевата папка. Сред предимствата този методМоже да се отбележи, че за разлика от предишната опция, тя е абсолютно безплатна и почти всички манипулации се извършват директно през интерфейса на Excel.

Метод 3: Програма Microsoft Access

Въпреки че новите версии на Excel нямат вграден начин за запазване на данни във формат DBF, все още има опция за използване на приложението Microsoft Accessнай-близо до това да се нарече стандартен. Факт е, че тази програма е пусната от същия производител като Excel и също е включена в Microsoft пакетофис. Освен това това е най-безопасният вариант, тъй като няма да е необходимо да се свързвате софтуерпроизводители на трети страни. Microsoft Access е специално проектиран за работа с бази данни.

  1. След като всички необходими данни са въведени в Excel листа, за да го конвертирате във формат DBF, първо трябва да го запишете в един от Excel формати. За да направите това, щракнете върху иконата на флопи диска в горния ляв ъгъл на прозореца на програмата.
  2. Отваря се прозорецът за запазване. Отиваме в директорията, в която искаме да бъде записан файлът. Именно от тази папка след това ще трябва да я отворите в Microsoft Access. Форматът на книгата може да бъде оставен като xlsx по подразбиране или можете да го промените на xls. В този случай това не е критично, тъй като така или иначе запазваме файла само за да го конвертираме в DBF. След като всички настройки са завършени, щракнете върху бутона "Запазване"и затворете прозореца на Excel.
  3. Стартирайте програмата Microsoft Access. Отидете в раздела "файл", ако се отвори в друг раздел. Кликнете върху елемента от менюто "Отворено", разположен от лявата страна на прозореца.
  4. Отваря се прозорецът за отваряне на файл. Отиваме в директорията, където сме записали файла в един от форматите на Excel. За да се появи в прозореца, преместете превключвателя за файлов формат на позиция « Работна книга на Excel(*.xlsx)"или « Microsoft Excel(*.xls)", в зависимост от това в коя от тях е записана книгата. След като се покаже името на файла, от който се нуждаем, изберете го и щракнете върху бутона "Отворено".
  5. Отваря се прозорец „Връзка с електронна таблица» . Тя ви позволява да премествате данни от файл на Excel в Microsoft Access възможно най-правилно. Трябва да изберем Excel листа, от който ще импортираме данни. Факт е, че дори ако файлът на Excel съдържа информация на няколко листа, можете само да го импортирате в Access отделно и съответно след това да го конвертирате в отделни DBF файлове.

    Също така е възможно да импортирате информация от отделни диапазони в листове. Но в нашия случай това не е необходимо. Поставете превключвателя на позиция "Чаршафи", и след това изберете листа, от който ще вземем данните. Коректността на показваната информация може да се види в долната част на прозореца. Ако всичко е задоволително, натиснете бутона. "Следващ".

  6. В следващия прозорец, ако вашата таблица съдържа заглавки, трябва да поставите отметка в квадратчето до „Първият ред съдържа заглавките на колоните“. След това щракнете върху бутона "Следващ".
  7. В новия прозорец за връзка към електронна таблица можете по избор да промените името на свързания елемент. След това щракнете върху бутона "Готово".
  8. След това ще се отвори диалогов прозорец, показващ, че свързването на таблицата към файла на Excel е завършено. Кликнете върху бутона "ОК".
  9. В лявата част на интерфейса на програмата ще се появи името на таблицата, която сме й присвоили в последния прозорец. Кликнете два пъти върху него с левия бутон на мишката.
  10. След това таблицата ще се покаже в прозореца. Преминаване към раздела "Външни данни".
  11. На лентата в кутията с инструменти "Експортиране"щракнете върху надписа "Допълнително". В списъка, който се отваря, изберете елемента "dBase файл".
  12. Отваря се прозорецът за експортиране в DBF формат. В полето "Име на файл"можете да посочите мястото за съхранение на файла и неговото име, ако тези по подразбиране не са подходящи за вас по някаква причина.

    В полето "Файлов формат"изберете един от три типа DBF формат:

    • dBASE III(по подразбиране);
    • dBASE IV;
    • dBASE 5.

    Трябва да се има предвид, че колкото по-модерен е форматът (колкото по-висок е серийният номер), толкова повече възможности има за обработка на данни в него. Това означава, че има по-голяма вероятност всички данни от таблицата да бъдат записани във файла. Но в същото време е по-малко вероятно програмата, в която ще импортирате DBF файл в бъдеще, да е съвместима с този конкретен тип.

    След като всички настройки са зададени, щракнете върху бутона "ОК".

  13. Ако след това се появи съобщение за грешка, опитайте да експортирате данните, като използвате различен тип DBF формат. Ако всичко е минало добре, ще се появи прозорец, който ви информира, че експортирането е успешно. Кликнете върху бутона "Затвори".

Създаденият файл във формат dBase ще бъде разположен в директорията, посочена в прозореца за експортиране. След това можете да извършвате всякакви манипулации с него, включително да го импортирате в други програми.

Както виждаме, въпреки факта, че в модерни версии Excel няма възможност да записва файлове във формат DBF с вградени инструменти, но тази процедура може да се осъществи с помощта на други програми и добавки. Трябва да се отбележи, че най-функционалният метод за конвертиране е използването на WhiteTown Converters Pack. Но, за съжаление, броят на безплатните реализации в него е ограничен. Добавката XlsToDBF ви позволява да извършите преобразуването напълно безплатно, но процедурата е много по-сложна. Освен това функционалността на тази опция е много ограничена.

„Златната среда“ е използваният метод Програми за достъп. Подобно на Excel, той е разработка на Microsoft и следователно приложение на трета странавече не можеш да му се обадиш. В допълнение, тази опция ви позволява да конвертирате Excel файлв няколко вида dBase формат. Въпреки че в този показател Access все още е по-нисък от програмата WhiteTown.

Безплатен универсален 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 бутона за навигация, които ви позволяват да навигирате в базата данни (стрелки), да добавяте/изтривате записи, както и да потвърждавате или отменяте промените. Функциите, от които се нуждаем, започват с деветия бутон - „Търсене“:

Когато бутонът е активиран, пред нас се появява малък прозорец с форма за търсене. Трябва да посочим текста, който да се търси и да изберем от падащия списък полето, в което да търсим. Сега щракнете върху бутона „Намери следващ“ и програмата автоматично ще избере реда след текущата селекция, който съдържа текста, който търсите. Повторното натискане на бутона ще маркира реда под текущия, който съдържа същите необходими данни и т.н.

Понякога в базите данни се среща нестандартно форматиране на клетки: допълнителни пространства, раздели и други символи, които не се показват визуално, но влияят на резултата от търсенето. Ако срещнете такъв случай, за да работи функцията нормално, ще трябва само да премахнете отметката от квадратчето „Въз основа на формат“ в долната централна част на прозореца за търсене и търсените низове ще започнат да се показват.

Функцията за търсене е удобна, когато трябва бързо да намерим единични срещания на конкретни данни. Но има моменти, когато би било по-удобно да се показват няколко реда наведнъж, които съдържат само определена информация. В този случай ще ни помогне втората функция (чийто бутон се намира непосредствено след бутона за търсене) - „Филтър“:

За да активираме филтрирането, първо трябва правилно да съставим заявката и да я въведем в специално определеното поле (непосредствено зад бутона в централната част на лентата с инструменти). Принципът на подаване на заявка е прост, но не съвсем очевиден. Първо трябва да въведем името на полето, по което искаме да филтрираме таблицата на базата данни, и след това да зададем стойността на филтъра конкретен текст, по който трябва да намерим всички редове.

Поставяме стойността в единични кавички, след което натискаме самия бутон „Филтър“ (става натиснат) и получаваме таблица, съдържаща данни само със стойностите, дефинирани за нас в посочените полета (в примера, филтрирахме всички редове със стойността „САЩ“ в полето „Държава“ (регистърът на името няма значение)). Можете да върнете таблицата в оригиналния й вид, просто като натиснете отново бутона „Филтър“ (отново се освобождава).

Полето за филтриране може да съдържа най-простите условия „и“ (за прецизиране на заявката с няколко полета) и „или“ (за алтернативен избор на данни от различни полета). За съжаление Sdbf не поддържа заявки за изключване (като „not“), но можем да заобиколим това ограничение по друг начин, който ще бъде обсъден по-долу.

Между другото, за да не въвеждате ръчно заявка за филтриране, можете да използвате следния трик: изберете произволен запис в полето, по който ще филтрирате, и натиснете клавишната комбинация „Alt+F“ (не F4 :))). Заявката ще бъде генерирана автоматично и стойността ще съдържа знака „*“, който е маска за търсене и отговаря на произволен брой символи.

Уви, това е единственият тип маски, които могат да се използват в Sdbf и, което е още по-тъжно, една заявка може да съдържа само една маска :(. Следователно, ако трябва да филтрирате едно и също поле по няколко параметъра, ще трябва да използвайте оператора “и” (бързо генериране на заявка чрез натискане на “CTRL+ALT+F”) или “или” (“SHIFT+ALT+F”).

Изпълнение на SQL заявки към таблици на база данни

Търсенето и филтрирането несъмнено са добри, но не винаги удобни. Когато броят на записите е голям, лесно можем да изгубим от поглед данните, от които се нуждаем, когато анализираме таблици. За този случай обаче Sdbf има отлична функция - поддръжка на SQL заявки!

С помощта на такива заявки в Sdbf можем:

  1. Динамично форматирайте нашата таблица, създавайки селекция само за определени задължителни полета(Изявления SELECT и SELECT TOP);
  2. Копиране на данни от една база данни в друга (INSERT FROM и INSERT INTO);
  3. Промяна и изтриване на съдържанието на определени редове (съответно UPDATE и DELETE);
  4. Групиране на паралелни заявки (UNION);
  5. Форма осеви таблици(ОБРАТНА ОСНОВНА ОСНОВНА ОСНОВНА ОСНОВНА ОСНОВНА ОСНОВНА ОСНОВНА ОСНОВНА ИНФОРМАЦИЯ).

За да започнем да работим със заявки, трябва да щракнете върху бутона „SQL Query“ в десния край на лентата с инструменти. Резултатът от подобно действие обаче ще бъде донякъде обезсърчаващ: съдържанието на току-що редактираната база данни ще изчезне и в горната част на работния прозорец ще се появи друг празен прозорец с две полета (в горната част е полето за извеждане на данни, а в долната част е полето за въвеждане).

Не се плашете :). Просто трябва веднага да въведете желаната SQL заявка в долното поле, като посочите името на желаната база данни. Ако не си спомняте това име, можете да активирате странична лента Sdbf (като щракнете върху сивата вертикална лента вдясно), която показва под формата на списък всички бази данни, които сте отваряли преди:

Също така, за да ускорите работата си, препоръчително е да запомните горещите клавиши, които можете да видите, като извикате помощ чрез натискане на клавиша F1. Има само три от тях, но те могат значително да ускорят процеса на създаване на правилните заявки.

И така, комбинацията „CTRL+Space“ ще покаже изскачащ прозорец със списък с налични имена на бази данни (за да не гледате в страничната лента), „CTRL+F“ ще покаже списък с функции за текущия оператор, и “CTRL+Enter” ще започне процеса на изпълнение на заявката. Освен това, ако щракнете върху полето за въвеждане щракнете с десния бутонмишка (извикайте контекстното меню), тогава ще получим списък с оператори, поддържани от Sdbf.

Нека се върнем към предишната екранна снимка и да разгледаме проста молба, който е компилиран там. Базира се на оператора „SELECT“, което означава, че ни връща селекция. Параметърът за избор е „*“, което означава показване на всякакви данни, но можем да посочим там, разделени със запетаи, имената на всички полета в таблицата на базата данни.

Изборът, който разгледахме по-горе, е най-простият, но Sdbf ви позволява да извършвате по-сложни заявки. На следващата екранна снимка ще видим селекция, динамично генерирана таблица, състояща се от полета, които съдържат имената на клиентите, града, в който живеят и държавата. Освен това клиентите се филтрират по държава на пребиваване (САЩ) и резултатите се показват по азбучен ред:

Ако го разглобите това искане, тогава ще видим вече споменатия метод за вземане на проби по полета, посочени разделени със запетаи след Изявление SELECT. След това същата индикация на името на базата данни, но сега заявката не свършва дотук.

Следващата стъпка е да се изброят основните операторски функции, които ще трябва да бъдат изпълнени в резултат на обработката на заявката. Тук има две от тях.

Първият - "къде" е подобен на филтъра, който обсъдихме по-рано, и изпълнява подобно действие - позволява ви да изберете само онези записи, които отговарят на условието.

Втората функция - "подреждане по" отговаря за сортирането на резултатите, получени от едно от полетата (в този случай, от полето с името на клиента - "ИМЕ") по азбучен ред (параметър "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 редактор:

Тя ви позволява да редактирате данните на всяка клетка. За да направите това, просто изберете съдържанието, което трябва да бъде променено и контекстно менюизберете последния елемент - „Отвори в шестнадесетичен“. Това е всичко - можете да редактирате и запазите или веднага да отпечатате резултата!

Предимства и недостатъци на програмата

  • преносимост и малък размер;
  • поддръжка на почти всички видове DBF файлове;
  • възможност за създаване на бази данни от нулата;
  • поддръжка на SQL заявки;
  • вградена система за търсене, филтриране и редактиране на данни.
  • не ви позволява да посочите повече от една маска във филтъра;
  • Няма функция за отмяна.

Изводи

Програмата Sdbf, въпреки скромния си размер и системни изискванияви позволява да правите, ако не всичко, то много, много с DBF бази данни... И внедряването на поддръжка за SQL заявки като цяло ви позволява да приведете работата по редактирането на базата данни до ново ниво! С тяхна помощ можете лесно да компенсирате много недостатъци в работата чрез графичния интерфейс.

Най-голямото разочарование според мен беше липсата на най-тривиалната функция „Отмяна последно действие" в света "CTRL+Z": (Най-досадното нещо е, че поради недоглеждане или невежество потребителят може например случайно да приложи автокорекция в цялото поле и вече няма да е възможно да се върнат данните: (

За това можем да кажем, че програмата е повече от успешна във функционално отношение, но преди да работите с нея, винаги следвайте древното администраторско правило - СЪЗДАВАЙТЕ РЕЗЕРВНИ КЪПИ! И ще бъдете щастливи :)

P.S. Разрешено е свободното копиране и цитиране на тази статия, при условие че е посочена отворена активна връзка към източника и е запазено авторството на Руслан Тертишни.

DBF е широко използван формат за съхранение на данни, появил се през 80-те години на миналия век. Форматът е използван за първи път в семейството на СУБД dBase. Поради популярността и широкото използване на dBase, много подобни на dBase софтуерни продукти, наричани общо xBase. Въпреки значителната възраст на формата, той все още е доста широко използван. Тази статия обсъжда как да работите с DBF от 1C:Enterprise.

В 1C:Enterprise се използва специален софтуерен обект xBase за работа с файлове във формат DBF (версия dBase III). Работата с този обект обикновено не създава затруднения.

внимание!

Когато работите с DBF файлове, не забравяйте, че името на файла трябва да отговаря на ограничение 8.3.

внимание!

Обектът xBase е достъпен както от страната на клиента, така и от страната на сървъра. Трябва да мислите за взаимодействието клиент-сървър, когато решавате всеки конкретен проблем.

Четене на DBF файл

Четенето на данни от DBF файл се извършва в няколко последователни стъпки:

  1. Създаване на XBase обект;
  2. Отваряне на файл;
  3. Последователно преминаване през всички редове на файла и четене на стойностите на полетата;
  4. Затваряне на файла.
DBP = Нов XBase; DBP. OpenFile("D:\MyFile.dbf"); // Етап 2. Отваряне на файла Докато цикълът на истината// Етап 3. Преминаване през редовете на файла Доклад(DBF.NAME); Ако НЕ е DBP. Next() Тогава// Позиция на следващия запис Прекъсване;

endIf; EndCycle;

DBP. CloseFile(); // Етап 4. Затваряне на файлаМожете да използвате леко модифициран алгоритъм за итерация по редовете на файл:

Все още НЕ DBF. Отчет за цикъл AtEnd().

(DBF.NAME);

  1. Създаване на XBase обект;
  2. DBP. Следваща
  3. (); EndCycle;
  4. Качване в DBF файл
  5. Етапи на качване в DBF файл:
  6. Затваряне на файла.

Посочване на кодирането (ако не е посочено, ще се използва ANSI кодиране);

DBP Описание на полетата; Създайте файл;Примка с добавяне и запълване на линии; Нека да разгледаме този процес с пример:= Нов XBase; // Етап 1. Създаване на XBase обект DBP. Кодиране = EncodingXBase. OEM; // Етап 2. Задаване на кодирането DBP. Полета. Add("CODE" , "S" , 9 ); // Етап 3. Описание на името и типа на полето DBP. Полета. Add("NAME" , "S" , 40 ); DBP. CreateFile("D:\MyFile.dbf");// Етап 4. Създаване на файл(); Избор = Директории. Номенклатура. Изберете(); Чао Избор. Next() Loop DBP. Добавяне();

// Добавяне на ред

  • DBP. КОД = Проба. Код;// Попълнете стойността на полето
  • DBP. ИМЕ = Избор. име; DBP. Напиши();// Напишете реда EndCycle;

DBP. Затваряне на файла

// Етап 6. Затваряне на файла (< Имя>, < Тип>, < Длина>, < Точность>)

При посочване на кодирането се използва типът XBase Encoding, който може да приеме две стойности:

  • ANSI
  • – Windows формат;
  • OEM
  • – DOS формат.
  • Добавянето на ново поле при описание на структура има синтаксиса

Дължината на полето е необходима за типовете полета "N", "F" и "S".

Работа с индекси

Индексният файл може да се използва заедно с DBF файла, който може да съдържа информация за един или повече индекси. Наличието на индекси прави възможна употребатърсене, а не само последователно търсене на всички редове на файла.

Когато създавате индексен файл, трябва да посочите:

  • Списък с индекси;
  • Път за запазване на индексния файл (на етап 4 от качването).

Пример за създаване на индекс файл:

DBP . Индекси. Add("INDCODE" , "CODE" ); DBP. Създаване на файл

("D:\MyFile.dbf" , "D:\index.cdx" );

// Етап 6. Затваряне на файла (< Имя>, < Выражение>, <Уникальность>, < Убывание>, < Фильтр >)

Синтаксисът за добавяне на нов индекс е:

  • За да използвате индекси при четене от DBF файл:
  • Посочете пътя до индексния файл (на етап 2 от изтеглянето);

Задайте текущия индекс.

DBP Пример за отваряне на DBF файл с помощта на индекс файл:;

внимание!

. OpenFile("D:\MyFile.dbf" , "D:\index.cdx" );

DBP. CurrentIndex = dbf. Индекси. INDCODE

При отваряне на DBF файл позиционирането се извършва на първия запис във файла. Първият запис във файла не съвпада с първия запис в индекса. Поради това, когато използвате индекси, трябва да се позиционирате на първия ред от индекса, преди да преминете последователно през редовете. Това може да стане с помощта на метода First(), например:

  • DBP. Първо (); (< Ключ>, < Режим >) ;
  • Една от двете функции може да се използва за търсене:< Режим >) .

Намерете

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

FindByKey(

DBP В резултат на двете функции се връща стойност от тип Boolean (независимо дали е намерен запис с посочените условия или не). Ако търсенето е успешно, текущият показалец се задава на намерения ред. Една от следните стойности може да се използва като режим на търсене: Нека да разгледаме търсенето в DBF файл, използвайки примери:= Нов XBase; DBP. OpenFile("D:\MyFile.dbf" , "D:\index.cdx" ); // При отваряне на DBF файл се посочва допълнителен индексен файл DBP. CurrentIndex = dbf. Индекси. INDCODE; // Задаване на текущия индекс// търсене чрез метода Find: Ако DBP. Find("000000003" , "=" ) Тогава Report( + DBP. NAME);Друг отчет ("Не е намерен");();

endIf;

// търсене чрез метода FindByKey:

DBP DBP. Ключ. КОД = "000000002" ;();

Но когато използвате този метод, записът не се изтрива окончателно от файла, той се маркира като изтрит. При итериране на редове, записите, маркирани за изтриване, се пропускат. Ако искате да обходите целия файл, включително записи, маркирани за изтриване, трябва да зададете свойството на True. Показване Изтрито xBase обект. Можете да разберете дали даден запис е маркиран за изтриване или не, като използвате функцията RecordDeleted(). За да премахнете знака за изтриване, използвайте метода Restore().

DBP . DisplayDeleted = Вярно;Можете да използвате леко модифициран алгоритъм за итерация по редовете на файл:

Все още НЕ DBF. AtEnd() Loop If DBP. RecordDeleted() След това DBP. Възстановяване(); endIf;

DBP DBP. Следваща();

За да премахнете директно маркираните записи, използвайте метода Shrink():

DBP . Компресирайте();

Ако трябва да изтриете директно всички записи във файл, можете да използвате метода ClearFile():

. ClearFile Зареждане от DBF чрез ADO ADO технологията може да се използва за работа с DBF файлове. Включени ADO драйвери

операционна система

Няма нужда да инсталирате Windows или да ги инсталирате допълнително. Нека да разгледаме пример за код за четене от DBF файл с помощта на технологията ADO: ADO= Нов COMObject("ADODB.Connection"); // Създаване на COM обект ADO. отворено( "Доставчик=Microsoft.Jet.OLEDB.4.0; |Източник на данни=""D:\""; |Разширени свойства=DBASE III"); DB = ADO. Execute("Изберете * от MyFile");// искане за получаване на всички записи от файла MyFile.DBF Чао BD. EOF= 0 Цикъл//Преминаване през записите на DBF файлове Отчет(БД. Полета("Име" ). стойност);// Пример за достъп до стойност на поле

DB. Преместване на следващия();

  • //Преминете към следващия запис
  • EndCycle;
  • ADO. Затвори();

внимание!

Показаният пример използва низа за връзка "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="D:\";Extended Properties=DBASE III". В този ред:

Доставчик е използвания драйвер;
Източник на данни – пътят, където се намира DBF файлът. Пътят е посочен точно до директорията. Името на файла се използва като име на таблица в заявките;

как да създам dbf файл от Excel с помощта на ADO в ADO Обърках се......това е специфичната информация.... 1. свързване с dbf (и с какво друго можете да се свържете с помощта на ado и как); 2. създаване на dbf файл (други опции); 3.запис; 4.спестяване; 5.затваряне. благодаря за всякаква информация

какво да търсите в тази тема или напълно да игнорирате.....по темата за ADO може би е по-добре да създадете тема.....широко използване на ADO

пестеливо как се оказва

Код на задачата: “Създаване на dbf файл от Excel”

Текстови

Списък на програмата

"::: Етап 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="създайте таблица Testtable (N1 Float, N2 Float)" "::: Етап 5 - изпълнете го RS.Open sql,Conn,3,3 " ::: Етап 6 - Добавяне на 100 записа към таблицата За i=1 до 100 SQL="вмъкване в стойности на тестовата таблица (" & cstr(i) & "," & Cstr(2*i-1) & ") " RS.Open sql,Conn,3,3 Next ":: : Етап 7 - сума... SQL="Изберете сума(N1),сума(N2) от 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 "Таблицата е изпусната!"

Споделете