2010-07-05 47 views
0

对于这样的查询数据:Microsoft Access - 根据字段值更改创建数字序列?

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

如何查询,这样的数字序列(1,2,3 ......),可以补充说,重置回1每次名称更改(即从JEFF到BOB)?

是否可以使用DCOUNT功能?

我至今是(不正确地排序):

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]; 
+0

为什么你认为你需要这样做? – 2010-07-05 21:52:15

+0

@ David-W-Fenton - 这是一个自定义报告 - 该序列显示了一系列活动的逐步出现,并且该序列根据源数据动态变化。 – 2010-07-06 19:00:04

+1

您尝试生成的序列是否来自其他数据?如果是这样,为什么不使用它的派生数据来排列结果呢?如果这些信息没有存储在任何地方,那么数据模型可能并不像它应该那样完整。 – 2010-07-06 22:14:17

回答

1

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

1

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

谢谢