Схема у меня такая, получаю входящий файл dbf открываю в Excel, там же делаю правку файла и сохраняю обратно в формат (dbf) нужно всего два макроса, один у меня уже есть (на открытие файла dbf в excel)
Помогите пожалуйста в написании макроса, очень нужно сохранять Excel в формат dbf (dBASE III), макрорекордером не получается, т.к. нет такого формата (установлен Office 2010)
Спасибо!
Схема у меня такая, получаю входящий файл dbf открываю в Excel, там же делаю правку файла и сохраняю обратно в формат (dbf) нужно всего два макроса, один у меня уже есть (на открытие файла dbf в excel)
Помогите пожалуйста в написании макроса, очень нужно сохранять Excel в формат dbf (dBASE III), макрорекордером не получается, т.к. нет такого формата (установлен Office 2010)
Dim oConn As Object Set oConn = CreateObject("ADODB.Connection") sCon = "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=Путь к папке с файлом dbf;" oConn.Open (sCon) Dim strSql As String for n=1 to Количество_строк strSql = "UPDATE ..... SET....... WHERE...... " oConn.Execute (strSql) next oConn.Close Set oConn=nothing
[/vba]
На пальцах конструкция выглядит так [vba]
Код
Dim oConn As Object Set oConn = CreateObject("ADODB.Connection") sCon = "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=Путь к папке с файлом dbf;" oConn.Open (sCon) Dim strSql As String for n=1 to Количество_строк strSql = "UPDATE ..... SET....... WHERE...... " oConn.Execute (strSql) next oConn.Close Set oConn=nothing
doober, спасибо)) А как сделать саб, чтобы файл DBF сохранялся в туже папку из которой был импортирован файл изначально, с переменным именем (ввод имени вручную)
методом ковыряния попытка не принесла желаемого результата, мой макрос не работает:
[vba]
Код
Sub SaveAsDBF() Dim PathFile As String Dim NameFile As String PathFile$ = ThisWorkbook.Path & "\Папка с DBF\": MkDir PathFile$ NameFile = InputBox("Введите имя файла", "Ввод", ActiveWorkbook.Name) NameFile = NameFile & ".dbf" ActiveWorkbook.SaveAs Filename:= _ PathFile$ & NameFile, FileFormat:=xlDBF3, CreateBackup:=False End Sub
[/vba]
Можно ли воплотить эту идею с вашим примером? если можно то как? Подскажите пожалуйста.
Спасибо большое :)!!!
doober, спасибо)) А как сделать саб, чтобы файл DBF сохранялся в туже папку из которой был импортирован файл изначально, с переменным именем (ввод имени вручную)
методом ковыряния попытка не принесла желаемого результата, мой макрос не работает:
[vba]
Код
Sub SaveAsDBF() Dim PathFile As String Dim NameFile As String PathFile$ = ThisWorkbook.Path & "\Папка с DBF\": MkDir PathFile$ NameFile = InputBox("Введите имя файла", "Ввод", ActiveWorkbook.Name) NameFile = NameFile & ".dbf" ActiveWorkbook.SaveAs Filename:= _ PathFile$ & NameFile, FileFormat:=xlDBF3, CreateBackup:=False End Sub
[/vba]
Можно ли воплотить эту идею с вашим примером? если можно то как? Подскажите пожалуйста.
Валерьянка, наверное, вас расстрою, но с версии 2007 Excel больше не сохраняет в формате DBF. Открывать - открывает (и константы xlDBF... предназначены как раз для метода ActiveWorkbook.Open), а вот сохранить (методом ActiveWorkbook.SaveAs) - не сохраняет Именно поэтому форматов DBF нету и в списке выбора типа файла при ручном SaveAs через пользовательский интерфейс.
Валерьянка, наверное, вас расстрою, но с версии 2007 Excel больше не сохраняет в формате DBF. Открывать - открывает (и константы xlDBF... предназначены как раз для метода ActiveWorkbook.Open), а вот сохранить (методом ActiveWorkbook.SaveAs) - не сохраняет Именно поэтому форматов DBF нету и в списке выбора типа файла при ручном SaveAs через пользовательский интерфейс.Gustav
oConn.Execute strSql oConn.Close Set oConn = Nothing End Sub
[/vba] P.S. Хотя, если файл уже существует (сорри, не очень внимательно читал), то вроде и не надо его создавать. Ну ладно, пусть как пример будет здесь
oConn.Execute strSql oConn.Close Set oConn = Nothing End Sub
[/vba] P.S. Хотя, если файл уже существует (сорри, не очень внимательно читал), то вроде и не надо его создавать. Ну ладно, пусть как пример будет здесь Gustav
Установите драйвер такой же разрядности как и офис. Т.е. если у вас система х32, а офис х64, то и драйвер должен быть х64. К меня подобная проблема была с mysql драйвером, пока допер в чем суть.
Установите драйвер такой же разрядности как и офис. Т.е. если у вас система х32, а офис х64, то и драйвер должен быть х64. К меня подобная проблема была с mysql драйвером, пока допер в чем суть.SkyPro
skypro1111@gmail.com
Сообщение отредактировал SkyPro - Четверг, 23.01.2014, 12:25
Ого... А нафик вам такой DBF? Он же у вас изначально был, видимо, в формате Excel, зачем вам вообще в DBF его преобразовывать? Никакому разработчику ПО, работающиму с DBF - не придёт в голову такой формат данных в таблице
Ого... А нафик вам такой DBF? Он же у вас изначально был, видимо, в формате Excel, зачем вам вообще в DBF его преобразовывать? Никакому разработчику ПО, работающиму с DBF - не придёт в голову такой формат данных в таблице AndreTM
Оказалось, что Аксесс вполне спокойно открывает DBF и сохраняет изменения (правда, при сохранении создает копию базы в своем формате). Может, Ексель и не нужен?
Оказалось, что Аксесс вполне спокойно открывает DBF и сохраняет изменения (правда, при сохранении создает копию базы в своем формате). Может, Ексель и не нужен?nilem
Читаем первоисточник. Работаю с одним из филиалов этой конторы.в шоу участвуют много dbf и обновляются с других. Сами файлы меня сильно удивили. Потом уже привык к ним. Волшебное слово в примечаниях-это зачислено.
Читаем первоисточник. Работаю с одним из филиалов этой конторы.в шоу участвуют много dbf и обновляются с других. Сами файлы меня сильно удивили. Потом уже привык к ним. Волшебное слово в примечаниях-это зачислено.doober