ldjibox
-
24 avril 2013 à 11:29
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
25 avril 2013 à 00:20
Bonjour à tous,
je developpe une application de gestion de budget en vb6.
j'ai un fichier DSN + Access 2003 avec mot de passe
voici le fichier dsn:
[ODBC]
DRIVER=Driver do Microsoft Access (*.mdb)
UID=admin
UserCommitSync=Yes
Threads=3
SafeTransactions=0
PageTimeout=5
MaxScanRows=8
MaxBufferSize=2048
FIL=MS Access
DriverId=25
DefaultDir=C:\sophos
DBQ=C:\sophos\Sophos.mdb
et voici mon code source :
Set ado = New ADODB.Recordset
ado.CursorLocation = adUseClient
ado.Open "select * from T_Users where Login='" + txtLogin.Text + "' and password='" + txtPassword.Text + "'", "File Name=C:\sophos\Sophos.mdb.dsn", adOpenKeyset, adLockOptimistic
If ado.RecordCount > 0 Then
strPraticien = ado("CodePraticien")
strUniteMedicale = ado("CodeUniteMedicale")
MenuGeneral.Show
Unload Me
Else
MsgBox "Identification incorrecte.Veuillez reprendre ", vbInformation, "Identification"
txtpasswd.Text = ""
txtpasswd.SetFocus
End If
et quand je me connecte, voici le message d'erreur: {Mot de passe non valide}
avez vous une idée de l'utilisation d'un fichier DSN avec une base de données protégée ?
Merci
A voir également:
VB6, Fichier DSN et base de données access Protégé par mot de passe
Bonjour,
j'ai résolu mon Pb en ajoutant simplement PWD=monMotDePasse dans le fichier DSN
take a look:
[ODBC]
DRIVER=Driver do Microsoft Access (*.mdb)
UID=admin
PWD=MyPasswdRightNow
UserCommitSync=Yes
Threads=3
SafeTransactions=0
PageTimeout=5
MaxScanRows=8
MaxBufferSize=2048
FIL=MS Access
DriverId=25
DefaultDir=C:\sophos
DBQ=C:\sophos\Sophos.mdb
Avec le meme code :
Set ado = New ADODB.Recordset
ado.CursorLocation = adUseClient
ado.Open "select * from T_Users where Login='" + txtLogin.Text + "' and Password='" + txtPassword.Text + "'", "File Name=C:\sophos\MyFile.dsn", adOpenKeyset, adLockOptimistic
If ado.RecordCount > 0 Then
Menu.Show
Unload Me
Else
MsgBox "Identification incorrecte.Veuillez reprendre ", vbInformation, "Identification"
txtpasswd.Text = ""
txtpasswd.SetFocus
End If
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 24 avril 2013 à 11:40
Bonjour,
Comment peux-tu espérer ouvrir ta base sans lui donner le mot de passe ?
Et cela doit nécessairement se faire avant la requête !
Genre ;
Dim ado As ADODB.Connection
Dim rst As ADODB.Recordset
'Instanciation des variables
Set ado = New ADODB.Connection
Set rst = New ADODB.Recordset
'Connexion à ta base de données
ado.ConnectionString = "Provider=" & nom_PiloteDaccesAlaBaseDeDonnées & ";DSN=" & Nom_DSN & ";UID=" & Nom_Utilisateur & ";PWD=" & MotDePasse & ";"
ado.Open
ce ne sera qu'ensuite, que tu pourras faire une requête sur une table de cette base pour établir un recordset .
Cela va tellement de soi.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 25 avril 2013 à 00:20
Salut
En fait, ton erreur vient du fait que tu questionnes la DB avant de l'avoir ouverte.
Normalement, on crée un objet Connection que l'on connecte; c'est là que le mot de passe intervient.
Puis, une fois la connexion ouverte, tu peux faire la requète en remplaçant le nom du fichier dsn que tu as mis, par l'objet de connexion.
Même si certaines instructions permettent ces raccourcis, il est plus facile de décomposer pour facilité la maintenance/débogage
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)