Ú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.
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.
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.
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:
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.
Perguntar aos especialistas
Interaja com peritos, debata as novidades, as atualizações e as melhores práticas, e leia o nosso blogue.
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.
Sugerir uma nova funcionalidade
Adoramos ler as suas sugestões e o seu feedback! Partilhe as suas ideias. Estamos atentos ao seu feedback.