Última actualización: 23 de enero de 2020
PROBLEMA
Cuando se crea un vínculo a una tabla en SQL Server que tiene una Columna Identidad, Access por lo general identificará dicha columna como una columna Autonumeración.
En las compilaciones del Canal actual (16.0.12325.*) de la versión 1912 de Office 365 y Office 2016/2019, las Columnas de identidad no se identifican correctamente y, en su lugar, solo se reconocen como un Número.
Esto sucederá al crear nuevos vínculos mediante la interfaz de usuario o mediante código, pero solo para los nuevos vínculos. Los vínculos existentes no se verán afectados, a menos de que el vínculo sea Actualizado.
Access utiliza la identificación adecuada de una Columna Identidad para una serie de propósitos, por lo que esto puede afectar a las aplicaciones de varias maneras.
Por ejemplo, una Columna Identidad se usa normalmente para identificar un registro agregado recientemente. Cuando la Columna Identidad no se usa, es posible que Access no pueda encontrar correctamente la fila recién agregada, lo que provocará que los campos de esa fila se muestren como #Deleted.
Puede ver problemas similares al usar la propiedad RecordSet.LastModified para recuperar los valores del último registro agregado. El siguiente código:
Set rst = CurrentDb().OpenRecordset("tblWithIdentityColumn")
rst.AddNew
rst!CompanyName = "Contoso"
rst.Update
rst.Bookmark = rst.LastModified
MsgBox rst!CompanyName
Puede provocar el error 3167:
En ambos casos, el registro se agregará correctamente, pero Access no podrá encontrarlo correctamente.
Por lo general, Access también pasará por alto los intentos para actualizar la Columna Identidad directamente. Sin embargo, en estas compilaciones se permite el intento, pero se produce un error y se genera un mensaje de error:
[SQL Server] No se puede insertar un valor explícito para la columna identidad en la tabla 'tblOrders' cuando IDENTITY_INSERT está establecido en OFF. (#544)
ESTADO: CORREGIDO
La corrección para este problema ahora está disponible para la versión 1912. Es posible que necesite forzar explícitamente una actualización para obtener la corrección. El número de compilación con la corrección debería ser 12325.20344.
Si es participante del modo aplazado de Insider (versión 2001) o el modo anticipado de Insider (versión 2002). La corrección aún no se ha publicado en esos canales, por lo que es posible que quiera pasar al Canal actual.
Nota: Después de cambiar de versión, debe actualizar todos los vínculos afectados para asegurarse de que funcionan de forma correcta.
Preguntar a los expertos
Lea nuestro blog, conéctese con expertos, comente las novedades, las actualizaciones y los procedimientos recomendados más recientes.
Obtener ayuda de la comunidad
Pregunte y encuentre soluciones facilitadas por agentes de soporte técnico, MVP, ingenieros y otros usuarios de Office.
Sugerir una característica nueva
Estaremos encantados de escuchar sus sugerencias y comentarios. Comparta sus ideas. Su opinión nos importa.
Vea también
Correcciones o soluciones alternativas para problemas recientes en Access