Symptômes
Dans Microsoft Access, vous pouvez rencontrer des performances lentes en utilisant des requêtes directes en tant que tables sources dans d’autres requêtes.
Cause
Microsoft Access ne stocke pas la définition d’une requête directe. Par conséquent, la requête directe peut être exécutée à différents moments pour récupérer des informations liées à sa définition. Lorsque l’exécution de la requête directe prend beaucoup de temps, Access semble se bloquer pendant l’exécution de la requête directe.
Résolution
Selon l’endroit où vous remarquez le problème dans Access, plusieurs méthodes sont disponibles pour éviter ce problème.Modifications générales :
-
Améliorez les performances des requêtes directes pour réduire le temps nécessaire à l’exécution de la requête.
-
Au lieu d’utiliser une requête directe, créez une vue dans SQL Server et liez cette vue à Access en tant que table liée.
Scénarios spécifiques :Conception d’une requête :
-
Apportez des modifications de conception en mode SQL Access plutôt qu’en mode Création (En mode Création de requête, vous pouvez modifier la vue en mode SQL en ouvrant d’abord la requête en mode Création. Accédez ensuite à la section Résultats sous l’onglet Création du ruban.)
-
Le problème affecte les requêtes enregistrées. Vous pouvez donc ouvrir votre requête existante dans la vue SQL Access, copier la syntaxe SQL, créer une requête, coller la syntaxe SQL dans la vue SQL, puis modifier la requête en mode Création. Vous serez en mesure de concevoir la requête sans problème jusqu’à ce que vous l’enregistrez.
Ouverture de formulaires ou exécution de requêtes :
-
Remplacez la propriété de type recordset par Instantané. (En mode Création, exposez la feuille de propriétés à partir de l’onglet Création du ruban sous le groupe Afficher/Masquer)
Affichage des rapports :
-
Modifier le rapport pour utiliser la requête directe comme source d’enregistrement