MS 365访问表单Dlookup#名称?

时间:2019-05-21 08:48:38

标签: ms-access

首次使用MS Access,如果有人可以帮助我,则会遇到一些问题
我有3张桌子和1张表格:

Table Plant {PID(key), Name};  
Table Contractor {CID(key), Plant};  
Table KPI {KID(key), ServiceID, KPI1, KPI2}. 

他们的关系:Plant.Name = Contractor.Plant,Contractor.CID = KPI.ServiceID

表格KPI :(用于将数据输入到表KPI中) 简化我想要的,使用组合框“ cbxplant”列出所有植物名称,当在此组合框中选择1个植物时,它将从表承包商中查找CID,然后将值检索到文本框“ Service ID”中 我这样尝试过:

=DLookUp("[CID]","Contractor","[Plant]= '" & [Form]![KPI]![cbxplant] & "'")

它始终显示“ #Name?”结果。但是我看不到代码有任何错误。 有人可以帮忙吗?

P.S组合框正在使用表Plant而不是Table Contractor查询工厂名称,我不知道它是否链接到此pb?而且我还想知道1字段的FormID是否是该字段的标签名称?

2 个答案:

答案 0 :(得分:1)

您的错误是在组合框的引用上,缺少s

[Forms]![....

'String
=DLookUp("[CID]","Contractor","[Plant]= '" & [Forms]![KPI]![cbxplant] & "'")

'Double
=DLookUp("[CID]","Contractor","[Plant]= " & [Forms]![KPI]![cbxplant])

还有一个DLookup()示例:

=DLookup("ColumnName", "TableName", "ColumnName = 'Criteria1'")
=DLookup("ColumnName", "TableName", "ColumnValue = 1")

答案 1 :(得分:0)

最后,我找到了此问题的根本原因,Access组合框无法保存除该表的主键之外的另一个表的值。 它没有与Dlookup函数链接。如果我将表工厂的键从PID更改为工厂名称,则可以使用。