![从子表单输入数据时,如何避免 Access 表中出现重复记录?](https://linux22.com/image/1465021/%E4%BB%8E%E5%AD%90%E8%A1%A8%E5%8D%95%E8%BE%93%E5%85%A5%E6%95%B0%E6%8D%AE%E6%97%B6%EF%BC%8C%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D%20Access%20%E8%A1%A8%E4%B8%AD%E5%87%BA%E7%8E%B0%E9%87%8D%E5%A4%8D%E8%AE%B0%E5%BD%95%EF%BC%9F.png)
我有一个包含三个表的 MS Access 数据库:
Foods (Id, Food_Name, Food_Desc)
Ingredients (Id, Ingredient_Name)
IngredientsFoods_mm (Id, Id_FoodsFK, Id_IngredientsFK)
...在多对多关系中,IngredientsFoods_mm
链接其他两个表的表在哪里。
现在,我制作了一个带有子表单的表单,用于将配料分配给食物。主表单中有Food_Name
和Food_Desc
字段,子表单中有Ingredient_Name
字段(组合框)。似乎运行良好,但问题是,当我输入表中已有的配料时Ingredients
,它会创建重复记录,而不是分配适当的记录。
我尝试通过在字段中设置没有重复的索引来避免这种情况Ingredient_Name
,但是 Access 告诉我这会产生完整性错误。
问题是,如何避免Ingredients
从子表单输入信息时在表中创建重复记录?
答案1
Ingredients
我认为您的问题在于,当您应该在表中插入Foods.Id
和表Ingredients.Id
之间的关系时,您却试图将其插入表中IngredientsFoods_mm
。
确保您的关系定义明确,并且的主键由和IngredientsFoods_mm
组成。Id_FoodsFK
Id_IngredientsFK
这里是对 Access 中关系的解释。它涵盖了如何构建正确的多对多关系模型。 https://support.microsoft.com/en-us/kb/304466
答案2
我有一张出租房产和其他东西的表格,但我想将数据标准化。我把每个表格中应该包含的所有数据放在一起,所以我知道要创建什么表格,但我不知道如何只为在不同场合租过 2 套房子的人输入一个数据?我是否应该输入一个数据而不输入另一个数据?