使用transferspreadsheet

时间:2017-08-24 21:25:33

标签: excel-vba ms-access excel-2013 vba excel

我有一个宏,使用DoCmd.TransferSpreadsheet方法将每月数据保存到Access 2013中的Access数据库。我想要考虑的一种可能情况是,数据是否保存到数据库中,然后有人意识到数据错误,并且他们想要在修复数据后重新归档有关月份的数据。换句话说,有没有办法让我更改我的代码以覆盖与将要存档的数据相同月份的数据?

归档数据中的一个字段是日期,它也有一个字段名称。另一个重要的事情是需要覆盖的数据都将在同一个月,但不一定是同一天。这是" my_data"的简化示例。数组看起来像excel:

sample data

Sub excel_export()
    Dim xls_path As String
    xls_path = "C:\mywbk.xlsm"

    Dim db_path As String
    Dim db_obj As Access.Application
    db_path = "C:/mydb.accdb"
    Set db_obj = New Access.Application

    Call DoCmd.TransferSpreadsheet(acImport, acSpreadsheetTypeExcel12Xml, "TableName", _
        xls_path, True, "my_data")
    db_obj.CloseCurrentDatabase
    Set db_obj = Nothing
End Sub

1 个答案:

答案 0 :(得分:0)

请勿导入电子表格,链接将其作为表格。

然后,首先,创建一个简单的选择查询,过滤链接表并将字符串日期转换为实际日期。

现在,使用此查询作为Access表的组合更新和追加查询的源,如下所述:

Update and Append Records with One Query