首次使用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是否是该字段的标签名称?
答案 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更改为工厂名称,则可以使用。