从Excel中的表中导出DBF(考虑并注意数据类型和字段长度)

时间:2017-08-30 19:56:40

标签: vba excel-vba dbf dbase excel

我正在Workbook的{​​{1}}上的宏容器Excel Table中工作。

并且必须使用Sheet1Table创建DBF文件。

1注意在2003年之后,Excel不支持VBA格式,因此我不能使用以下...

DBF

因此,请编写一个ActiveWorkbook.SaveAs _ Filename:="C:\insurance.dbf", _ FileFormat:=xlDBF4, _ CreateBackup:=False 宏,其中VBA范围内的DBF范围(多Filtered的范围)Area保存Table Excel Worksheet

2-我可以通过上面假设的DBF宏为我创建的VBA中的每个字段定义我的自定义数据类型吗?

我不想打开或修改现有的*.dbf。如果可能的话,我只是创建并保存DBF和自定义Datatypelength;来自Worksheet中具有VBA function的多区域过滤范围表。

我们可以使用:

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

为此?! (作为一个想法)

感谢。

更多说明:

是否有任何快速安静的方法可以从一系列Excel中导出dbf文件?如果现有的直接方式是从该范围创建和保存dbf文件,那就更好了。

1 个答案:

答案 0 :(得分:0)

此代码并不完美。请参考它。

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