Microsoft Access - 具有来自不同表的多个条件的 Dlookup
Posted
技术标签:
【中文标题】Microsoft Access - 具有来自不同表的多个条件的 Dlookup【英文标题】:Microsoft Access - Dlookup with multiple criteria from different tables 【发布时间】:2017-02-21 21:04:43 【问题描述】:我的数据库中有 2 个表。一个称为制造,另一个称为产品。
Manufacture 表有 2 个字段:
号码 姓名Product 表有 3 个字段:
号码 姓名 制造商编号我想要的是当我创建一个新产品时,它会告诉我该产品是否已经存在。我目前正在使用此代码:
DLookup("[Name]", "Product", "[Name] = '" & me.txtName.value & "'")
它工作得很好,但是曾经发生过一个名称相同但制造商不同的产品。因此我无法创建记录。
仅当与已创建的产品和制造商相同时,我才能创建新记录。
如何为不同表中的多个条件创建一个 Dlookup?
【问题讨论】:
【参考方案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 时出错。
【讨论】:
以上是关于Microsoft Access - 具有来自不同表的多个条件的 Dlookup的主要内容,如果未能解决你的问题,请参考以下文章
在不同的设置上使 SQL Server 中的 Microsoft Access 表相同
将 12 个具有不同“where”条件的 MS Access 查询组合到一个查询中
从 XCode 连接到 Microsoft Access 数据库
Microsoft Access - 合并具有相同字段的多个表