Microsoft Access - 根据字段值更改创建数字序列?

时间:2010-07-05 18:41:50

标签: ms-access-2007 sequence

对于这样的查询数据:

   +-------+---------+ 
   | Name  | Details | 
   | JEFF  |  TEST1  |
   | JEFF  |  TEST2  |
   | JEFF  |  TEST3  |
   | BOB   |  TEST1  |
   | BOB   |  TEST2  |
   +-------+---------+

如何查询以便可以添加数字序列(1,2,3 ...),每次名称更改时重置为1(即从JEFF到BOB)?

是否可以使用DCOUNT功能?

到目前为止我所做的是(它没有正确排序):

Number: (SELECT COUNT(*) FROM  [dQuery] 
WHERE  [dQuery].[Name] =  [dQuery].[Name] 
AND  [dQuery].[sequence] >=  [dQuery].[sequence])

UPDATE1:

正确的查询是:

SELECT [dQuery].Name, [dQuery].[sequence], (select count([dQuery].Name) + 1 
from [dQuery] as dupe where 
dupe.[sequence]< [dQuery].[sequence] and dupe.name  = [dQuery].name
) AS [Corrected Sequence]
FROM [dQuery]
WHERE ((([dQuery].Name)="jeff"))
ORDER BY [dQuery].Name, [dQuery].[sequence];

2 个答案:

答案 0 :(得分:1)

看看here。我认为作者已经解决了一些非常类似的问题。

答案 1 :(得分:1)

如果要在报表中动态添加序列号,请为特定表创建报表,然后在设计视图中打开报表。然后,在数据行的左侧添加一个文本框,并将“= 1”(带冒号)赋予其Control Source属性@“Data”选项卡。并将“运行总和”属性“数据”选项卡中的“否”更改为“过组”。在运行时,文本字段将按顺序显示数据,如每行中的1,2,3。

由于