【问题标题】:Access VBA to find & move recurring value访问 VBA 以查找和移动重复值
【发布时间】:2015-04-06 12:15:47
【问题描述】:

早安,

我是 Access VBA 的新手,我一直在努力寻找解决问题的方法:

我创建了一个表单,用户可以通过该表单将 excel 文件上传到数据库。出现文件打开提示,用户选择文件,创建临时表并将数据拉到该表中。从那里一组宏填充必填字段并将完整集推送到永久表,然后临时表被删除。现在我想更进一步,尝试计算一个值被上传到表中的次数......

假设该值已经在表中出现了两次,那么如果用户第三次尝试上传相同的值,它将被上传到不同的表中。请记住,用户将上传的文件可能包含将在第一次、第二次、第三次等时间上传的值。

您对我的问题有什么建议或解决方案吗?甚至可能吗?如果是,那么我如何使 Access 区分第一次、第二次、第三次等时间上传的记录并遵循适当的路径?

我已经在网上搜索了几天,但似乎没有人有这样的问题。

提前感谢您的回复。

【问题讨论】:

  • 你是用什么方法导入的?如果您使用的是DoCmd.TransferSpreadsheet,那么这可能是一个牵强的解决方案。您可以在上传后,在 Temp 表上使用 DCount,将其与 Perm 表的 DCount 进行比较,然后相应地移动它。
  • 我使用DoCmd.TransferSpreadsheet,但是如果这有问题,那么我不反对不同的解决方案。您能否提供一些代码来计算和比较这两个表中的值?
  • DoCmd.TransferSpreadsheet 没有有问题。在这种情况下,它只是不为您节省费用。
  • 好的,你有解决问题的办法吗?就像我说的,我是 Access VBA 的新手,因此我依赖于你的专业知识。谢谢!
  • 对这个不满意……对这件事有什么想法吗?

标签: ms-access duplicates vba


【解决方案1】:

我不确定我是否跟随。您实际上是在尝试防止将重复数据插入到生产表中,并且如果在记录中遇到重复数据到另一个表中?

【讨论】:

  • 我想要完成的是检查即将添加的记录是否已添加到数据库中,但不超过两次。如果用户想第三次添加它,那么这就是所有魔术应该发生的地方。我希望这是有道理的......
  • 您也许可以将多字段唯一索引与版本列一起使用。第一行的版本列值为 0,第二行为 1,任何后续值默认为 0。这样,表就会剔除第三个和后续的重复记录。然后,您可以取出被踢出的记录并将它们添加到另一个表中。只是一个想法......
  • 我不确定如何执行此操作。你会这么好心并分享一个如何做到这一点的例子吗?可能值得检查...
  • 总体来说很简单。在表设计器中,您转到索引部分并创建索引。从那里您可以添加字段。请务必为唯一选择“是”(默认为“否”)。此索引中的字段之一可以是“版本”列。完成后,该表将剔除所有插入的重复数据。如果您想第二次或第三次添加数据等,只需增加版本列。
猜你喜欢
  • 1970-01-01
  • 2013-08-01
  • 1970-01-01
  • 2019-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
相关资源
最近更新 更多