Applies ToAccess pour Microsoft 365 Access 2021 Access 2019 Access 2016

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.

Affiche que la colonne identité est identifiée comme un champ 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.

La colonne identité n’est pas correctement identifiée en tant que AutoNumber

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.

Ligne affichant des champs incluant la mention Supprimé

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 :

Erreur indiquant que l’enregistrement est supprimé.

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.

Icône Experts (cerveau, engrenages)

Demandez aux experts

Communiquez avec des experts, discutez des actualités, des mises à jour et des meilleures pratiques, et lisez notre blog.

Communauté technique Microsoft

Icône Communauté

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.

Forum de réponses d’Office

Icône Proposition de fonctionnalité icône (ampoule, idée)

Suggérer une nouvelle fonctionnalité

Vos suggestions et commentaires sont les bienvenus. Faites-nous part de vos idées. Nous sommes à votre écoute.

Commentaires

Voir aussi

Correctifs ou solutions de contournement pour des problèmes récents dans Access

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.