Morveus
Messages postés19Date d'inscriptiondimanche 19 décembre 2004StatutMembreDernière intervention12 juin 2007
-
1 juin 2007 à 11:14
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 2016
-
11 juin 2007 à 12:02
Bonjour,
je cherche à changer le mot de passe de ma base de données Access avec Visual Basic 2005. J'ai trouvé des codes pour VB6 mais je n'arrive pas à les appliquer intégralement (certaines fonctions ne sont pas reconnues du tout).
Existe-t-il un moyen, et si oui lequel, de changer le mot de passe de ma base Access en n'utilisant que des fonctions Visual Basic 2005 / .NET?
Morveus
Messages postés19Date d'inscriptiondimanche 19 décembre 2004StatutMembreDernière intervention12 juin 2007 11 juin 2007 à 11:57
Ca y est, j'ai trouvé!
En utilisant Microsoft DAO 3.6 Object Library, ca donne:
Sub OpenDB(
ByVal MotDePasse
As
String, ByVal NouveauPasse AsString)
Dim db
As DAO.Database
Dim ws
As DAO.Workspace
Dim Engine
As DAO.DBEngine =
New DAO.DBEngine()
ws = Engine.Workspaces(0)
Dim ChaineConnexion =
"MS Access;PWD=" & MotDePasse
db = ws.OpenDatabase(
"base.mdb",
True,
False, ChaineConnexion)
db.NewPassword(MotDePasse, NouveauPasse)
db.Close()
End
Sub
Dans "OpenDatabase", le 2e argument ouvre la base en mode exclusif (True), et le 3e ne l'ouvre pas en lecture seule (False). Voilà, il suffit de taper:
Morveus
Messages postés19Date d'inscriptiondimanche 19 décembre 2004StatutMembreDernière intervention12 juin 2007 1 juin 2007 à 11:39
En gros c'est ca:
Dim VieuxPass = "test1"
Dim NouveauPass = "test2"
Dim CheminBase = "C:\Chemin..."
Dim db As DAO.Database
Set db = OpenDatabase(CheminBase, True, False, ";pwd=" & VieuxPass)
db.NouveauPass VieuxPass, NouveauPass
db.Close
La fonction que j'ai colorée en rouge n'est pas reconnue...
Voilà ce que moi j'ai trouvé en bidouillant:
Dim db
As DAO.Database
DEFINIR DB
db.NewPassword(VieuxPass, NouveauPass
)
db.Close()
....
Je pense que mon code est bon (enfin ca m'a l'air bon), mais que mettre à la ligne où j'ai écrit "Définir DB" ? Puisque DB ne fait pas référence à ma base de données, la fonction "NewPassword" ne peut pas fonctionner :p
Quel est donc la fonction pour "ouvrir" ma base de données avant de faire "NewPassword" ?
J'espère que vous me comprenez, et que je ne suis pas parti sur une mauvaise voie!
Merci beaucoup
Morveus
Messages postés19Date d'inscriptiondimanche 19 décembre 2004StatutMembreDernière intervention12 juin 2007 1 juin 2007 à 12:14
Salut,
C'est justement cette source que j'ai utilisée :)
J'ai juste raccourci le code, mais mon probleme reste le même:
Set db = OpenDatabase(CheminBase, True, False, ";pwd=" & VieuxPass)
OpenDatabase n'est pas reconnu! :(
J'ai cherché dans la liste des objets (avec la touche F2) et je n'ai pas trouvé d'équivalent...
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 1 juin 2007 à 13:41
Salut,
Rajoute dans ton projet :
Menu >> projet >> référence >> et tu coches : Microsoft DAO 3.51 Object library
Moi je viens de faire l'esai sur une base, mais le souçis est que je n'ai pas un bon format de base de données, mais la fonction fonctionne apparement très bien..
Morveus
Messages postés19Date d'inscriptiondimanche 19 décembre 2004StatutMembreDernière intervention12 juin 2007 1 juin 2007 à 13:53
Salut,
J'ai essayé, et en effet les erreurs soulignées en bleu ont disparu, sauf cette fameuse "OpenDataBase" qui reste soulignée et qui refuse d'être reconnue...
Comment cela se fait-il?
Je peux vous fournir des captures d'écran si vous en avez besoin, si cela peut vous permettre de voir où est le problème...
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 1 juin 2007 à 14:02
Salut,
Je pense(pas sur de moi) que maintenant c'est plus un problème de syntaxe...Si tu est bien sous vb2005, .net, il me semble qu'il existe une référence à cochée pour prendre en compte des instruction VB6, mais je ne sais pas ou il faut la cochée !!!
Morveus
Messages postés19Date d'inscriptiondimanche 19 décembre 2004StatutMembreDernière intervention12 juin 2007 1 juin 2007 à 14:10
Ah, ok :)
Je suis effectivement en VB2005 Express, et il y a les fonctions du .NET Framework. Je vais fouiller un peu et essayer de trouver cette case dont tu parles :p
Merci beaucoup, je poste dès que j'ai trouvé (ou pas ^^)