Microsoft Access - 使用来自不同表的多个条件进行查找

Microsoft Access - Dlookup with multiple criteria from different tables

我的数据库中有 2 个 table。一个叫做 Manufacture,另一个叫做 Product。

制造商 table 有 2 个字段:

产品 table 有 3 个字段:

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

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

用起来还不错,但是有一次出现同名不同厂家的产品。因此我无法创建记录。

如果与已创建的产品和制造商相同,我无法创建新记录。

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

您必须像这样嵌套 DLookups

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

我正在使用 Nz 以避免在 DLookup returns 为空时出现错误。

我怀疑您真的不想查看不同的 table。您希望防止添加与现有产品具有相同名称和制造商的产品,因此您希望检查 Product table:

中的两个字段
DLookup("[Name]", "[Product]", "[Name] = '" & me.txtName & "' And Manufacture_Number = " & me.txtMfrNumber)

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

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