Bonjour,
Je viens de migrer notre base .accdb vers sql server.
J'ai une fonction qui lie mes tables sql dans mon application acces :
Toutes mes interfaces fonctionnent correctement cependant j'ai des lenteurs qui se sont accentuées depuis cette migration.
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
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 :
Ensuite je viens associer cette requête au RecordSource de ma form :
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"
Je travaille exclusivement en mode feuille de donnée et il y'a environ 3000 lignes dans certains cas à afficher.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Gvar_FormGestionOF2(Gvar_NbFormGestionOF2).RecordSource = StrRequest
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"
Le résultat est immédiat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Gvar_FormGestionOF2(Gvar_NbFormGestionOF2).RecordSource = "Query1"
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 :
en mode requête via l'éditeur access
Je vois la command BatchStarting qui pour mois est la différence majeur.
Merci
Partager