Экспорт DBF из таблицы в Excel (с учетом и обращением внимания на тип данных и длину полей)

Я работаю в макросе контейнера Excel Workbook на Table в Sheet1,

И нужно создать файл DBF из Table С VBA макро.

1-примечание, что после 2003 года Excel не поддерживает DBF формат, поэтому я не могу использовать ниже...

ActiveWorkbook.SaveAs _
    Filename:="C:\insurance.dbf", _
    FileFormat:=xlDBF4, _
    CreateBackup:=False

Итак, пожалуйста, напишите VBA макрос, который сохраняет DBF из Filtered диапазон (диапазон с несколькими Area) того, что Table в MS-Excel Worksheet,

2- Могу ли я определить свой собственный тип данных для каждого поля в созданном DBF вышеуказанным гипотетическим VBA макрос?

Я не хочу открывать или редактировать существующий *.dbf , Я просто собираюсь создать и сохранить DBF с индивидуальными Datatype а также length если возможно; из таблицы диапазонов с несколькими областями фильтрации в Worksheet с VBAfunction ,

Можем ли мы использовать:

Dim appAccess as Object
set appAccess = CreateObject("Acss.App")
...
appAccess.Run ...

Для этого?! (Как идея)

Благодарю.

Для более подробного описания:

Есть ли быстрый и тихий способ экспорта dbf файл из диапазона Excel? Если существует прямой способ создания и сохранения dbf файл из этого диапазона, это лучше.

1 ответ

Этот код не идеален. Просто обратитесь к нему.

Sub myQuery()
    Dim path As String, pathExcel As String
    Dim dbName As String
    'Dim App As Access.Application
    Dim App As Object

    'Set App = New Access.Application
    On Error Resume Next
    Set App = CreateObject("Access.Application")

    path = "C:\Users\Administrator\Documents\"
    pathExcel = ThisWorkbook.FullName

    dbName = "C:\Users\Administrator\Documents\Database1.accdb" '<~~ in access, you create accdb(Database1.accdb) before.

    App.OpenCurrentDatabase dbName

    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "Sheet1", pathExcel '<~~from sheet1 to access

    App.DoCmd.TransferDatabase acExport, "DBase IV", path, acTable, "Sheet1", "test.dbf" '<~~ access table to dbf
    DoCmd.DeleteObject acTable, "Sheet1"

    App.DoCmd.Close
    App.DoCmd.Quit
    App.Quit

End Sub
Другие вопросы по тегам