Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Sécurité
Sécurité Le forum qui s'occupe de votre préoccupation de sécuriser l'accès à votre application Access, ainsi qu'à la sécurité des données.
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 29/05/2007, 17h26   #1
Membre habitué
 
Inscription : mai 2006
Messages : 182
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 182
Points : 107
Points : 107
Par défaut [Access 2002] - Problème avec DAO.Workspace

Bonjour à tous,

A partir de ma BDD, je voudrais accéder à une autre BDD protégée par un fichier mdw.

J'utilise donc le code suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
    Dim oVDb As DAO.Database
    Dim oVWk As DAO.Workspace
    Dim oDbe As DBEngine
 
 
    'prépare l'espace de travail
    Set oDbe = New DBEngine
    oDbe.SystemDB = CheminDestination & "Sécurisé.mdw"
    Set oVWk = oDbe.CreateWorkspace(Format(Now(), "yyyymmddhhnnss"), "MonUtilisateur", "MonMotDePasse", dbUseJet)
    'Ouvre la base de données
    Set oVDb = oVWk.OpenDatabase(CheminDestination & NomFichierDestination)
J'obtiens alors une erreur sur la ligne Set oVWk... :
Code :
1
2
3
 
Erreur d'exécution 3029 :
Compte ou mot de passe non valide.
Un peu de pas à pas, et je remarque une petite chose qui a toute son importance :
Code :
1
2
 
    oDbe.SystemDB = CheminDestination & "Sécurisé.mdw"
CheminDestination & "Sécurisé.mdw" contient bien le chemin d'accès à mon mdw, mais malgré que cette ligne passe sans problème, je ne retrouve pas le bon chemin dans oDbe.SystemDB, il garde la valeur par défaut qui est Application Data\Microsoft\Access\System.mdw

Donc forcément, puisque je ne pointe pas sur le bon workspace, mon mot de passe ne peut pas être bon !
Je ne vois vraiment pas pourquoi oDbe.SystemDB ne veut pas prendre la valeur que je lui donne.

Je précise que j'ai trouvé ce code dans la FAQ, même si je l'ai forcément adapté un peu.

Peut-être que je ne m'y prend pas de la bonne façon ? Ou peut-être subsiste-t-il une erreur que je ne vois pas ?

Si quelqu'un à une idée, je suis preneur.

Merci d'avance

Cordialement,
Devil-Atomic666
Devil-Atomic666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 05h09   #2
En attente de confirmation mail
 
Inscription : février 2005
Messages : 1 731
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : février 2005
Messages : 1 731
Points : 2 010
Points : 2 010
Bonjour,

Je crois que dans l'environnement d'exécution d'Access, l'objet DBEngine est unique (pas de CreateObject() ou d'instruction New) et ses propriétés ne peuvent pas être modifiées.

En revanche, on doit pouvoir utiliser un "DBEngine privé" de la même manière que l'objet DBEngine d'Access...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    Dim oVDb As DAO.Database
    Dim oVWk As DAO.Workspace
    Dim oDbe As DAO.PrivDBEngine
 
    'prépare l'espace de travail
    Set oDbe = New DAO.PrivDBEngine 
    With oDbe
        .SystemDB = CheminDestination & "Sécurisé.mdw"
        .DefaultUser = "MonUtilisateur"
        .DefaultPassword = "MonMotDePasse"
        Set oVWk = .Workspaces(0)
    End With
 
    'Ouvre la base de données
    Set oVDb = oVWk.OpenDatabase(CheminDestination & NomFichierDestination)
P.S. Code pas testé...

Autrement, tu peux toujours lancer une nouvelle instance d'Access avec l'instruction Shell qui te permet de préciser l'option /wrkgrp dans la ligne de commande.
_
=JBO= est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 08h57   #3
Membre habitué
 
Inscription : mai 2006
Messages : 182
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 182
Points : 107
Points : 107
Bonjour,

Je viens juste de tester ton code, et il fonctionne impeccable !

Merci beaucoup !!!
Devil-Atomic666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h04.


 
 
 
 
Partenaires

Hébergement Web