[XL] Problèmes pour afficher dans nouveau classeur les résultats de ma requête [Résolu]

Messages postés
2
Date d'inscription
mardi 10 juin 2008
Dernière intervention
8 avril 2010
- 15 mars 2010 à 15:58 - Dernière réponse :
Messages postés
2
Date d'inscription
mardi 10 juin 2008
Dernière intervention
8 avril 2010
- 8 avril 2010 à 09:36
Hello World !
Voici ce qui m'amène : depuis un classeur principal où j'ai mon code VBA, je cherche à lancer une requête pour récupérer des informations d'une base ORACLE vers un nouveau classeur. Ça fonctionne sans problèmes si j'exécute le code séquentiellement depuis mon projet VBA. Mais lorsque je lie le lancement de la requête à un bouton du classeur principal, les données ne sont pas rafraîchies et ne sont pas affichées. En cellule A1, au lieu d'avoir un en-tête de colonne, j'ai DonnéesExternes_1.lecture des données.
L'affichage ne se fait qu'au sortir du code. Si j'applique des points particuliers à mes résultats, ils ne sont pas pris en compte.
Si je décide d'enregistrer mon nouveau classeur au moyen d'un ActiveWorkbook.SaveAs Filename:= etc., j'ai le message suivant : Cette action va annuler une commande d'actualisation des données. Voulez-vous continuer ?
Or je ne veux pas de cette intervention extérieure. Je veux tout simplement exporter les résultats de ma requête vers un nouveau classeur, l'enregistrer et terminer ainsi.
Autrement dit, pourquoi l'exécution du code lancer manuellement fonctionne-t-il parfaitement, mais ne dysfonctionne si elle est faite depyuis un bouton ?
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
- 15 mars 2010 à 20:01
3
Merci
Salut
A première vue, si les données ne s'affichent pas et qu'il te dit que la requète va être interrompue, c'est qu'elle ne doit pas être clôturée correctement.
Vérifie si tu as bien déchargé les objets ou refermé la connexion ou autre.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
2
Date d'inscription
mardi 10 juin 2008
Dernière intervention
8 avril 2010
- 8 avril 2010 à 09:36
0
Merci
Merci Jack !
En effet c'était bien un problème de connexion non fermée : encore merci de m'avoir mis sur la voie.
Il s'agissait pour mon cas d'ajouter "false" à Refresh(false). Il me semblait pourtant avoir essayé mais l'essentiel est là, et ça fonctionne.
Voici donc le code pour requêter facilement une base ORACLE directement depuis EXCEL via ODBC :
Dim sqlstring as String
sqlstring = "select..."
connecstring "ODBC;DSN toto;UID = toto;PWD = toto"
With ActiveSheet.QueryTables.Add(Connection := connecstring, _
   Destination := Range("A1"), Sql :=  sqlstring)
   .Refresh(false)
End With


Sujet clos.
Commenter la réponse de akr54

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.