抓取随机记录并标记为已使用

时间:2014-09-08 17:38:27

标签: sql ms-access random access-vba

好吧,所以我有一张名为Colors的表,在该表中我有5条记录(红色,蓝色,绿色,黄色和橙色)。颜色表当前有两个字段(ID和颜色名称)。我的总体目标是随机选择颜色并将此颜色标记为正在使用。冲洗并重复直至使用所有颜色,并将所有颜色标记为未使用。

这是RandomColorsQuery上的SQL:

SELECT TOP 1 Colors.[Color Name]
FROM Colors
ORDER BY Rnd(ColorID);

到目前为止,我已经能够通过在VBA中使用以下内容来选择随机颜色并且工作正常:

Dim RanColor As DAO.Recordset
Set RanColor = CurrentDb.OpenRecordset("RandomColorsQuery")
'MsgBox (RanColor.Fields(0))

Text1.SetFocus
Text1.Text = RanColor.Fields(0)

显然我需要在Colors表中添加一个新字段,比如一个名为" Used"的字段。我宁愿不使用是/否字段,只需添加" X"在"使用"使用颜色时的字段。

有关如何完成此任务的任何建议或类似示例?

1 个答案:

答案 0 :(得分:1)

添加布尔值(是/否)字段。

修改查询以仅返回尚未使用的查询:

SELECT TOP 1 Colors.[Color Name]
FROM Colors
WHERE USED=False
ORDER BY Rnd(ColorID);

在VBA中,如果记录集返回记录,请获取颜色值,并将Used字段设置为True。

如果记录集返回没有返回记录,即rs.EOF = True,则将所有记录中的Used字段更新为false,然后重新运行查询以重新开始。