我有一个包含3个字段的MS Access数据库表。我需要使用前一行/记录的第3个字段的结果填充第4个字段。但是我需要它继续填充相同的结果,直到满足字段1中的某些条件,然后它应该更改正在填充的内容并开始填充新结果。
现有数据示例
ID--Field1--Field2
01-----A-----ACH
02-----H-----7
03-----D-----Sun
04-----A-----DTD
05-----H-----123456
06-----T-----9
07-----B-----Moon
08-----P-----1
09-----A-----EBX
10-----H-----Stars
11-----T-----25
12-----B-----97Street
我希望数据填充字段3,每行中的结果相同,直到字段1中的条件=“A”,然后更改为字段2用于下一组。 (很难解释抱歉)
我想要的例子:
ID--Field1--Field2---Field 3
01-----A-----ACH-----ACH
02-----H-----7-------ACH
03-----D-----Sun-----ACH
04-----A-----DTD-----DTD
05-----H-----123456--DTD
06-----T-----9-------DTD
07-----B-----Moon----DTD
08-----P-----1-------DTD
09-----A-----EBX-----EBX
10-----H-----Stars---EBX
11-----T-----25------EBX
12-----B-----97St----EBX
我构建了一个执行此操作的查询,但因为它太麻烦而锁定了系统。
Field3:IIf([field1] =“A”,[field2],(DLookUp(“[Field3]”,“Query1”,“[ID] =”& [ID] -1)))
基本上我使用If语句来获取更改应该发生的时间,并使用Dlookup来提取字段3的前一行中的内容。您可以看到处理数百条记录时可能很麻烦的原因。
我搜索了很多资源,发现解决方案和sql代码存在类似的问题来提取先前的信息,但似乎无法找到一个解决方案,直到在字段1中找到下一个“A”时才会填充。
请帮忙!!!感谢