VBA MAJ une source externe SQL requete

Bonjour,

Je vous demande le secoure parce que j'ai essayé plein de moyen, mais c'est toujours pas réussit.

Je voudrais mettre à jour une source externe avec VBA, ensuite copier ces données là dans une feuille.

sachant que ces données de connexion externe variées en fonction de 2 paramétrés (date début et date de fin).

avec le code vba suivant, Le système n'attend pas les données soient mises à jour, il copie les anciennes données, donc c'est faut!!

Application.ScreenUpdating = False
ActiveWorkbook.Connections("Lancer la requête à partir de KEOPS").ODBCConnection.Refresh  
ActiveWorkbook.RefreshAll
Application.ScreenUpdating = True
Application.Wait now + TimeValue("0:00:5")

J'ai essayé le code suivant, ca rend la même chose.

With ActiveWorkbook.Connections("Lancer la requête à partir de KEOPS"). _
        ODBCConnection
        .BackgroundQuery = True
        .CommandText = Array( _
        "SELECT  KF$VOLS1.KVO_CODAVION,  KF$VOLS1.KVO_DEPGM" _
        , _
         & "FROM KEOPSDTA.KF$VOLS1" & Chr(13) & "" & Chr(10) & "where  KF$VOLS1.KVO_DEPGMT>= ?" & Chr(13) & "" & Chr(10) & "and KF$VOLS1.KVO_DEPGMT<=?" )

        .Connection = "ODBC;DSN=KEOPS;"
        .RefreshOnFileOpen = False
        .SavePassword = False
        .SourceConnectionFile = ""
        .SourceDataFile = ""
        .ServerCredentialsMethod = xlCredentialsMethodIntegrated
        .AlwaysUseConnectionFile = False
    End With
    With ActiveWorkbook.Connections("Lancer la requête à partir de KEOPS")
        .name = "Lancer la requête à partir de KEOPS"
        .Description = ""
    End With
    ActiveWorkbook.Connections("Lancer la requête à partir de KEOPS").Refresh
  ActiveWorkbook.RefreshAll 

Pourriez vous me donner un peu de conseil...

Merci d'avance

bonjour,

Heu... J'suis pas très familiarisé avec ce genre de sport mais...

Je crois que pour ce genre de travail il est préférable d'utiliser :

BackgroundQuery = False

Ensuite tu peux essayer quelque chose sur la base de ça :

Public Sub Refresh()
'refresh
ActiveWorkbook.RefreshAll
Do Events 'tester avec ou sans
suite = Now + TimeValue("00:00:10") 'hh:mm:ss
    Application.OnTime suite, "TaMacroSuiteDuProg"
End Sub

Hum... C'est juste l'idée hein... Tu lances ton refresh et tu demandes à VBA de lancer ta macro de travail dans 5" ou 10"

Je suis convaincu qu'il y a des procédures plus speed mais désolé, je ne suis assez pointu pour aller plus loin...

A+

galopin01,

Ca fonctionne ton procédure de Refresh!!!!!!

Merci merci merci!!!!

T'es génal!!

Rechercher des sujets similaires à "vba maj source externe sql requete"