[VBA] Récupérer nom connexions Excel-Access

Fermé
poulain35 - 27 déc. 2010 à 13:58
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 29 déc. 2010 à 14:49
Bonjour,

Je suis bloqué depuis quelques jours sur la modification d'une connexion externe Access vers mon classeur Excel.

Je veux modifier cette connexion en changant juste l'extension .mdb par .accdb, par VBA, j'ai ceci :
           With ActiveWorkbook.Connections("Suivi_pal_quai").OLEDBConnection
                .BackgroundQuery = True
                .CommandText = Array("R2_comptage_palettes")
                .CommandType = xlCmdTable
                .Connection = Array( _
                "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=\\NASTOU01.lactadom.ad\MESDONNEES_EFLTOU\fr01199\Suivi_pal_quai.accdb;")
                .SourceDataFile = "\\NASTOU01.lactadom.ad\MESDONNEES_EFLTOU\fr01199\Suivi_pal_quai.accdb"
            End With
        
            With ActiveWorkbook.Connections("Suivi_pal_quai")
                .Name = "Suivi_pal_quai"
            End With

Cela fonctionne mais j'aimerai utilisé cette macro pour plusieurs fichiers. Donc il faudrai que je puisse récupérer le nom de la connexion, le nom de la requete, et la source en les stockant dans une variable pour les utiliser ici. J'aimerai savoir si c'est possible, et comment y arriver ?

Merci d'avance !!!

A voir également:

11 réponses

Personne n'aurai une idée, une piste? svp
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
28 déc. 2010 à 10:58
Bonjour,
Mettre des variables String dans un module Public et les initialiser à l'ouverture d'Access
Et remplacer les nom "en dur" dans ta connection par les variables (sans guillement)
A+
0
Mais comment les initialiser à l'ouverture de mon fichier Access ??
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
28 déc. 2010 à 11:42
C'est une fonction ou une sub...
Initialiser les variables juste avant d'appeller !
Sinon explique un peu mieux quand tu entre dans cette fonction.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Je souhaite récupérer, toutes les infos de mes connexions entre Excel et Access. Pour pouvoir changer mon fichier Access, car je veux le passer en accdb.
Je souhaite faire ceci automatiquement à tous mes fichiers excel pour modifier leurs connexions Access.
J'ai enregistrer une macro, celle ci-dessus, et j'aimerai y mettre de variable, pour appliquer ce code à tous mes fichiers Excel. J'espere que tu m'a compris et que tu peut m'aider?
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
28 déc. 2010 à 12:35
Je supose que tu à mis un bouton sur un formulaire et désigné la macro...
Une piste,
Sub MyMacro()
Dim MyConnect(NombreDeFichier), TB, i As Integer
'Adapter suivant les données à modifier
MyConnect(1) = Array("NomConnection", "NomCommentTexte", "NomDatatSource")
MyConnect(2) = Array("NomConnection", "NomCommentTexte", "NomDatatSource")
'etc..

For i = 1 To NombreDeFichier
    TB = Split(MyConnect(i), ",")
    'ici tu peu remplacer les adresses  dans ta macro par TB(0).. TB(1).. TB(2)
    ta macro..
End Sub

0
Oui mais il faut que je récupère le nom du fichier access qui est lié pour pouvoir le stocker dans une variable où la je vai couper le .mdb et le changer par .accdb .
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
28 déc. 2010 à 13:56
Tu peu ajouter des variables dans les ARRAY en fonction des besoins.
0
Pourquoi j'ai une erreur au niveau du NombreDeFichier, constante requise??
0
Je relance ...
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
29 déc. 2010 à 14:49
Beh oui, je pensais que tu comprendrais, faut remplacer par le nombre de fichier que tu a à traiter, soit un nombre
Ou tu met..
Sub MyMacro()
Const NombreDeFichier = ?
Dim MyConnect(NombreDeFichier), TB, i As Integer

A+
0