Dernière mise à jour : 23 janvier 2020
PROBLÈME
Lors de la création d’un lien vers une table dans SQL Server comportant une colonne identité, Access l’identifie habituellement en tant que colonne de type AutoNumber.
Dans les builds du Canal actuel (16.0.12325) de la version 1912 d'Office 365 et Office 2016 et 2019, les colonnes d'identité ne sont pas identifiées de manière correcte et seront plutôt reconnues seulement en tant que nombre.
Cela se produit lors de la création de liens par l'intermédiaire de l’interface utilisateur ou du code, mais uniquement pour les nouveaux liens. Les liens existants ne sont pas affectés, sauf en cas d'actualisation du lien.
Access utilise l’identification appropriée d’une colonne d’identité pour plusieurs raisons, ce qui peut affecter les applications de différentes manières.
Par exemple, une colonne d'identité est généralement utilisée pour identifier un enregistrement récemment ajouté. Lorsque la colonne d'identité n’est pas utilisée, Access peut ne pas être en mesure de retrouver correctement la ligne nouvellement ajoutée, ce qui entraînera l'affichage des champs de cette ligne comme étant #Supprimés.
Il est possible de rencontrer des problèmes similaires lorsque vous utilisez la propriété Recordset.LastModified pour récupérer les valeurs du dernier enregistrement ajouté. Le code ci-après :
Set rst = CurrentDb().OpenRecordset("tblWithIdentityColumn")
rst.AddNew
rst!CompanyName = "Contoso"
rst.Update
rst.Bookmark = rst.LastModified
MsgBox rst!CompanyName
Peut engendrer l’erreur 3167 :
Dans les deux cas, l’enregistrement est correctement ajouté, mais Access ne parvient pas à le retrouver.
En règle générale, Access ne tient pas compte des tentatives de mise à jour directe de la colonne identité. Elle autorise néanmoins la tentative dans ces builds, mais elle échoue et génère un message d’erreur :
[SQL Server] Impossible d’insérer une valeur explicite pour la colonne d'identité dans la table « tblOrders » lorsque IDENTITY_INSERT est défini sur OFF (#544).
ÉTAT : RÉSOLU
Le correctif corrigeant ce problème est désormais disponible pour la version 1912. Vous devrez peut-être forcer explicitement une mise à jour pour recevoir le correctif. Le numéro de build corrigée doit être 12325.20344.
Si vous utilisez Insider Slow (version 2001) ou Insider Fast (version 2002). Le correctif n’est pas encore distribué dans ces canaux. vous pouvez donc choisir d'aller vers le Canal actuel.
Remarque : Après avoir modifié la version, vous devez actualiser tout lien affecté pour vous assurer qu'il se comporte à nouveau correctement.
Demandez aux experts
Communiquez avec des experts, discutez des actualités, des mises à jour et des meilleures pratiques, et lisez notre blog.
Obtenir de l’aide de la Communauté
Posez une question et trouvez des solutions avec les agents de support technique, les MVP, les ingénieurs et les autres utilisateurs d’Office.
Suggérer une nouvelle fonctionnalité
Vos suggestions et commentaires sont les bienvenus. Faites-nous part de vos idées. Nous sommes à votre écoute.
Voir aussi
Correctifs ou solutions de contournement pour des problèmes récents dans Access