O Access não reconhece a Coluna de Identidade em uma tabela vinculada do SQL Server

Ultima Atualização: 23 de janeiro de 2020

PROBLEMA

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

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

Em builds de Canal Atual (16.0.12325.*) da versão 1912 do Office 365 e do Office 2016/2019, as Colunas de Identidade não são corretamente identificadas e, em vez disso, serão reconhecidas como um Número.

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

Isso acontece durante a criação de novos links por meio da interface do usuário ou por código, mas apenas para os novos links.  Os links existentes não serão afetados, a menos que o link seja atualizado.

O Access usa a identificação adequada de uma Coluna de Identidade para várias finalidades, para isso ter impacto nos aplicativos de várias maneiras.

Por exemplo, uma Coluna de Identidade geralmente é usada para identificar um registro adicionado recentemente.  Quando a Coluna de Identidade não é usada, o Access não consegue encontrar corretamente a linha adicionada recentemente, o que fará com que os campos nessa linha sejam mostrados como #excluído.

Linha que mostra os campos excluídos

Pode ocorrer problemas semelhantes ao usar a propriedade RecordSet.LastModified para recuperar valores para o último registro adicionado. O código a seguir:


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

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

rst.Bookmark = rst.LastModified
MsgBox rst!CompanyName

Pode resultar no erro 3167:

Erro que indica que o registro foi excluído.

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

O Access também ignorará as tentativas de atualizar diretamente a Coluna de Identidade. No entanto, ocorre a tentativa nesses builds, mas falha e gera uma mensagem de erro:

[SQL Server] Não é possível inserir um valor explícito para a coluna de identidade na tabela “tblOrders” quando IDENTITY_INSERT estiver desativado. (#544)

STATUS: CORRIGIDO

A correção para este problema já está disponível para a Versão 1912.  Talvez seja necessário forçar explicitamente uma atualização a receber a correção.  O número de Build fixo deve ser 12325.20344.

Se você estiver no Insiders Slow (versão 2001) ou no Insiders Fast (versão 2002). A correção ainda não foi entregue nesses canais, portanto, convém mudar para o Canal Atual.

Observação

Depois de alterar as versões anteriores, atualize os links afetados para garantir que eles se comportem corretamente novamente.

Especialistas em ícones (cérebro, engrenagens) Pergunte aos especialistas

Conecte-se com especialistas, participe de discussões sobre as mais recentes novidades, atualizações e práticas recomendadas, e leia o nosso blog.

Microsoft Tech Community

Comunidade de Ícones Obtenha ajuda na comunidade

Faça uma pergunta e encontre as soluções com os Agentes de Suporte, MVPs, Engenheiros e outros usuários do Office.

Fórum do Office sobre Respostas

Solicitação de recurso de ícone (lâmpada, ideia) Sugerir um novo recurso

É um prazer ler seus comentários e sugestões! Compartilhe suas ideias. Estamos ouvindo.

Fazer comentários

Veja Também

Correções ou soluções alternativas para problemas recentes do Access