【发布时间】:2015-01-20 14:18:44
【问题描述】:
因此,以下选择要使用的随机团队。选择后,我会在“已使用”字段中将此团队标记为“已使用”,稍后再进行更新查询。大多数情况下它都有效,但是在运行了几次之后,我开始得到重复的团队,即使它们被标记为 X。
我还缺少什么来完成这项工作?
SQL 语句如下:
SELECT TOP 1 RandomTeams.[Team Name], RandomTeams.Used
FROM RandomTeams
WHERE (((RandomTeams.Used) Is Null))
ORDER BY Rnd(TeamID);
这是我处理更新以将团队标记为已使用的方式,它按预期工作,用 X 标记时我没有问题:
Text214.Text 包含正在使用的团队名称
strTeam = (Chr(34) + Text214.Text + (Chr(34)))
strSQLUpdateTeams = "UPDATE RandomTeams SET Used = 'X' WHERE [Team Name] = " & strTeam
DoCmd.SetWarnings (WarningsOff)
DoCmd.RunSQL strSQLUpdateTeams
【问题讨论】:
-
RandomTeams表中有重复项吗?如果您在同一个表中将Used设置为'X',则此查询将不会返回这些值。 -
您的程序是单线程/进程,还是可以有多个这样的查询并行运行?
-
@GordonLinoff 没有重复的团队,检查了几次,都是唯一的
-
@Mureinik 单线程,我通过 VBA 单独运行每个查询,一个用于选择随机团队,一个用于将团队标记为正在使用。一旦我弄清楚为什么重复团队不断出现,我最终会一起运行。
-
我刚刚使用您的 SQL 进行了尝试,它运行良好 - 最终没有返回任何记录。这让我问您如何/何时设置“已使用”标志?在我的例子中,我有 10 个团队,每次运行查询时,我都会在 Used 字段中手动放置一个 X。
标签: sql ms-access random vba ms-access-2007