1

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

还是我在这里完全搞错了?

4

1 回答 1

1

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

另一种强制数据存在于查找表中的重要方法是通过关系。

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

tblCategories
  CategoryID (primary key)
  Category

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

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

于 2012-05-04T11:46:13.133 回答