MS Access导出和导入数据

时间:2018-02-22 20:44:39

标签: ms-access access-vba

我有两个后端数据库。 BE-Main和BE-User。

我想从BE-User中的一个表中导出数据(另存为磁盘中的文件),然后使用VBA将其导入BE-Main。由于BE-Main是主要的,BE-User是次要的,如果ID存在,我需要填写数据,如果ID不存在,我需要添加新的ID(行)。

导出部分

DoCmd.TransferDatabase acExport, "Microsoft Access", ExtDb, acTable, "tblHealth", "tblHealth1", False

如果我在导入时使用相同的代码,则访问正在创建一个新表,因为它存在。

知道如何更新/刷新表格中的数据吗?表有一个主键(heathID),我可以使用SQL。

1 个答案:

答案 0 :(得分:1)

更简单的路线可能是链接表并从那里运行您的查询。它们可能与下面的编码名称相同,允许您更改链接表的名称。

Public Sub ExportImportData()
    'Create the link table
    DoCmd.TransferDatabase _
            TransferType:=acLink, _
            DatabaseType:="Microsoft Access", _
            DatabaseName:="YourDatabaseLocationAndName.accdb", _
            ObjectType:=acTable, _
            Source:="TargetTableName", _
            Destination:="LinkTableName"
    'Updates data
    CurrentDb.Execute "UPDATE YourUpdateTableName " & _
                      "SET YourUpdateTableName.FieldName = LinkTableName.FieldName " & _
                      "WHERE(((YouUpdateTableName.ID) = LinkTableName.ID));"
                      'Add more fields if updating multiple fields
    'Appends new data
    CurrentDb.Execute "INSERT INTO YourUpdateTableName ( List out all fields ) " & _
                      "SELECT List Out all fields " & _
                      "FROM LinkTableName;"
    'Deletes link table
    DoCmd.DeleteObject acTable, "LinkTableName"
    End Sub

YourDatabaseLocationAndName = example:" C:\ Users \ username \ desktop \ MyDatabase.accdb"

targetTableName =您要从

链接的后端中的表的名称

LinkTableName =为新链接表提供的名称