ms-access - 将一行中的元 ID 自引用到另一行中的 ID,并使用关联的查找填充文本框
问题描述
我的 Access 数据库中有一个表 luDiatomTaxon,它是表单的记录源。该表具有以下列:ID、ScientificName、AcceptedTaxonID、Genus、Species 等。
有时数据中输入的 ScientificName 不是 ACCEPTED ScientificName,这是由于实验室列出物种的方式不同或按地区列出物种中存在的差异,即实验室提供的 ScientificName 可能在末尾添加了措辞以区分已识别物种的区域特定特征。但是,出于统计目的,在更新到国家数据库时不会使用特定区域的差异。
出于这个原因,如果 AcceptedTaxonID 字段中有一个条目,则它引用了同一个表中具有 ACCEPTED ScientificName 的不同行的 ID。
我需要编写代码,当用户在表单的组合框中选择一个 ScientificName,并且该行的表中有一个 AcceptedTaxonID 时,找到与 AcceptedTaxonID 匹配的 ID 并用 ScientificName 填充一个文本框对于那个 ID。
谁能帮我这个?
解决方案
我最终在 DLookup 中使用了 DLookup。此外,我需要将它放在一个 IIF 语句中——使用 DLookup 作为 IIF 函数的“表达式”部分——因为我需要指示如果 DLookup 结果为 Null (false) 会发生什么。以下是 Accepted Taxon Scientific Name 文本框的 Control Source。当用户从组合框中选择“他们的”学名时,如果存在与所选学名不同的学名,则文本框的以下语句使用所选内容来查找和显示“接受的”学名。
=IIf(Not IsNull(DLookUp("AcceptedTaxonID","luDiatomTaxon","ID = " & [cboDiatomTaxon])),DLookUp("ScientificName","luDiatomTaxon","ID = " & DLookUp("AcceptedTaxonID","luDiatomTaxon ","ID = " & [cboDiatomTaxon])),Null)