Requète SQL et QueryTable
Bonjour, voilà j'ai repris le code d'une application Excel qui fonctionne assez bien mis à part que plus je lance la méthode utilisé pour exécuter les requête plus Excel devient instable. Au point où il n'arrête pas de me balancer des messages comme quoi il n'a pas assez de ressources disponibles ou qu'il n'a pas assez de mémoire pour afficher un entier...
Je ferme Excel et il continu de me polluer l'existence : il reste dans la liste des tâches (gestionnaire des tâches), me prend de 150 à 200 Mo de Ram, et toute la puissance de mon processeur (99%)...
De là je me demandais s'il n'y avait pas quelque chose dans la méthode qui lance les requêtes qui reste en mémoire à chaque fois que je la lance !
Voilà le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| Sub ConnectListe()
Dim Chemin As String
Dim Fichier As String
Dim NomPilote As String
Dim ChaineConnection As String
Dim tabRequete() As Variant
Dim i As Integer
tabRequete = Array("req1", _
"req2", _
"req3")
Chemin = ThisWorkbook.Path
Fichier = ThisWorkbook.Name
NomPilote = fRequete.Range("znRequetePilote")
ChaineConnection = "ODBC;DSN=" & NomPilote & ";DBQ=" & Chemin & "\" & Fichier & ";DefaultDir=" & Chemin & ";DriverId=790;MaxBufferSize=2048;PageTimeout=5;"
For i = LBound(tabRequete) To UBound(tabRequete)
fRequete.Range(tabRequete(i)).QueryTable.Connection = ChaineConnection
fRequete.Range(tabRequete(i)).QueryTable.CommandText = fRequete.Range(tabRequete(i)).Cells(1, 1).Offset(-2, 0)
fRequete.Range(tabRequete(i)).QueryTable.Refresh
Next i
End Sub |
Merci pour l'aide que vous pourrez m'apporter.
Edit : si vous connaissez une solution plus souple, plus légère je suis preneur !