Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 访问VBA以查找和移动循环值_Ms Access_Duplicates_Vba - Fatal编程技术网

Ms access 访问VBA以查找和移动循环值

Ms access 访问VBA以查找和移动循环值,ms-access,duplicates,vba,Ms Access,Duplicates,Vba,早上好 我是访问VBA的新手,我一直在尝试找到一个问题的解决方案: 我创建了一个表单,用户可以从该表单将excel文件上载到数据库。出现文件打开提示,用户选择文件,创建临时表,并将数据拉到此表。从那里,一组宏填充所需字段,并将整个集合推送到perm表,然后删除temp表。现在我想更进一步,尝试计算一个值被上传到表中的次数 假设该值已经在表中出现两次,那么如果用户第三次尝试上载相同的值,它将被上载到另一个表中。请记住,用户将上载的文件可能包含第一次、第二次、第三次等上载的值 你对我的问题有什么建议

早上好

我是访问VBA的新手,我一直在尝试找到一个问题的解决方案:

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

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

你对我的问题有什么建议或解决办法吗?有可能吗?如果是,我如何访问以区分第一次、第二次、第三次等上载的记录,并遵循适当的路径

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


提前感谢您的回复。

我不确定是否理解。您实际上是在试图防止向生产表插入重复数据,如果在另一个表的记录中遇到重复数据?

您使用什么方法导入?如果您使用的是DoCmd.TransferSpreadsheet,那么这可能是一个牵强的解决方案。上传后,您可以在Temp表上使用一个DCount,将其与Perm表的DCount进行比较,然后相应地移动它。我使用DoCmd.TransferSpreadsheet,但是如果这有问题,那么我并不反对其他解决方案。您能否提供一些代码来计算和比较这两个表中的值?DoCmd.TransferSpreadsheet没有问题。这不是为你省钱。好的,你有什么办法解决这个问题吗?正如我所说,我对访问VBA是新手,因此我依赖您的专业知识。谢谢这件事没有乐趣。。。对此有什么想法吗?我想做的是检查即将添加的记录是否已经添加到数据库中,但不会超过两次。如果用户想第三次添加它,那么所有的魔法都应该在这里发生。我希望这是有意义的…您可能能够使用具有版本列的多字段唯一索引。第一行的版本列值为0,第二行的版本列值为1,任何后续值默认为0。这样,表将剔除第三条和随后的重复记录。然后,您可以将被踢出的记录添加到另一个表中。只是一个想法…我不确定怎么做。你能不能给我举个例子来说明如何做到这一点?可能值得检查…总体来说,这很简单。在表设计器中,转到索引部分并创建索引。从那里可以添加字段。请确保为“唯一”选择“是”。默认值为“否”。此索引中的一个字段可以是“版本”列。完成此操作后,该表将删除任何插入的重复数据。如果要第二次或第三次添加数据等,只需增加版本列。