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 :

[BDD] fichier lié à une bdd


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Par défaut [BDD] fichier lié à une bdd
    Bonjour,

    J'ai un fichier excel lié à une bdd access qui lance une requete et récupère les données de la requete dans une feuille.
    Seulement, je trouve cela TRES LENT.

    Voici le code que j'utilise:

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
        Dim dbAccess As Access.Application
        Dim table As Recordset
        Dim maRequete As String
        Dim fichierRetoursLocal As Workbook
        Dim fichierRetoursGlobal As Workbook
        Dim ligne As Integer
     
        Set dbAccess = New Access.Application
        dbAccess.Visible = False
        dbAccess.OpenCurrentDatabase (TextBox35.Value)
     
        ligne = 2
        maRequete = TextBox38.Value
        Set fichierRetoursLocal = Workbooks.Open(TextBox36.Value)
        Set fichierRetoursGlobal = Workbooks.Open(TextBox37.Value)
        Set table = dbAccess.CurrentDb.OpenRecordset(maRequete)
     
        'vider le fichier local
        fichierRetoursLocal.Sheets(1).Range("A2:F65535").Clear
     
        'remplir avec les données de la requete
        Do While Not table.EOF
            With fichierRetoursLocal.Sheets(1)
                .Range("A" & ligne).Value = table.Fields(0).Value
                .Range("B" & ligne).Value = table.Fields(1).Value
                .Range("C" & ligne).Value = table.Fields(2).Value
                .Range("D" & ligne).Value = table.Fields(3).Value
                .Range("E" & ligne).Value = table.Fields(4).Value
                .Range("F" & ligne).Value = table.Fields(5).Value
            End With
            table.MoveNext
            ligne = ligne + 1
        Loop
    Savez-vous s'il y a une autre méthode plus rapide ?
    (le résultat de la requete comporte environ 40000 lignes)

    edit: je viens de chronométrer: ça prend environ 30 à 40secondes par tuple...

    Merci

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Tu as probablement des cellules calculées dans ton classeur.
    Désactive le calcul avant ton import et remets-le après.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Membre éprouvé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Par défaut
    Effectivement, j'ai testé en désactivant le calcul, ça marche.
    Bien vu AlainTech

    Merci et bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment synchroniser une BDD MySQL avec une BDD SQLite?
    Par newjc dans le forum ActionScript 3
    Réponses: 3
    Dernier message: 29/07/2009, 12h22
  2. Réponses: 10
    Dernier message: 12/06/2006, 16h45
  3. Récupérer le chemin du fichier d'une bdd
    Par [DreaMs] dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/04/2006, 16h58
  4. [Type de données]Comment sauvegarder fichiers dans une bdd?
    Par splinternabs dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 06/04/2006, 15h14
  5. Upload et enregistrement du nom du fichier dans une bdd
    Par johan_barbier dans le forum XMLRAD
    Réponses: 8
    Dernier message: 26/09/2005, 12h02

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