Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/07/2011, 20h57   #1
Invité de passage
 
Femme Coraline
Analyste en information de gestion
Inscription : février 2010
Messages : 2
Détails du profil
Informations personnelles :
Nom : Femme Coraline
Localisation : Canada

Informations professionnelles :
Activité : Analyste en information de gestion

Informations forums :
Inscription : février 2010
Messages : 2
Points : 0
Points : 0
Par défaut Données externes ms query requêtes multiples

Bonjour,

Alors voici mon problème. à partir d'excel 2007, dans données externes je vais chercher des requêtes Access. J'ai 10 onglets dans mon fichier qui correspondent chacun à une requête différente dans la même BD.
Pour chaque import, il faut rentrer un mot de passe pour se connecter à la base de données. Du coup quand l'utilisateur clique sur actualiser tout, il faut rentrer 10 fois le mot de passe.
En passant par l'enregistreur de macro, j'ai récupéré le code VBA en me disant que je pourrai le modifier pour n'avoir qu'à rentrer qu'une seule fois le mot de passe mais je n'y suis pas arrivé.
Je pense que le problème vient du fait qu'il se connecte à chaque fois à la source, mais comment puis-je faire une sorte de boucle?
Voici un exmple du programme que me donne l'enregistreur de macro. Je sais que ce n'est pas la meilleure soltuion pour obtenir du programme mais je n'ai pas utilisé VBA depuis longtemps

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
        "ODBC;DSN=MS Access Database;DBQ=S:\partage\Information_de_gestion\BD\ReseauPartage.accdb;DefaultDir=S:\partage\Information_de_gestio" _
        ), Array("n\BD;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;")), _
        Destination:=Range("$A$1")).QueryTable
        .CommandText = Array( _
        "SELECT PretDeService.NomDirection, PretDeService.NomUnite & Chr(13) &  " & Chr(10) & "FROM `S:\partage\Information_de_gestion\BD\ReseauPartage.accdb`.PretDeService PretDeService" _
        )
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = _
        "Tableau_Lancer_la_requête_à_partir_de_MS_Access_Database"
        .Refresh BackgroundQuery:=False
    End With
J'espère que je suis assez claire.

Merci d'avance à tous ceux qui voudront bien m'aider

Coco
coconut86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 21h31   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 885
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 885
Points : 7 151
Points : 7 151
Bonjour,

Regardes ce post, la solution a été trouvé en utilisant ADO
http://www.developpez.net/forums/d11...gurateur-odbc/
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 21h48   #3
Invité de passage
 
Femme Coraline
Analyste en information de gestion
Inscription : février 2010
Messages : 2
Détails du profil
Informations personnelles :
Nom : Femme Coraline
Localisation : Canada

Informations professionnelles :
Activité : Analyste en information de gestion

Informations forums :
Inscription : février 2010
Messages : 2
Points : 0
Points : 0
Merci! Je vais regarder cela tout de suite!
coconut86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 08h38   #4
Membre confirmé
 
Inscription : octobre 2008
Messages : 273
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : octobre 2008
Messages : 273
Points : 294
Points : 294
Bonjour,

sinon, je crois que tu peux mettre l'utilisateur et le mot de passe ici :
Code :
1
2
3
"ODBC;DSN=MS Access Database;DBQ=S:\partage\Information_de_gestion\BD\ReseauPartage.accdb;UID=utilisateur;PWD=MotDePasse;DefaultDir=S:\partage\Information_de_gestio" _
        ), Array("n\BD;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;")), _
oOVaveOo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h28.


 
 
 
 
Partenaires

Hébergement Web