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 :

Problème de lenteur pour importer des données dans Excel à partir un fichier Access dans SharePoint


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 55
    Points : 43
    Points
    43
    Par défaut Problème de lenteur pour importer des données dans Excel à partir un fichier Access dans SharePoint
    Bonjour,
    Je tente d'améliorer la vitesse pour la fonction ci-dessous qui permet de faire une recherchev dans Access à partir d'un fichier Excel. Lorsque je place le fichier Access dans un dossier de mon ordinateur, c'est très rapide, mais lorsque je change le chemin d'accès de la variable Fichier pour le chemin vers Sharepoint, il prend environ 20 secondes à afficher la valeur. Compte tenu que j'ai plusieurs données à aller chercher dans Access, c'est très long. De plus, je ne peux pas laisser mon fichier Access dans un dossier de mon ordinateur. Je dois le mettre dans Sharepoint pour que les autres utilisateurs puisse y avoir accès. Est-ce qu'il y a une méthode pour améliorer la vitesse?


    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
    Function RecherchevAccess(ChampRecherche, valeurRecherche, champRetour, tbl, base)
        Dim GenereCSTRING As String
        Dim rs
        Dim Connexion
     
    Fichier = "\\sharepoint.rr.ca\Shared Documents" & "\" & base
     
    GenereCSTRING = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fichier & ";Persist Security Info=False"
      Set Connexion = CreateObject("ADODB.Connection")
     Connexion.Open GenereCSTRING
         Sql = "Select " & champRetour & " FROM " & tbl & " Where " & _
            ChampRecherche & "='" & valeurRecherche & "'"
        Set rs = CreateObject("ADODB.Recordset")
     rs.Open Sql, Connexion, 1, 3
        If rs.EOF = False Then RecherchevAccess = rs(champRetour)
        rs.Close
        Connexion.Close
    End Function

  2. #2
    Invité
    Invité(e)
    Par défaut
    tu te connecte et te déconnecte quand tu rentre et sort de ta fonction?

    chaque cellule tape dans une base différente?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
      Connexion.Close
      Set Connexion = Nothing
    End Sub
     
    Private Sub Workbook_Open()
     Set Connexion = CreateObject("ADODB.Connection")
    End Sub
    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
    public     Connexion
     
    Function RecherchevAccess(ChampRecherche, valeurRecherche, champRetour, tbl, base)
        Dim GenereCSTRING As String
        Dim rs
     
    If Connexion.State = 0 Then 
         Fichier = "\\sharepoint.rr.ca\Shared Documents" & "\" & base
        GenereCSTRING = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fichier & ";Persist Security Info=False"
         Connexion.Open GenereCSTRING
    end if
         Sql = "Select " & champRetour & " FROM " & tbl & " Where " & _
            ChampRecherche & "='" & valeurRecherche & "'"
        Set rs = CreateObject("ADODB.Recordset")
     rs.Open Sql, Connexion, 1, 3
        If rs.EOF = False Then RecherchevAccess = rs(champRetour)
        rs.Close
     
    End Function
    Images attachées Images attachées  
    Dernière modification par Invité ; 16/04/2015 à 16h47.

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    Merci. En effet, je n'avais pas mis la partie dans "This Workbook". Ça l'améliore un peu: ça prend maintenant 12 secondes. Les formules de chaque cellule vont toujours pointer vers la même base de données Access. Est-ce que je comprends bien qu'on pourrait faire la connexion un seule fois au lieu de le faire à chaque fois qu'on utilise la fonction?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Oui et c'est bien la solution que je te propose dans le poste précédant.

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    Merci, c'est super! J'ai fait d'autres tests en changeant la valeur recherchée dans la formule pour un grand nombre de cellules en utilisant rechercher et remplacer. Une fois la première connexion établie, les suivantes sont quasi instantanées.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Oui en effet une fois que tu as ouvert le tuyau c'est l'autoroute!

    C'est au péage que ce forme les bouchons!

    Avant tu multipliais les accès réseau!
    Dernière modification par Invité ; 16/04/2015 à 22h57.

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

Discussions similaires

  1. Code VBA pour importer des données vers Excel
    Par thanmirt dans le forum SDK
    Réponses: 1
    Dernier message: 09/04/2011, 17h53
  2. Réponses: 4
    Dernier message: 11/03/2011, 14h45
  3. [AC-2007] Importer des données MS Excel 2007 vers MS Access 2007
    Par stongm dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/02/2009, 13h33
  4. Réponses: 2
    Dernier message: 19/12/2006, 18h37
  5. Importer des données de Excel dans pages .ASP
    Par sperron dans le forum ASP
    Réponses: 8
    Dernier message: 24/03/2006, 16h31

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