Info requete terminé

Résolu
drik56 Messages postés 127 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 8 juillet 2008 - 21 avril 2008 à 14:08
drik56 Messages postés 127 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 8 juillet 2008 - 23 avril 2008 à 08:40
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

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
22 avril 2008 à 23:57
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
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
21 avril 2008 à 22:06
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
0
drik56 Messages postés 127 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 8 juillet 2008
21 avril 2008 à 22:49
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
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
21 avril 2008 à 23:31
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
drik56 Messages postés 127 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 8 juillet 2008
22 avril 2008 à 08:24
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.
0
drik56 Messages postés 127 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 8 juillet 2008
22 avril 2008 à 09:41
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
0
drik56 Messages postés 127 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 8 juillet 2008
23 avril 2008 à 08:40
Merci PCPT,
Apparament j'ai bien fini la requete APRES mon refresh (pas avant). Donc je valide la réponse quand meme.
Merci Beaucoup.
0
Rejoignez-nous