Microsoft Access - 使用来自不同表的多个条件进行查找
Microsoft Access - Dlookup with multiple criteria from different tables
我的数据库中有 2 个 table。一个叫做 Manufacture,另一个叫做 Product。
制造商 table 有 2 个字段:
- 数量
- 姓名
产品 table 有 3 个字段:
- 数量
- 姓名
- Manufacture_Number
我想要的是当我创建一个新产品时,它会显示该产品是否已经存在。我目前正在使用此代码:
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
是文本框的默认 属性。
我的数据库中有 2 个 table。一个叫做 Manufacture,另一个叫做 Product。
制造商 table 有 2 个字段:
- 数量
- 姓名
产品 table 有 3 个字段:
- 数量
- 姓名
- Manufacture_Number
我想要的是当我创建一个新产品时,它会显示该产品是否已经存在。我目前正在使用此代码:
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
是文本框的默认 属性。