Como posso evitar registros duplicados em uma tabela do Access ao inserir dados de um subformulário?

0

Eu tenho um banco de dados do MS Access com três tabelas:

Foods (Id, Food_Name, Food_Desc) e Ingredients (Id, Ingredient_Name) e IngredientsFoods_mm (Id, Id_FoodsFK, Id_IngredientsFK)

... em um relacionamento muitos-para-muitos, em que IngredientsFoods_mm é a tabela que vincula os outros dois.

Agora, eu fiz um formulário com um subformulário para atribuir ingredientes aos alimentos. No formulário principal, há os campos Food_Name e Food_Desc e, no subformulário, há o campo Ingredient_Name (uma caixa de combinação). Parece funcionar bem, mas o problema é que quando eu insiro um ingrediente que já está na tabela Ingredients , em vez de atribuir o registro apropriado, ele cria um registro duplicado.

Eu tentei evitar isso definindo um índice sem duplicatas no campo Ingredient_Name , mas o Access me diz que isso criaria um erro de integridade.

A pergunta é: como posso evitar a criação de registros duplicados na tabela Ingredients ao inserir informações do subformulário?

    
por Kureno 07.09.2015 / 04:55

1 resposta

0

Eu acho que o seu problema é que você está tentando inserir na tabela Ingredients quando você deve inserir o relacionamento entre Foods.Id e Ingredients.Id através da tabela IngredientsFoods_mm .

Verifique se seus relacionamentos estão bem definidos e se a chave primária IngredientsFoods_mm é formada por Id_FoodsFK e Id_IngredientsFK .

Aqui está a explicação dos relacionamentos no acesso. Abrange como criar um modelo de relacionamento muitos-para-muitos correto. link

    
por 07.09.2015 / 06:00