MS Access Visual Basic 组记录集和修改值

MS Access Visual Basic Group Recordset and modify values

我有一个 Access 数据库,其中有一个已定义的查询。

此查询有 3 个字段 "Category"、"Points" 和 "Place" 多个记录可以有相同的类别条目。

我现在需要做的是按 "Category" 对查询记录进行分组。 在每个子组中按 "Points" 排序 在子组中编辑 "Place",从“1st”开始到“2nd”,依此类推。 重复下一组,直到没有更多的组。

如果我说的目的是分配奖项(根据球员得分在不同年龄段的一等奖、二等奖、三等奖等),也许会更容易。

我是一名 .NET 程序员,所以我立即想到了 LINQ,但这里没有 linq;/

有没有比单独 sql 请求然后按积分排序更好的方法?

好的,这是我的记录集(Place 列已经填满,原来它是空的,应该这样填):

ID 类别积分位置
----------------------------------
1 CAT1 8 2
1 CAT1 10 1
1 CAT2 12 2
1 CAT2 11 3
1 CAT2 13 1
1 CAT3 12 1
1 CAT3 9 3
1 CAT3 3 4
1 CAT3 10 2

我不知道有多少个类别。

不确定单独的 SQL 请求是什么意思。在 VBA 中,您可以使用单个 SQL 请求用您的数据填充临时 table(加上空的 "PLACE" 列),然后使用基于类似的记录集查询(像你的一样,但针对添加了 "ORDER BY Category, Points DESC" 的临时 table)。然后遍历该记录集并分配分数(使用 recordset.edit & .update 等)。 (但如果你是一名 .Net 程序员,我可能不会告诉你任何你还不知道的事情......)

在彻底阅读文档后,我发现我必须手动进行大量排序和分组,所以我最终认为这是不值得的,并转而编写一个在此数据库上运行的桌面 C# 应用程序。从那里一切都很明显,而且速度更快