Requete sql et clear des données

L

loopix

Guest
Salut,
j'insère des valeurs dans les cellules à l'aide de querytables.add
avec des select d'une table SQL serveur.
/************************************/
code:

connectionstring = "ODBC;DRIVER=SQL Server;SERVER=mon_serveur;UID=mon_user;PWD=mon_pwd;APP=Microsoft Open Database Connectivity;DATABASE=ma_base;Regional=Yes"

SQLSTRING = "set nocount on "
SQLSTRING = SQLSTRING + "select mon_champs from ma_table where moncritere = valeur "


With ActiveSheet.QueryTables.Add(Connection:=connectionstring, Destination:=Range("A1"))
.CommandText = SQLSTRING
.AdjustColumnWidth = False
.Refresh (False)

End With
/*************************************/

Par contre malgrés un clear, excell garde en mémoire les données externe !
/*************************************/
code:
Columns("A:C").Select
Selection.ClearContents
Selection.QueryTable.Delete

/************************************/
Si je fais la même chose mais à la main (selection puis suppr puis ok pour supprimer les données externe contenu dans la selection, pas de données en mémoire.

Conclusion mon fichier s'allourdi anormalement !
Et si je fais une actualisation des données externe alors c'est magnifique ...
Ca lance toute les anciennes requêtes du coup => X connexions simultanées à MS SQL et paffff on prend toute les connexions actives dispos de MS SQL et y la c'est bien crouté !!!!

Comment éviter la mémorisation des querytables ?

Merci de votre aide
 
P

Pascal76

Guest
Salut

Es-tu sûr de n'avoir des données que dans les 3 colonnes A à C ?

Personnellement je fais ce code pour effacer les données et la requête pour être sûr de tout effacer.

Range("A1").Select
Cells.Select
Selection.ClearContents
Selection.QueryTable.Delete

Tu me tiens au courant

Pascal
 
L

loopix

Guest
Merci Pascal pour ta réponse mais ca ne marche pas mieux :(

Mon soucis c'est que ca marche si je fais la sélection à la main et ensuite suppr.
Il me demande si je veux supprimer les données externes associés.
Mon fichier est bien vidé.

Je fais la même chose en enregistrant la macro (delete).
J'execute ma macro pour alimenter mon fichier puis je lance la macro de de
lete. Il efface bienles valeurs mais garde en mémoire les querytables malgrés le Selection.QueryTable.Delete.

C'est peut être dans la définition des cellules qui contiennent les query tables ?

J'ai oublié de préciser que j'avais mis comme propriété au querytable suivant:
.RefreshStyle.xlOverwriteCells

Si quelqun a une idée , je suis preneur.
 

Statistiques des forums

Discussions
313 066
Messages
2 094 955
Membres
106 136
dernier inscrit
MilieBZH