Новий тренінг про VBA для Excel і проблеми з DBF-файлами
Доброго вечора, друзі мої!
Перш за все, я прошу вибачити мені за те, що я цілий тиждень (ви можете в це повірити?) не писав нічого нового. Однак, в мене є поважна на те причина – я завзято працював над новим тренінгом з VBA-програмування для Microsoft Excel 2007/2010, а потім проводив його у місті Ужгороді, яке мені, до речі, дуже сподобалось.
Незабаром ви зможете завантажити презентації тренінгу з slideshare.net, а поки що я хотів би розповісти вам про одне цікаве запитання, яке я отримав в ході тренінгу. Мова піде про те, як зберегти таблицю Microsoft Excel у вигляді DBF-файлу.
Тож, почнемо.
Раніше ми могли зберігати дані у форматі DBF засобами самого Excel, однак, починаючи з версії 2007, Microsoft видалила з програми цю можливість. Логіка виробника тут цілком зрозуміла. DBF – формат застарілий, і потрібен він лише тим людям, хто змушений працювати з успадкованими системами, які інших форматів просто не розуміють. Однак, а що ж робити, якщо ви є одним з цих “щасливчиків”, і вам справді треба це роботи?
Найпростіший спосіб, який я бачу – імпортувати дані з Excel до Access, і експортувати у формат DBF. Спочатку створюємо нову пусту БД. А імпорт в неї робиться просто – на вкладинці External Dataу групі Import & Link обираємо кнопку Excel. Ну а далі – не важливо, чи імпортуєте ви дані, чи просто зробите посилання на зовнішню таблицю (все це робиться за допомогою майстра, у стилі “Next, Next, Finish”) – робите правий клік на таблиці і обираєте Export > sBase File:
Інший шлях – тримати на машині одночасно Office 2007/2010 і Office 2003 (або OpenOffice), і відкривати ті файли, які слід зберегти у DBF у старій версії Excel (або OpenOffice Calc). В Excel 2003 ви зможете зберегти файл у потрібному вам форматі штатними засобами. Саме так дає раду цій проблемі одна з моїх студенток, якій доводиться регулярно відправляти дані до банку у вигляді DBF-файлу.
Третій спосіб – написати свою власну процедуру на VBA для експорту в DBF. Для цього ви можете використати метод SaveAs об’єкту ActiveWorkbook (див довідку з VBA у Microsoft Excel). Сам я це робити не пробував, однак, вважаю, все повинне працювати. До речі, ось тут vj;yf завантажити ActiveX Dll з класом, який можна використати для роботи з DBF e VBA.
Четвертий спосіб – завантажити безкоштовне доповнення до Excel під назвою SaveDBF. Демо-версія зберігає тільки 30 записів, однак, ви можете написати листа автору і попросити вислати вам повну версію програми.
І, нарнешті, п’ятий спосіб – використати XLS (Excel) to DBF Converter від White Town. Ця програма не є безкоштовною, однак коштує дуже недорого (близько $30), ви можете завантажити пробну версію, а потім, якщо сподобається, придюати ліцензію.
Ось такі я бачу способи розв’язати цю проблему. Можливл, хтось зможе додати ще щось?
Ви можете відслідковувати коментарі до цього запису за допомогою RSS 2.0. Ви можете лишити коментар, або використати трекбек з Вашого сайту.