【问题标题】:conditonal with dlookup value具有 dlookup 值的条件
【发布时间】:2020-09-11 01:25:51
【问题描述】:

我有一个子表单,其中有一个名为“剩余托盘”的字段。在控制源中,我有这个查找公式:

=DLookUp("[CountofIdPEDIDOSPRODUCTOS]";"[SUMA PALETS]";"[PRODUCTOPEDIDO] = " & [Forms]![PEDIDOS]![PEDIDOSPRODUCTOS]![IdPEDIDOSPRODUCTOS])

我在同一个子表单中有另一个字段称为“Nº DE PALLETS”,我想在我的子表单中针对脏事件执行下一个条件子句,以检查最大托盘 nº 是否正确:

If Me.[nº palets].Value < Me.[Remaining pallets].Value Then
 MsgBox "ESTE PALET SOBRA"  End If

如果条件子句匹配,则不添加最后一条记录

但它没有显示任何 msgbox 并且记录无论如何都会加起来我不知道为什么。是否可能 Dlookup 控制源不允许 lf 子句?

【问题讨论】:

    标签: vba forms if-statement ms-access dlookup


    【解决方案1】:

    这些表达式在代码运行后被重新查询。

    所以将它包含在您的代码中:

    If Me.[nº palets].Value < Nz(DLookUp("[CountofIdPEDIDOSPRODUCTOS]", "[SUMA PALETS]", "[PRODUCTOPEDIDO] = " & [Forms]![PEDIDOS]![PEDIDOSPRODUCTOS]![IdPEDIDOSPRODUCTOS] & ""), 0) Then
        MsgBox "ESTE PALET SOBRA"  
    End If
    

    【讨论】:

    • 感谢您的回答,但我得到了相同的结果。 MsgBox 没有弹出。在“脏”事件中添加代码是否正确?
    • 大多数情况下,您会放入表单的更新前或控件的更新后。
    • 一开始我把代码放在对象(一个表单域)中的脏事件上。但是我在更新事件后的子表单中重新定位了代码并且它有效!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多