我有一个用于销售报告的访问数据库。我正在自动化每周从销售点导入销售交易的流程。我想开发一种方法来执行简单的检查,以验证正在导入的文件与前几周文件不同。
该文件将始终具有相同的文件名,并且位于我编写的宏运行时访问将查找的同一文件夹中。
我建议的解决方案是创建一个临时表,用于将销售交易加载到该临时表中并进行备份以进行比较。每周我都会备份临时表,该临时表将包含上周的事务,然后将新文件加载到临时表中。要验证加载的新文件与前一周不同,我会将备份表和登台表的“total sell”列中的值相加并比较值。
我需要帮助来创建代码/查询来执行此操作以及如何将其插入到我构建的宏中。或者帮助提出任何其他解决方案。
我在网上搜索了很多但是没有找到解决方案。
这是示例数据的链接 https://drive.google.com/file/d/0BwD_Ubcf_4voSnN2elFvTWI2QTA/view?usp=sharing
答案 0 :(得分:0)
每条记录都应该是DateTime“标记”(你肯定会在你的记录结构中设计类似[Transaction_DateTime]字段的东西)。如果您导入的文件确实是“严格”每周一次,则只能检查一条记录以查看这是新文件还是旧文件。否则,请检查所有。
修改强> 您不需要时间部分,日期就足够了。假设你将数据导入记录集,你将需要这样的东西(暴力行为会很好,也很快:
rstX.MoveFirst
Do
If rstX("Trans Date") <= Date - 7 Then
MsgBox "Found a transaction less that 1 week old!"
Exit Do
End If
rstX.MoveNext
Loop Until rstX.EOF
If rstX.EOF Then
MsgBox "All transactions are at least 1 week old!"
End IF
根据需要进行修改。
答案 1 :(得分:0)
请阅读我对@Gene Skuratovsky解决方案的评论。我建议在那里创建另一个表(伪代码):
TABLE ImportedFiles
(
ImportID Integer PrimaryKey,
FilePath String,
ImportDate Date
)
在开始导入文件之前,您需要检查相应表中是否存在记录;)
您可以使用DLookup function检查记录是否存在。
Function FileHasBeenImported(ByVal sFullFileName As String) As Boolean
FileHasBeenImported = (DLookup("[FilePath]", "ImportedFiles", "[FilePath] =" & sFullFileName )<>"")
End If