Como solucionar erros que podem ocorrer quando você atualiza dados em consultas e formulários do Access

Número de KB original: 328828

Observação

Requer habilidades básicas de macro, codificação e interoperabilidade. Este artigo se aplica a um banco de dados do Microsoft Access (.mdb e .accdb) e a um projeto do Microsoft Access (.adp).

Este artigo descreve erros que podem ocorrer no Microsoft Access quando você atualiza dados em consultas e em formulários. Este artigo também descreve as causas dos erros e como solucionar esses erros.

Ao tentar atualizar dados em uma consulta ou em um formulário, você pode receber uma das seguintes mensagens de erro:

A operação deve usar uma consulta atualizável.

- ou -

Este conjunto de registros não é atualizável.

Solução de problemas que podem ocorrer ao atualizar dados em uma consulta

  • Quando a consulta é baseada em três ou mais tabelas e há uma relação de muitos-para-um-para-muitos, você não pode atualizar os dados diretamente na consulta. Você pode atualizar os dados em um formulário ou em uma página de acesso a dados. Você pode fazer isso com base na consulta quando a RecordsetType propriedade do formulário é definida como Dynaset(Atualizações Inconsistentes).

  • Quando a consulta é uma consulta de tabela cruzada, você não pode atualizar os dados na consulta.

  • Quando a consulta é uma consulta de passagem do Microsoft SQL, você não pode atualizar os dados na consulta.

  • Quando a consulta está calculando uma soma, uma média, uma contagem ou outro tipo de total nos valores em um campo, você não pode atualizar dados na consulta. Além disso, não é possível atualizar uma consulta que faça referência a um campo na linha Atualizar para de uma tabela de referência cruzada, uma consulta, uma consulta selecionada ou uma subconsulta que contenha totais ou funções de agregação. Para contornar esse problema, use a função Agregação de Domínio na linha Atualizar para de uma consulta de atualização. Você pode referenciar campos de uma consulta de tabela cruzada, uma consulta selecionada ou uma subconsulta que contenha totais ou funções de agregação.

  • Quando a consulta é uma consulta união, você não pode atualizar dados na consulta.

  • Quando a propriedade Valores Exclusivos da consulta é definida como Sim, você não pode atualizar dados na consulta. Para contornar esse problema, defina a propriedade Valores Exclusivos da consulta como No.

  • Quando a consulta inclui uma tabela ODBC vinculada sem nenhum índice exclusivo ou uma tabela Paradox sem uma chave primária, você não pode atualizar dados na consulta. Para contornar esse problema, adicione uma chave primária ou um índice exclusivo à tabela vinculada.

  • Quando você não tem permissões de Dados de Atualização para a consulta ou a tabela subjacente, não é possível atualizar dados. Para resolver esse problema, atribua permissões para atualizar os dados.

  • Quando a consulta inclui mais de uma tabela ou uma consulta, e as tabelas ou as consultas não são unidas por uma linha de junção no modo Design , você não pode atualizar os dados na consulta. Para resolver esse problema, você deve unir as tabelas corretamente para que possa atualizá-las.

  • Quando o campo que você deseja atualizar é um campo calculado, você não pode atualizar dados na consulta.

  • Quando o campo que você tenta atualizar é de leitura apenas, ou o banco de dados está aberto ou localizado em uma unidade de leitura apenas, você não pode atualizar dados na consulta. Para evitar esse problema, não abra o banco de dados como somente leitura. Se o banco de dados estiver localizado em uma unidade somente leitura, remova o atributo somente leitura da unidade ou mova o banco de dados para uma unidade que não seja somente leitura.

  • Quando o campo no registro que você tenta atualizar é excluído ou bloqueado por outro usuário, não é possível atualizar dados na consulta. Um registro bloqueado pode ser atualizado assim que o registro é desbloqueado.

  • Quando a consulta é baseada em tabelas com uma relação um-para-muitos, os tipos de campos que você pode não ser capaz de modificar são os seguintes:

    • Campo de junção no lado "um".
    • O campo de junção lateral "muitos" não aparece na folha de dados.
    • Junte o campo do lado "muitos" depois de atualizar dados no lado "um".
    • Existe um campo em branco da tabela no lado "um" de uma relação um-para-muitos com uma junção externa.
    • A chave exclusiva inteira da tabela ODBC não é a saída.

    Você poderá resolver qualquer um desses problemas se executar a ação correta na seguinte lista:

    • Habilite atualizações em cascata entre as duas tabelas.
    • Adicione o campo de junção do lado "muitos" à sua consulta para que você possa adicionar novos registros.
    • Salve o registro. Você pode fazer alterações no campo de junção lateral "muitos".
    • Insira valores em campos da tabela no lado "muitos". Você só pode fazer isso quando o campo associado do lado "um" contiver um valor para o registro.
    • Selecione todos os campos de chave primária das tabelas ODBC para permitir inserções nelas.

Informações de solução de problemas sobre questões que podem ocorrer quando você atualiza dados em um formulário

  • Você não poderá atualizar dados em um formulário se o formulário for baseado em um procedimento armazenado com mais de uma tabela.

  • Você não poderá atualizar dados em um formulário se o formulário for baseado em um conjunto de registros ADO (ActiveX Data Objects). Os formulários de acesso permitem editar dados de um conjunto de registros do ADO se o conjunto de registros do ADO for criado usando uma combinação do MSDataShape e dos provedores OLEDB do SQL Server.