通过外键链接数据时 MS Access 中的控制源无效
Posted
技术标签:
【中文标题】通过外键链接数据时 MS Access 中的控制源无效【英文标题】:Invalid control source in MS Access while linking data by foreign keys 【发布时间】:2014-01-02 21:11:46 【问题描述】:我需要为当前Product
记录的当前Supplier.supplier_id
创建保存数据Country.country_name
的表单。产品具有 FK supplier_id
。表 Supplier
具有 FK country_id
。表Country
有两个字段:country_id
和country_name
。
试图通过 SQL 查询获取当前产品的country_name
,但出现“无效控制源”错误。如何解决?
SQL查询:
SELECT Country.country_name FROM
Country INNER JOIN
(Supplier INNER JOIN Product ON Product.supplier_id=Supplier.supplier_id)
ON Supplier.country_id=Country.country_id;
已解决:
主Form
必须在Property sheet > Data > Record source
中有以下查询SELECT * FROM (Country INNER JOIN Supplier ON Country.country_id = Supplier.country_id) INNER JOIN Product ON Supplier.supplier_id = Product.supplier_id;
。
【问题讨论】:
【参考方案1】:组合的 Control Source 属性是表单的记录源字段,您要将组合绑定到该字段。所以听起来表单的记录源不包含名为country_name
的字段。 (在这里,组合的行源是否包含该字段并不重要——您不会将组合绑定到它。)
在组合的属性表上,单击控件源框右侧的下拉箭头。它应该显示它识别为包含在表单记录源中的所有字段的名称。
【讨论】:
country name
属性中的组合在控制源中没有 country_name
。我的表单只有 Product
作为记录源,因为它只提供一个表可供选择。
Product
中的哪个字段是您要存储组合值的字段?
我必须修改表单的记录集才能在property sheet > control source
中看到我需要的字段/列。【参考方案2】:
该查询中的结果字段名称将是 country_name
(即,没有 Country.
前缀)。只需使用country_name
作为您的控制源。
【讨论】:
表单的记录来源是什么? 是表Product
。以上是关于通过外键链接数据时 MS Access 中的控制源无效的主要内容,如果未能解决你的问题,请参考以下文章