【发布时间】:2017-08-24 21:25:33
【问题描述】:
我有一个宏,它使用 DoCmd.TransferSpreadsheet 方法将每月数据保存到 Access 2013 中的 Access 数据库中。我想说明的一种可能情况是,如果数据被保存到数据库中,然后有人意识到数据是错误的,他们想在修复数据后重新归档相关月份的数据。换句话说,我有没有办法更改我的代码以覆盖与将要归档的数据同月的数据?
存档数据中的一个字段是日期,它也有一个字段名称。另一件重要的事情是,需要覆盖的数据都在同一个月,但不一定是同一天。下面是“my_data”数组在 excel 中的简化示例:
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
【问题讨论】:
-
您可能只需要编写一个合适的删除查询来删除该月的所有数据。然后你可以再次导入它。要创建一个合适的示例,我需要更多数据(例如您如何知道正在导入哪个月份)。有什么具体原因这不起作用/很难吗? (注:即将下线,可能明天才会回复)
-
感谢您的帮助!我正在调查删除查询。看起来这可能会起作用,但我需要一种方法来询问用户是否要在删除数据之前覆盖数据。是否有一种查询可以从 Access 数据库中的日期字段中获取月份和年份?了解正在导入的月份的最佳方法是让程序查看正在导入的数据。
标签: excel ms-access excel-2013 vba