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

Excel Discussion :

Connexions de données / Vba / changement de repertoire de fichier.mdb [XL-2010]


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Connexions de données / Vba / changement de repertoire de fichier.mdb
    Bonjour,
    je travaille sur des fichiers exels , je gère la connexion de requete et d'actualisation via données->connexion en suite y'a les requetes que j'ai ajouté.
    Mon probleme est le suivant :
    Lorsque je change l'emplacement de ma base de données access (resto.mdb par exemple)
    et que je relance l'actulisation ça plante parceque "resto.mdb" n'est pas au bon endroit.
    donc je suis obligé d'aller a chaque dans ma connexion de donnée changer l'emplacement de ma base pourque les requetes fondtionnent. Imaginer si j'ai plus de 100 requtes à gerer je serai obligé de l'emplacement pour 100 requetes (ce qui n'est pas evident) .


    Y'a t-il un moyen plus facile pour gerer ce probleme ?
    Perso j'ai utilisé l'enregistreur vba et ça marche , mais lorsque je supprime une connexion via données->connexion , le code vba ne marche plus pour cette connexion
    Merci pour votre reponse.
    ci dessous le ocde


    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
    Public Sub pilotage()
    '
    ' Macro7 Macro
    '
     
    ' Pilotage (connexion et connexion1)
     
     
     
         With ActiveWorkbook.Connections("Connexion1").ODBCConnection
            .BackgroundQuery = False
            .CommandText = Array( _
            "SELECT R_TYPE_FISCALITE.CODE_PORTEFEUILLE, R_TYPE_FISCALITE.TYPE_FISCALITE" & Chr(13) & "" & Chr(10) & "FROM R_TYPE_FISCALITE R_TYPE_FISCALITE" _
            )
            .CommandType = xlCmdSql
            .Connection = _
            "ODBC;DSN=MS Access Database;DBQ=cheminBaseDeDeDonnees.mdb"
            .RefreshOnFileOpen = False
            .SavePassword = False
            .SourceConnectionFile = ""
            .SourceDataFile = ""
            .ServerCredentialsMethod = xlCredentialsMethodIntegrated
            .AlwaysUseConnectionFile = False
        End With
        With ActiveWorkbook.Connections("Connexion1")
            .name = "Connexion1"
            .Description = ""
        End With
     
         ActiveWorkbook.Connections("Connexion1").Refresh

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Deux solutions : une simple et une compliquée.

    La compliquée est de lancer par macro une recherche de ta base de données sur toute la zone où elle pourrait se trouver. Ca pourrait être une sous-macro appelée par chacune de tes macro en début de code.

    La simple est de placer le chemin d'accès à ta base dans un fichier unique qui ne bougerait pas (un fichier texte, par exemple) et d'aller piocher cette adresse à chaque début de code. Ensuite, tu n'aurais à faire la modification qu'à un seul endroit.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    merci pour ta reponse , je prefere la solution simple. je suis debutant en vba est ce que tu peut etre plus explicite stp
    en me donnant un exemple de code ou je pourrais m'en servir

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Regarde OpenTextFile dans l'aide VBA Excel.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    je viens de regarder , mon probleme est que si j'arrive à recuperer le chemin je pourrais pas remplacer ce chemin dans code
    precisement "DBQ= cheminrecuperApartirDuFichier" vba n'accepte pas , il demande le chemin complet.

    Parceque à la base je voulais créers une variable globale au debut de code qui contient le chemin complet vers ma base, ensuite
    je passe directement cette variable dans la chaine de connexion mais vba refuse je sais pas pourquoi ?
    Aidez moi svp je suis en stage et je bloque la dessus.

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    j'ai trouvé la reponse il suffisait de faire DBQ = " & nomVariable & " et c'est tout

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

Discussions similaires

  1. [IP-2010] Changement sur une connexion de données
    Par MrMeteo dans le forum InfoPath
    Réponses: 3
    Dernier message: 14/08/2013, 09h01
  2. Changement de base de données = vba incompatible
    Par schuitonzo dans le forum Access
    Réponses: 22
    Dernier message: 22/02/2007, 16h46
  3. [File] Date de changement d´un Repertoire ou Fichier
    Par bambino78 dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 22/02/2007, 09h00
  4. [VBA-E]replacement données excel par données VBA
    Par plante.douce dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/04/2006, 20h23
  5. [VBA-E]Récupérer chemin du fichier de données d'un graphique
    Par pimouss76 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 31/03/2006, 14h41

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