我正在尝试计算库存控制的 FIFO 审计分析。这一切都在 MS Access 2010 中完成。
单元 1 已添加到今天的库存中。明天增加第 2 单元。
下周选择一个单位进行消费时,理想情况下我们使用的是 Unit 1,但如果不是,我正在构建一个查询来识别这一点。到目前为止,我已经使用 DLookup 函数在一定程度上使其工作。
但是,我需要确定哪些特定的旧单元受到了 FIFO 失败的影响。这就是 DLookup 失败的地方。
Unit # In Date Out Date
A 1/1/13 1/14/13
B 1/1/13 1/14/13
C 1/4/13 1/13/13
D 1/4/13 1/13/13
以上将导致我的查询两次吐出单元 C 和单元 D 两次,这很好。但是,查询中的每条记录在使用 Dlookup 时只返回单元 A。这是因为 Dlookup 旨在仅查找与条件匹配的第一个值,而不是所有记录。
例如:
Inefficiently Used Unit Overlooked Unit
C A
C A
D A
D A
这就是 DLookup 函数的样子:
DLookUp("[Container]","Container Efficiency","[Carrier]='" & [Carrier] & "' And [Container Type]='" & [Container Type] & "' And [In Date] < # " & [In Date] & "# And [Out Date] > #" & [Out Date] & "#"))
我需要对其进行设计,以便标准产生多个值。
Inefficiently Used Unit Overlooked Unit
C A
C B
我做了研究,似乎使用 Recordsets 和 VBA 将是要走的路。我现在正在玩这个(在复制语法时遇到了一些问题,并且正在考虑使用 FindFirst/FindNext 与标准,然后循环),但是对于这是否可能或如何编写此代码,我得到了相互矛盾的意见。