无需在表中使用查找即可访问2007参照完整性

时间:2012-05-04 10:56:06

标签: ms-access lookup-tables

我在这里看过各种关于不在表格中使用查找的帖子。如果不这样做,如何在字段和查找表中的允许值之间强制实施参照完整性?我无法在查找表中创建表字段和字段之间的关系,因为我无法在字段上创建唯一(无重复)索引 - 特定值需要在表中的记录中多次出现。但是,如果我使用字段属性在其上设置查找并从查找表中指定必须包含的字段,则可确保无法将数据输入到不在查找表中的此字段中。

或者我在这里完全错了?

1 个答案:

答案 0 :(得分:1)

我建议您始终创建用于编辑记录的表单。在这些表单中,您可以创建组合框,在正确的表和字段中执行查找。这里有一些选项,您可以将数据输入限制为仅存储在表中的值。此选项称为限制列表(您将在组合属性中看到它)。

在查找表中存在强制执行该数据的另一个重要方法是通过您的关系。

tblProducts
  ProductID (primary key)
  CategoryID (foreign key)
  ProductDescription

tblCategories
  CategoryID (primary key)
  Category

在关系窗口中,您将在CategoryID字段上定义上述两个表之间的关系。你在这里完成了几件事。由于您将存储较少的数据,因此在Products Table中仅存储CategoryID更有效。此外,这种方式如果您更改类别上的名称,所有记录将立即反映该更改。您显示产品及其类别的每个地方都需要创建一个组合框,以便显示类别描述而不是显示CategoryID。

作为旁注,我建议您很少使用值列表选项作为组合中的行源类型。使用表/查询选项然后创建适当的查找表是一种更加健壮和灵活的设计。