Vba 基于表-MS Access中的另一列更新列

Vba 基于表-MS Access中的另一列更新列,vba,ms-access,Vba,Ms Access,我有一张名为“游戏”的桌子,结构如下: [Game_Name] [Publisher] [Game_Name] [Publisher] 1 3 1 2 2 1 3 表中的数据如下所示

我有一张名为“游戏”的桌子,结构如下:

[Game_Name]      [Publisher]
[Game_Name]      [Publisher]
                     1
                     3
                     1
                     2
                     2
                     1
                     3
表中的数据如下所示:

[Game_Name]      [Publisher]
[Game_Name]      [Publisher]
                     1
                     3
                     1
                     2
                     2
                     1
                     3
游戏名称将为空。这样,我想根据Publisher列的值更新Game_Name的值

这应该如何工作:

如果Publisher=1->对于Publisher列为1的每个实例(行),游戏名称将为GM-1,…GM-n。因此,在本例中,有3个实例中Publisher为1。所以这些值应该是GM-1,GM-2,GM-3

如果publisher=2,与上述类似,格式应为1-1,…n-n。所以,因为我们有两个Publisher为2的实例,所以Game_Name的值应该是GM-1-1,GM-2-2

最后,如果Publisher=3,Game_Name的值将为1-1-1,…n-n-n。这里有三个实例,因此游戏名称的值为GM-1-1-1、GM-2-2、GM-3-3

这是我目前的做法

UPDATE Game
SET Game_Name = 
SWITCH (Publisher = 1, "GM-"&[1+1],
Publisher = 2, "GM-"&[1+1]&"-"&[1+1],
Publisher = 3, "GM-"&[1+1]&"-"&[1+1]&"-"&[1+1])
我无法跟踪递增的值以及何时重置。此外,这是否应该是一个宏

感谢您的帮助。

请考虑:

SELECT ID, Publisher, "GM-" & Choose([Publisher],[GrpSeq],[GrpSeq] & "-" & [GrpSeq],[GrpSeq] & "-" & [GrpSeq] & "-" & [GrpSeq]) AS Game_Name
FROM (SELECT ID, Publisher, DCount("*","Game","Publisher = " & [Publisher] & " AND ID <" & [ID])+1 AS GrpSeq FROM Game) AS Q1;
选择ID、发布者、“GM-”,并选择([Publisher]、[GrpSeq]、[GrpSeq]、“&[GrpSeq]、[GrpSeq]、”、[GrpSeq]、“&[GrpSeq])作为游戏名称

从(选择ID、Publisher、DCount(“*”、“游戏”、“Publisher=“&[Publisher]”)和"ID As记录没有顺序-除非指定,情况并非如此-使用Excel进行此操作。嗯。很好的一点。关于如何在Access中构造此项以实现目标,您有什么建议吗?添加一个具有顺序编号的自动编号字段。嗯,好的,但是如果我有,比如说7个示例。那么我的ID列将为1-7。怎么可能这对我有帮助吗?你可以对其进行排序。你也可以使用带有游戏日期/时间的日期字段。这真是令人印象深刻。谢谢。我只需要将这些值插入表中。