Applies ToAccess para Microsoft 365 Access 2021 Access 2019 Access 2016

Última Atualização: 23 de janeiro de 2020

PROBLEMA

Ao criar uma ligação para uma tabela no SQL Server que tenha uma Coluna de Identidade, o Access irá normalmente identificar essa coluna como uma coluna de Numeração Automática.

Mostrar que a Coluna de Identidade é identificada como um campo de Numeração Automática.

Nas compilações do Canal Atual (16.0.12325.*) da Versão 1912 do Office 365 e Office 2016/2019, as Colunas de Identidade não estão identificadas corretamente e, em vez disso, serão reconhecidas como um Número.

A Coluna de Identidade não é identificada corretamente como Numeração Automática

Isto irá acontecer ao criar novas ligações através da interface de utilizador ou de código, mas apenas para novas ligações.  As ligações existentes não serão afetadas, a menos que a ligação seja Atualizada.

O Access utiliza a identificação adequada de uma Coluna de Identidade para várias finalidades, pelo que isto poderá causar impacto nas aplicações de várias formas.

Por exemplo, uma Coluna de Identidade geralmente é utilizada para identificar um registo adicionado recentemente.  Quando a Coluna de Identidade não é utilizada, o Access poderá não conseguir localizar corretamente a linha recém-adicionada, o que fará com que os campos nessa linha sejam apresentados como #Eliminado.

Linha que mostra os campos com o texto Eliminado

Poderá detetar problemas semelhantes ao utilizar a propriedade RecordSet.LastModified para obter os valores para o último registo adicionado. O seguinte código:

Set rst = CurrentDb().OpenRecordset("tblWithIdentityColumn")

rst.AddNew
rst!CompanyName = "Contoso"
rst.Update

rst.Bookmark = rst.LastModified
MsgBox rst!CompanyName

Poderá resultar no erro 3167:

Erro a indicar que o registo foi eliminado.

Em ambos os casos, o registo será adicionado com êxito, mas o Access não conseguirá encontrá-lo com êxito.

Normalmente, o Access também ignora as tentativas de atualizar a Coluna de Identidade diretamente. No entanto, nestes compilações, permite a tentativa, mas falha e gera uma mensagem de erro:

[SQL Server] Não é possível inserir valor explícito para a coluna de identidade na tabela "tblOrders" quando IDENTITY_INSERT estiver definido como OFF. (#544)

ESTADO: CORRIGIDO

A correção para este problema está agora disponível para a Versão 1912.  Pode ser necessário forçar explicitamente uma atualização para receber a correção.  O número da compilação corrigida deverá ser o 12325.20344.

Se for utilizador do Insiders Slow (Versão 2001) ou do Insiders Fast (Versão 2002). A correção ainda não foi implementada nestes canais, pelo que poderá querer mudar-se para o Canal Atual.

Nota: Após mudar de versão, tem de atualizar as ligações afetadas para garantir que as mesmas funcionam de forma correta novamente.

Ícone Especialistas (cérebro, roda dentada)

Perguntar aos especialistas

Interaja com peritos, debata as novidades, as atualizações e as melhores práticas, e leia o nosso blogue.

Microsoft Tech Community (Comunidade Tecnológica Microsoft)

Ícone Comunidade

Obter ajuda na comunidade

Faça uma pergunta e encontre soluções com a ajuda dos Agentes de Suporte, MVPs, Engenheiros e outros utilizadores do Office.

Fórum do Office no Answers

Ícone de pedido de funcionalidade (lâmpada, ideia)

Sugerir uma nova funcionalidade

Adoramos ler as suas sugestões e o seu feedback! Partilhe as suas ideias. Estamos atentos ao seu feedback.

Fornecer feedback

Consulte Também

Correções ou soluções para problemas recentes no Access

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.