Les lignes montrant que #SUPPRIMÉ
J'ai des lignes de données dans un tableau montrant que #SUPPRIMÉ sur un ordinateur lors de l'utilisation de l'Accès, mais ils sont beaux à la fois la base de données SQL et sur d'autres ordinateurs à l'aide de l'Accès. Il semble que la dernière 200 lignes. L'Accès des versions 2007 et ODBC MSJet pilotes air d'être le même & plus tard sur chaque ordinateur. Il a été suggéré de modifier toute PK ou FK est de type int, mais ils le sont déjà.
Des idées pour un correctif pour cela?
Vous devez vous connecter pour publier un commentaire.
Cela se produit lorsque les tableaux de la valeur de la clé primaire, dépasse la plage de MS Access prend en charge, d'habitude, si vous utilisez le "BigInt" le type de SQL Server, si vous cherchez seulement à lire les données puis il suffit de créer un "snap-shot" requête de la table et toutes les lignes s'affichent correctement, comme le "snap-shot" n'a pas besoin de lire tous les index.
Si vous devez mettre à jour les données dans ces lignes, à tout moment, alors je vous suggère d'utiliser un jeu d'enregistrements ADO à la place.
Envisager l'utilisation de numérique (18,0) au lieu de bigint pour la clé primaire de type de données dans SQL. MS Access peut résoudre efficacement la grand entier PK si elle est définie comme un type de données numérique sur le côté de SQL Server. J'ai rencontré ce même problème sur SQL 2008R2 avec Access 2010, où toutes les lignes affichées '#DELETED' lors de l'utilisation d'un bigint PK.
J'ai été à la connexion d'Accès extrémités avant de SQL Server 2000, 2008 R2, puis en 2014 pour des années sans problème. Après une panne de disque dur, j'ai réinstallé SQL Server 2014 Développeur sur un Windows 7 (64-bit) de l'ordinateur, et tout à coup, mon Access 2010, les formes se faisaient une redoutable #Supprimé dans tous les domaines lors du passage à un nouvel enregistrement ou en cliquant sur Enregistrer dans le ruban.
C'était bizarre parce que à l'identique de Windows 7 (64-bit) installation sur un autre ordinateur n'avait pas de problèmes. Eh bien, presque identiques. Après l'installation de SQL Server 2014 sur le nouveau disque dur, j'ai trouvé que le Native Client 11.0 pilote a été installé, et j'ai donc modifié chaînes de connexion ODBC à utiliser DRIVER=SQL Server Native Client 11.0 dans mon code VBA. J'ai immédiatement commencé à faire de la #Supprimé dans chaque champ d'un enregistrement inséré lors de l'utilisation d'un formulaire Access.
Enquête a révélé que la différence entre le " bon "de l'ordinateur qui a traité des enregistrements insérés correctement, et les "mauvais" de l'ordinateur qui les a #Supprimé était la présence/absence de Native Client 10.0 pilote. J'ai téléchargé la version 10.0 pilote à partir de Microsoft, installé et vérifié mon code pour assurer toutes les chaînes de connexion ODBC utilisé PILOTE=SQL Server Native Client 10.0.
Tout fonctionne bien maintenant, plus aucun #Supprimé problèmes.
Je veux bien juste à ajouter la solution qui a fonctionné pour moi.
J'ai relié certaines des Vues de la MS Access et ceux qui fonctionnent très bien. Après quelques temps, j'ai changé de type de celui de la colonne qui a été Entier avant et j'ai fait que
VARCHAR
. Comme cette colonne est une Clé Primaire de ma table (que j'ai choisi comme clé primaire, tandis que l'ajout de Vue dans MS Access), il a commencé à montrer "#SUPPRIMÉ" après cette modification. Pour résoudre ce problème je viens de ré-exécuté même point de Vue avec "ALTER VIEW
" déclaration et utilisésp_refreshview
'VIEW_NAME'.Après avoir fait cela, il a commencé à travailler pour moi.
Espérons que cela aide quelqu'un à faire face à la même question.
J'ai eu le même #SUPPRIMÉ problème, et c'est parce que la clé primaire de type de données a été bigint . Comme je l'ai été de l'interrogation d'une table créée par une application tierce, je n'étais pas en mesure de modifier le type de données, j'ai donc créé une vue sur la table et utilisé en FONTE pour convertir le type de données à int (après avoir vérifié que les valeurs dans le tableau ne serait pas provoquer un dépassement de capacité).
Si vous définissez une clé primaire sur un terrain où le SQL est à l'aide de la fonction ROW_NUMBER (), vous pouvez le convertir en int. Par défaut, la fonction ROW_NUMBER() est int64 (bigInt).
Cet étrange comportement peut se produire en pointant l'Accès à un SQL 2017 base de données (déjà attiré l'attention sur un SQL 2008R2 base de données). Lorsque nous avons créé une nouvelle source de données avec une mise à jour du Pilote ODBC de SQL Native Client 11), le comportement de retour à la normale.
Il y a une option pour prendre en charge le type de données BigInt sur les nouvelles versions de l'Accès.
Appliquer cette option, puis actualisez votre table.