【问题标题】:Microsoft Access - Dlookup with multiple criteria from different tablesMicrosoft Access - 具有来自不同表的多个条件的 Dlookup
【发布时间】:2017-02-21 21:04:43
【问题描述】:

我的数据库中有 2 个表。一个称为制造,另一个称为产品。

Manufacture 表有 2 个字段:

  • 号码
  • 姓名

Product 表有 3 个字段:

  • 号码
  • 姓名
  • 制造商编号

我想要的是当我创建一个新产品时,它会告诉我该产品是否已经存在。我目前正在使用此代码:

DLookup("[Name]", "Product", "[Name] = '" & me.txtName.value & "'")

它工作得很好,但是曾经发生过一个名称相同但制造商不同的产品。因此我无法创建记录。

仅当与已创建的产品和制造商相同时,我才能创建新记录。

如何为不同表中的多个条件创建一个 Dlookup?

【问题讨论】:

    标签: ms-access vba ms-access-2010 ms-office


    【解决方案1】:

    我怀疑您并不想查看不同的表。您想防止添加与现有产品具有相同名称和制造商的产品,因此您需要检查Product 表中的两个字段:

    DLookup("[Name]", "[Product]", "[Name] = '" & me.txtName & "' And Manufacture_Number = " & me.txtMfrNumber)
    

    您的制造商输入控件更有可能是一个组合框,但这也有效 - 只需将 txtMfrNumber 替换为您用于获取此编号的控件名称即可。

    请注意,您不需要在me.txtName 的末尾指定.Value,因为Value 是文本框的默认属性。

    【讨论】:

      【解决方案2】:

      你必须像这样嵌套DLookups

      DLookup("[Name]","Product","[Name]='" & me.txtName.value & "' AND Manufacture_Number=" & Nz(DLookup("Number","Manufacture","[Name]='" & me.txtManufactureName.value & "'" ,0)))
      

      我使用Nz 来避免DLookup 返回null 时出错。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-11
        • 1970-01-01
        • 2014-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多