Ms access 使用Dcount条件访问VBA循环

Ms access 使用Dcount条件访问VBA循环,ms-access,vba,Ms Access,Vba,有人能告诉我这个代码不起作用吗?它循环执行,但似乎忽略了rcount>0的条件在执行删除查询后更新rcount的值 rcount=DCount(“F1”、“T1”) 当rcount>0时执行此操作 'DoCmd.OpenQuery“q1” CurrentDb.执行“q1”,dbFailOnError rcount=DCount(“F1”、“T1”) 环 注意:通过使用CurrentDb.Execute而不是DoCmd.OpenQuery,您可以避免确认消息,而无需关闭SetWarnings。它

有人能告诉我这个代码不起作用吗?它循环执行,但似乎忽略了
rcount>0的条件

在执行删除查询后更新rcount的值

rcount=DCount(“F1”、“T1”)
当rcount>0时执行此操作
'DoCmd.OpenQuery“q1”
CurrentDb.执行“q1”,dbFailOnError
rcount=DCount(“F1”、“T1”)
环
注意:通过使用
CurrentDb.Execute
而不是
DoCmd.OpenQuery
,您可以避免确认消息,而无需关闭
SetWarnings
。它还允许您使用dbFailOnError,它将通知您一些问题,否则这些问题将以静默方式失败

但是我不明白为什么你想一次删除一条T1记录,而你却可以一次删除所有的T1记录

CurrentDb.Execute“DELETE FROM T1;”,dbFailOnError

首次设置
rcount
的值后,它不会改变。因此,如果当您在期间点击Do时,
rcount>0
条件为
True
,它将保持
True
。请描述您想要完成的任务。如果代码正在循环,那么它不会忽略条件。。。您是否尝试在打开“局部变量”窗口的情况下运行此操作,以查看此时
rcount
的实际值?抱歉,我遗漏了该部分。每次循环都会修改dcount所针对的表,每次删除1条记录,直到dcount=0时循环应该停止。如果我中断循环并查看数据计数所针对的表,我会看到我的代码已删除所有记录,在这种情况下,数据计数应为0。请尝试将
rcount=
行复制到
循环
行之前?通过这种方式,它在循环之前和循环内将值设置为
rcount
。Chrismas007,也谢谢你,这与Hansup所说的差不多。太好了。非常感谢。回答你们的问题——这是因为我在为一个我无法反驳的位置上的人做一些荒谬的非传统的表格操作,而我这样做的方式要求我一次删除1个。(基本上使用另一个查询来确定top1记录)。我相信我们都去过那里
rcount = DCount("F1", "T1")

Do While rcount > 0

DoCmd.OpenQuery "q1"

Loop