Você recebe um erro de conflito de gravação quando você adicionar um registro no modo de exibição várias tabelas no Access 2002

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 295225
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Moderado: Requer básica de macro, codificação e interoperabilidade habilidades.

Este artigo se aplica somente a um projeto Microsoft Access (.adp).

Sintomas
Ao tentar inserir um registro em um modo de exibição de várias tabelas, um procedimento armazenado ou uma função em um arquivo de projeto (.adp) do Microsoft Access, você receber a seguinte mensagem de erro:
conflito de gravação

Este registro foi alterado por outro usuário desde que você começou a editá-lo. Se você salvar o registro, você substituirá as alterações feitas pelo outro usuário.

Copiando as alterações para a área de transferência permitirá que você examine os valores de outros usuário inserido e, em seguida, colar suas alterações de volta se você decidir fazer as alterações.
Quando você clicar em Descartar alterações na caixa de diálogo, o registro desaparece. No entanto, os valores do registro filho na associação são salvos com uma chave externa inesperada.
Causa
Esse comportamento ocorre quando as seguintes condições forem verdadeiras:

  • O campo de chave primário da tabela primária na consulta é um campo de identidade.
  • A consulta restringe os registros que são retornados para excluir alguns registros da tabela primária.
Resolução
Para resolver esse problema, obtenha o service pack mais recente para o Microsoft Office XP. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
307841OFFXP: Como obter o Office XP Service Pack mais recente


Existem duas resoluções adicionais para esse problema.

Usar um formulário vinculado principal e subformulário

A solução recomendada para esse problema é usar um formulário vinculado principal e subformulário para inserir dados em tabelas relacionadas. Isso permite que você inserir registros em ambas as tabelas de um local sem usar uma consulta e sem ter que modificar a estrutura das tabelas base. Para criar um formulário principal com um subformulário vinculado, siga estas etapas:
  1. Crie um novo formulário que é baseado na tabela relacionada (filho) que é usada na consulta e inclua todos os campos do formulário.
  2. Salve o formulário e em seguida, fechá-lo.
  3. Criar um novo formulário que se baseia a tabela primária é usada na consulta e incluir todos os campos no formulário.
  4. Na janela banco de dados, arraste o formulário que você salvou na etapa 2 para o formulário principal para criar um subformulário.
  5. Exibir as propriedades do subformulário e defina suas propriedades VincularCamposFilho e VincularCamposMestre como o nome do campo ou campos que são usados para vincular as tabelas.

Remover o atributo Identity da tabela primária

Uma segunda solução para esse problema é definir a propriedade identidade da chave primária na tabela primária como não . Isso impede que o erro ocorra quando você insere dados diretamente a consulta; no entanto, você terá manualmente inserir os valores de chave externa e chave primária diretamente a consulta quando você inserir registros. Para definir a propriedade de identidade do campo como não , execute estas etapas:
  1. Abra a tabela primária no modo de design.
  2. Clique no campo de chave primária para exibir suas propriedades.
  3. Defina a propriedade identidade do campo como não .
Situação
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no começo deste artigo.
Esse problema foi corrigido primeiro no Microsoft Office XP Service Pack 1.
Mais Informações
Se a consulta é restringir alguns registros da tabela primária e campo de associação da tabela primária é uma coluna de identidade, o Microsoft Access não recupera o próximo valor válido para a coluna de identidade. Microsoft Access tenta inserir um valor maior do que o valor máximo identidade uma no conjunto de resultados da consulta. Se esse valor já foi usado, o Microsoft Access retornará um erro de conflito de gravação quando a tabela relacionada é atualizada.

Passos para reproduzir o problema

  1. cuidado : se você seguir as etapas neste exemplo, você modificar o projeto do Access de exemplo NorthwindCS.adp. Convém fazer backup do arquivo NorthwindCS.adp e seguir essas etapas numa cópia do projeto.

  2. Abra o projeto de exemplo NorthwindCS.adp.
  3. Feche o formulário menu de controle principal se ele aparecer.
  4. No menu Exibir , aponte para Objetos de banco de dados e, em seguida, clique em consultas .
  5. Clique em novo .
  6. Na caixa de diálogo Nova consulta , clique em Modo de design e, em seguida, clique em OK .
  7. Na caixa de diálogo Adicionar tabela , clique em tabelas produtos e categorias , clique em Adicionar e, em seguida, clique em Fechar .
  8. No menu Exibir , aponte para Mostrar painéis e, em seguida, clique em SQL .
  9. Digite ou cole a seguinte instrução SQL no painel SQL:
    SELECT    Categories.CategoryID,    Categories.CategoryName,    Products.ProductID,    Products.ProductName,    Products.CategoryID AS fCategoryIDFROM            Categories INNER JOIN ProductsON Categories.CategoryID = Products.CategoryID					
  10. No menu arquivo , clique em Salvar e salve o modo de exibição como CatProducts .
  11. No menu consulta , clique em Executar . Observe que o modo de exibição é preenchido com dados onde os campos CódigoDaCategoria forem iguais.
  12. No menu registros , clique em Entrada de dados .
  13. Inserir um novo registro digitando valores para o NomeDaCategoria e os campos ProductName. Observe que a categoria e os campos de identidade ProductID são preenchidos automaticamente com o valor 1, que anteriormente foi usado.
  14. No menu registros , clique em Salvar registro .
Observe que você recebe a mensagem de erro mencionada na seção "Sintomas" deste artigo.
pra

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 295225 - Última Revisão: 12/06/2015 01:54:25 - Revisão: 3.1

Microsoft Access 2002 Standard Edition

  • kbnosurvey kbarchive kbmt kbprb kberrmsg kbofficexpsp1fix KB295225 KbMtpt
Comentários