Requete sql et clear des données

  • Initiateur de la discussion Initiateur de la discussion loopix
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour