IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

QueryTables Refresh probleme


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 8
    Par défaut QueryTables Refresh probleme
    Bonjour,
    j'utilise QueryTables pour obtenir des resultats de requetes sous Excel, tout fonctionne jusqu'à la 64ème requete.
    Quelque soient les requetes effectuées par l'utilisateur, ça plante toujours à la 64ème requete en m'affichant:
    Erreur d'execution '1004':
    Erreur définie par l'application ou par l'objet
    et le debogage se positionne sur le .Refresh de mon code ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Set appAccess = CreateObject("Access.application")
     
    BOUCLE FOR blablabla
       MySql = "SELECT blablabla; "
           With ActiveSheet.QueryTables.Add(Connection:=Array( _
            "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;" _
            & "Data Source=" & Application.ActiveWorkbook.Path & "/base_blabla.mdb"), _
            Destination:=Cells(100, ColExcel))
            .CommandType = xlCmdSql
            .CommandText = MySql
            .Refresh
        End With
    NEXT blabla
    appAccess.Quit
    Set appAccess = Nothing
    Et des que je referme le fichier et que je reouvre le fichierapres cette erreur au bout de la 64eme requete, tout remarche ...jusqu'a ce que je reeffectue 64 requetes.
    Comment faire?
    MERCI !

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    le message d'erreur c'est blalblabla non ..?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 8
    Par défaut
    Oui, comment as-tu deviné?

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    et la valeur de MySql à ce moment la cela devient quoi..?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 8
    Par défaut
    Bon, je poste tout le code, mais ça n'avancera personne; c'était juste pour épurer:
    donc tout marche jusqu'à la 64ème requete, qui affiche une erreur sur le .REFRESH !!


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    For i = 1 To NbTables
        Var = 2
        While Cells(Var, i).Value <> ""
            For j = 1 To NbPays
                MySql = "SELECT " & Table(i) & ".[" & Cells(Var, i).Value & "] FROM " & Table(i) & " WHERE (" & Table(i) & ".Pays)='" & Pays(j) & "' ORDER BY " & Table(i) & ".Pays, " & Table(i) & ".Année; "
                Nom_Pays(NbVar) = Pays(j)
                NbVar = NbVar + 1
                'affiche le contenu de la requete sur la base base_jumbo.mdb
                ColExcel = ColExcel + 1
                With ActiveSheet.QueryTables.Add(Connection:=Array( _
                    "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;" _
                    & "Data Source=" & Application.ActiveWorkbook.Path & "/base_1.mdb"), _
                    Destination:=Cells(1, ColExcel))
                    .CommandType = xlCmdSql
                    .CommandText = MySql
                    .Refresh
                End With
            Next j
            Var = Var + 1
        Wend
    Next i
    appAccess.Quit
    Set appAccess = Nothing

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ben tu nous as pas donné la valeur de MySql.. sur plantage.. , sinon qu'appelle tu la 64 ° requête ..? la 64° fois ou tu appelle le code ..?

Discussions similaires

  1. [XL-2010] Erreur 1004 sur ligne de code vba QueryTable.refresh
    Par Darkfiend dans le forum Excel
    Réponses: 0
    Dernier message: 17/01/2012, 12h08
  2. [XL-2007] Err.Number lors exécution Selection.QueryTable.Refresh BackgroundQuery:=False
    Par fguilbau dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/11/2009, 17h19
  3. [Refresh] Probleme de mise a jour graphique
    Par Clorish dans le forum Composants VCL
    Réponses: 4
    Dernier message: 25/07/2005, 18h44
  4. Réponses: 6
    Dernier message: 25/04/2005, 14h49
  5. Probleme de Refresh avec TQuery et DBGrid
    Par insoo dans le forum C++Builder
    Réponses: 7
    Dernier message: 25/11/2003, 17h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo