Carte du site
 Remerciements
 Netiquette
 Bugs
 Tables
 Requêtes
 Formulaires
 États (rapports)
 Modules
 APIs
 Chaînes
 Date/Time
 Général
 Ressources
 Téléchargeables

 Termes d'usage

Tables: Ne pas se laisser piquer par le bug  Synonym !

Author(s)
Dev Ashish

Ne vous laissez pas piquer par le bug  Synonym !

    Lorsqu'on utilise une table attachée par  ODBC, comme vous le savez, il nous faut fournir un index pour être capable de modifier les données. Lorsqu'on crée un lien, manuellement, vers une table synonyme en Oracle, on nous demande de choisir un index. Si on ne le fait pas, aucune erreur ne survient, mais la table ne devient accessible qu'en lecture seulement.

    Le problème est encore plus compliqué lorsqu'on crée ou manipule ces liens de par le code VBA: le lien sera crée, sans demande d'index et toutes les tables rafraîchies sont maintenant en lecture seule..

    La seule solution que j'ai trouvé.... N'utilisez pas de synonymes, connectez directement à la table actuelle.

    Pour ce que cela vaut, je pense que c'est parce que le pilote ODBC, lorsqu'il retourne l'information entre une table visible et un synonyme, depuis Oracle, aucune distinction n'est faite entre les deux. Quand Access essaie de s'attacher à un synonyme, il pense s'attacher à une table, mais, avec raison, ne trouve pas d'index. Manuellement, on se retrouve avec une demande d'information additionnelle, mais cela ne se produit pas si on passe par le code.

--Soumis par Steve Jorgensen--

Vous pouvez utiliser une requête DDL (Data Definition Language) pour définir une clé à une table attachée/liée à une vue en  Access 2, 95, ou 97. Access 97 est la première version qui permet également de définit manuellement la clé lorsqu'une connexion manuelle est crée.

La requête DDL fonctionne également sous Access 97. Simplement exécuter la requête qui contient la commande de définir une clé primaire sur le lien. Étant appliqué sur un lien, JET interprète cet énoncé en spécifiant que champs personnalisent chaque enregistrement. Je sais que cette méthode fonctionne, car je l'utilise fréquemment.

Exemple:

create index ProdBatchID on vwInventory(ProdBatchID) with primary

© 1998-2001, Dev Ashish, All rights reserved. Optimized for Microsoft Internet Explorer