Mot de passe

ahanta Messages postés 1 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 22 janvier 2008 - 22 janv. 2008 à 11:41
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 22 janv. 2008 à 17:58
Bonjour,

je travaille sous Excel et j'ai besoin de temps en temps de récupérer des données d'un base Access. Jusque là, tout va bien. J'ai trouvé le code pour exécuter ces actions.
En revanche, lorsque la base de données Access est protégée par un mot de passe, il fau à chaque fois taper le mot de passe de la base. Et comme je peux faire appel à des requêtes access plusieurs fois de suite, je dois taper le mot de passe plusieurs fois de suite.

Voici le code que j'utilise pour l'importation des requêtes (récupéré en faisant "outils", "macro" et "nouvelle macro") :

    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.QueryTables.Add(Connection:=Array( _
        "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=C:\Documents and Settings\\Affermissement.mdb;Mode=Share Deny Write;Extended Properties="""";Jet OL" _
        , _
        "EDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password=motdepasse;Jet OLEDB:Engine Type=5;Jet OLEDB:Database" _
        , _
        " Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet " _
        , _
        "OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compa" _
        , "ct Without Replica Repair=False;Jet OLEDB:SFP=False"), Destination:=Range( _
        "A1"))
        .CommandType = xlCmdTable
        .CommandText = Array(nom_req)
        .Name = "Affermissement"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = True
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .SourceDataFile = ThisWorkbook.Path & "\Affermissement.mdb"
        .Refresh BackgroundQuery:=False
    End With

le mot de passe que j'utilise est tout simplement motdepasse.

Je vous remercie pour votre aide.

1 réponse

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
22 janv. 2008 à 17:58
salut,

With ActiveSheet.QueryTables.Add(Connection:= Array( _
        "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password= """" ;User ID =Admin;Data Source= C:\Documents and Settings\\Affermissement.mdb;Mode=Share Deny Write;Extended Properties="""";Jet OL" _
        , _
        "EDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password= motdepasse ;Jet OLEDB:Engine Type =5;Jet OLEDB:Database" _
        , _
        " Locking Mode= 0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password= """" ;Jet " _
        , _
        "OLEDB:Create System Database =False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compa" _
        , "ct Without Replica Repair=False;Jet OLEDB:SFP=False"), Destination:=Range( _
        "A1"))

drôle de chaîne de connexion, même pour du VBA !!
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
Rejoignez-nous