Info requete terminé [Résolu]

Signaler
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008
-
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008
-
Bonjour,
J'ai une requete qui s'execute et qui va chercher sur un serveur des données et les importes sur une feuille.
Cette opération est relativement longue selon la quantité de données.
je voudrais executer cette requete via vba avec une validation de userform mais je voudrais récupérer une information comme quoi la requete est bien fini et que toutes les données récupérables sont dans la feuille.
Faut-il lancer une fonction avec ligne de code ou existe-t-il un bit qui passe a 1 quand la requete est terminé.

Merci

7 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
ok donc base oracle par composant (ou référence) adodc par connexion odbc dans excel.

logiquement je dirais que la requête est terminée avant ton refresh.
essaye un msgbox à cet endroit, voir s'il "vient vite" ou pas...

par contre (mais ne touchant pas trop à VBA...), je suis étonné que .commandtext accepte un  TABLEAU VARIANT.
idem pour l'abscence de "FROM HIST"
idem pour le fait que je ne vois pas comment tes zones sont linkées à la requête

j'vais pas trop pouvoir t'aider
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
salut,

l'execution de requêtes en VBA (et VB6) est forcément synchrone.

la récupération est donc terminée à ton WEND (pour un while not .eof)

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

salut pcpt,
Merci de ta réponse qui est sans doute ce que j'attendai mais je débute un peu en vba et je n'ai RIEN compris.
Pourrais-tu dévelloper avec un exemple de requete ou je ne sait comment.
Merci
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
dans l'ordre, VBA , le A veux dire Application.
çà peut donc être dans access comme excel, word, etc....

à supposer excel, se connectant à une base distante (mysql par exemple), la suite à venir.

mais si tu es sous access avec une base access sur un réseau, aucune idée si la suite t'aidera.
(c'est pourquoi il est si utile de présicer le plus possible ses questions^^)

bref, on disait excel et mysql
J'ai une requete qui s'execute et qui va chercher sur un serveur des données et les importes sur une feuille

si tu as la requête et qu'elle exporte, c'est que c'est fonctionnel....

à supposer que tu ne passes pas par un contrôle (mais bien par code, encore une info manquante!!), de tête tu dois avoir un code qui ressemble à çà :

ssql="SELECT * FROM MaTable"
rs.execute ssql, cnx

with rs
while not .eof
debug.print "======"
for i=0 to .fields.count-1
debug.print .fields(i).value
.movenext
next i
wend

donc après ce WEND, la requête est executée, il n'y a pas eu d'autre évènement "pendant le traitement"
(il y a peut-être des erreurs de syntaxe...)

c'est plus clair?
tant que le code tourne (boucle), il travaille.....
donc en sortie de boucle, il a fini ^^

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

Rebonjour,
Merci de ta reréponse et dsl de ne pas avoir été assez précis.
Je travail sur excel et je sais pas si c'est une requete sql mais je fait Données > Données externe > Créer une requete Je selectionne dans l'onglet base de donnée "masource" la connection se fait par Microsoft ODBC je tape nom d'utilisateur mot de passe et nom de serveur, je selectionne la table que je souhaite importer et voila.
Je vais essayer de me débrouiller avec ce que tu me propose.
Merci encore et je validerai ta réponse si ca marche.
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

J'ai donc ceci :
With Selection.QueryTable
        .Connection = _
        "ODBC;DRIVER={Microsoft ODBC for Oracle};UID=moi;PWD=mdp;SERVER=monserveur;"
        .CommandText = Array( _
        "SELECT HIST.NO_LOT, HIST.DT_DEB, HIST.DT_FIN, HIST.MATIERE"_
        )
        .Refresh BackgroundQuery:=False
End With
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

Merci PCPT,
Apparament j'ai bien fini la requete APRES mon refresh (pas avant). Donc je valide la réponse quand meme.
Merci Beaucoup.