Bonjour,

Je viens de migrer notre base .accdb vers sql server.

J'ai une fonction qui lie mes tables sql dans mon application acces :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
DoCmd.TransferDatabase acLink, "ODBC Database", "ODBC;Driver={ODBC Driver 17 for SQL Server};Server=*******;Database=*******;Uid=******;Pwd=******", acTable, d!TableName, d!TableName, False, True
Toutes mes interfaces fonctionnent correctement cependant j'ai des lenteurs qui se sont accentuées depuis cette migration.
Afin d'avoir des interfaces IHM communes, j'instancie des form avec différents filtres.

Je construis un string de requête de la manière suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
StrSelect = "SELECT OrdresFabrications.*, OrdresFabrications.EnControle, OrdresFabrications.NumCmd,OrdresFabrications.NumAffaire, OrdresFabrications.[Sous-Traitant], OrdresFabrications.NumAppelOffre, OrdresFabrications.Solde, OrdresFabrications.EnControle, OrdresFabrications.CodeArticle "
 
      Select Case NomForm
 
      Case "Form Général - Non Soldé"
            StrRequest = StrSelect & _
                         "FROM OrdresFabrications " & _
                         "WHERE (((OrdresFabrications.Solde) = False)) " & _
                         "ORDER BY OrdresFabrications.NumOF"
Ensuite je viens associer cette requête au RecordSource de ma form :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Gvar_FormGestionOF2(Gvar_NbFormGestionOF2).RecordSource = StrRequest
Je travaille exclusivement en mode feuille de donnée et il y'a environ 3000 lignes dans certains cas à afficher.
Le temps d'ouverture de la form est très long, environ de 30 à 40sec.

j'ai fait la même chose en faisant une requête access via l'éditeut et en utilisant "SQL Direct" qui correspond au "Pass-Throught"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Gvar_FormGestionOF2(Gvar_NbFormGestionOF2).RecordSource = "Query1"
Le résultat est immédiat.

Avez-vous une méthode pour faire la même chose depuis mes requêtes en VBA.

PS: Après analyse du SQL Profiler en mode requête VBA :
Nom : PROFILER_khj6i7X3gE.png
Affichages : 392
Taille : 79,2 Ko
en mode requête via l'éditeur access
Nom : PROFILER_5oz9PPON9t.png
Affichages : 379
Taille : 60,8 Ko

Je vois la command BatchStarting qui pour mois est la différence majeur.

Merci