使用条件语句查找报表摘要的多个值到单个文本框

时间:2018-03-05 13:31:07

标签: vba ms-access access-vba

我尝试在Access中创建送货报告,这实际上只是工作中产品的摘要,其中包含每种产品的一些其他相关信息。我有一个Products表和一个ProductVars表,它使用ProductID号码进行链接。

我试图在名为ProductVarsFinishedLeft的{​​{1}}表中查找2个变量并获取相应的值。

然后我会做条件语句,报告会显示该产品是FinishedRight(完成左侧),"L"(完成右侧),"R"(完成两者) ),如果没有完成,则只是空白。

我已经创建了一个名为"B"的查询并使用qryFinishedEnds,但我不确定如何对此进行编码以专门查看字段值。

在控制源中输入的以下语句仅向我提供查询中第一条记录的结果。

dlookup

我还尝试在VBA中输入代码并在报告加载时将值分配给文本框,但我无法正常工作,因为它只是为每条记录重复相同的值。

有关如何做到这一点的任何想法?

编辑此帖子以澄清。

根据以下链接,它说我可以在DLookup字符串中有多个条件。 http://access-excel.tips/access-dlookup-lookup-multiple-criteria/

这是我想要完成的事情。 = IIf(DLookUp(" [Value]"," qryFinishedEnds"," [ProductID] ="& [ProductID]和" [Name ] =' FinishedLeft'")= 1

并且

IIf(DLookUp(" [Value]"," qryFinishedEnds"," [ProductID] ="& [ProductID]和" [姓名] =' FinishedRight'")= 0然后“L”

ELSEIF

IIf(DLookUp(" [Value]"," qryFinishedEnds"," [ProductID] ="& [ProductID]和" [姓名] =' FinishedLeft'")= 1

并且

IIf(DLookUp(" [Value]"," qryFinishedEnds"," [ProductID] ="& [ProductID]和" [姓名] =' FinishedRight'")= 1然后“B”

ELSEIF

IIf(DLookUp(" [Value]"," qryFinishedEnds"," [ProductID] ="& [ProductID]和" [姓名] =' FinishedLeft'")= 0

并且

IIf(DLookUp(" [Value]"," qryFinishedEnds"," [ProductID] ="& [ProductID]和" [姓名] =' FinishedRight'")= 1然后“R”

否则

“空白”

当然,这充满了错误,但希望你能理解我所得到的。

如果有比Dlookup更简单的方法,请告诉我。

这是我的查询的样子。

query for Dlookup

2 个答案:

答案 0 :(得分:0)

  

我也尝试在VBA中输入代码并将值分配给文本   报告加载时框,但我也无法正常工作   因为它只是为每条记录重复相同的值。

这是正常行为,函数Dlookup只返回“第一场比赛”。

如果您只想显示与特定记录相关的信息,则应使用Access报告工具,但它不可编辑。

答案 1 :(得分:0)

我确定我的解释说得不好,但这就是我的想法。我试图弄清楚如何使用具有多个标准的dlookup。我最终在报告中并排放置了2个文本框。一个用于左端完成,一个用于右端完成。对于左边的结束,我在文本框的控件源中添加了以下字符串。

=IIf(DLookUp("[Value]","PRODUCTVARS","[Name]='FinishedLeft' AND ProductID=" & [ProductID]),"L","")

对于其他文本框,除了名称=' FinishedRight'之外,它是相同的字符串。

我希望有一个单独的文本框,当两端都完成时,会显示" L"," R"或" B"对于两者而言,报告将显示" L"," R"或" LR"现在好了。

我还需要在其他报告上显示相同的信息,以便最终拥有VBA代码或编写函数或其他内容。