Fehn
Messages postés41Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention23 février 2006
-
4 juil. 2005 à 15:21
Fehn
Messages postés41Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention23 février 2006
-
5 juil. 2005 à 13:49
Bonjour,
voila, je désirais réaliser un UserForm avec un login et un mot de
passe (sousOutlook XP) et un bouton Ok!. J'aimerais que lorsque l'on
entre un login et un mot de passe correct, on accede à "UserForm2".
Pouvez vous me donner un exemple de code ? Pour info, les champs se
trouve sur une table DSN (la connexion à cette table se fait dans un
module OpenSQLServerDB) et les champs requis sont user_login et
user_password (la comparaison de ce qui est tapé dans le txtBox1 et
txtBox2 se fera avec le contenu de ces champs). Merci pour vos réponses.
Dites moi si je n'ai pas été assez clair, j'ajouterais des explications complémentaires.
keiko11245
Messages postés48Date d'inscriptionlundi 1 septembre 2003StatutMembreDernière intervention 5 avril 2006 5 juil. 2005 à 11:58
sinon ce que tu peux faire c'est enlever la condition WHERE de la requête et le faire à la main.
Private Sub CommandButton1_Click()
Dim strSQL As String
Dim rstConn As ADODB.Recordset
Dim objmyconn As ADODB.Connection
Dim loginTrouve as Boolean
Set objmyconn = OpenSQLServerDB("dbauser", "dbauser")
Set rstConn = CreateObject("ADODB.RecordSet")
strSQL = "SELECT login, password FROM Users ;"
rstConn.Open strSQL, objmyconn
rstConn.MoveFirst
loginTrouve =False
While rstConn.eof=false And loginTrouve=false
If rstConn.Fields(0) = Me.txtLogin.Value Then
loginTrouve=true
If rstConn.Fields(1)=Me.txtPassword.Value Then
MsgBox "Connexion réussi"
UserForm2.Show
Else
MsgBox "Mot de passe éroné"
End If
Else
loginTrouve=False
End If
Wend
If loginTrouve=False Then
MsgBox "Login incorrect"
End If
rstConn.Close
Set rstConn = Nothing
End Sub
Ah l'informatique c'est bien quant même quand ça marche
keiko11245
Messages postés48Date d'inscriptionlundi 1 septembre 2003StatutMembreDernière intervention 5 avril 2006 4 juil. 2005 à 16:24
Si j'ai compris ce que tu veux faire, il faut comparer le login et le mot de passe saisi avec ce de ta base et si c'est bon tu ouvre un autre formulaire.
Pour ça il faut que tu ajoute à ton bouton OK sur l'évènement Clic une procédure événementielle. Dans cette procédure, tu mettre le code suivant :
dim sql string
dim rs as object
'pour la connexion à la base tu te sert de ton module
'puis tu regarde si le login saisi existe
sql="SELECT user_password FROM DSN WHERE user_login='"+me.txtBox1 .value+"'"
set rs = currentdb.openrecordset(sql)
if rs.eof=true then
'l'utilisateur s'est trompé dans le login
'et tu affiche un message
else
if rs.fields(0)=me.txtBox1.value then
'c'est le bon mot de passe
'tu ouvre alors ton autre formulaire
docmd.openform "UserForm2"
else
'l'utilisateur s'est trompé dans le mot de passe
'et tu affiche un message
end if
end if
rs.close
set rs = nothing
voilà si tu comprend pas une ligne pas de soucis, je t'expliquerai.
PS : je sais pas si ça va marcher du premier coup j'ai fait le code à l'instant.
Ah l'informatique c'est bien quant même quand ça marche
Vous n’avez pas trouvé la réponse que vous recherchez ?
Fehn
Messages postés41Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention23 février 2006 5 juil. 2005 à 11:03
Oui oui, c'est sur. D'ailleurs, si je ne met pas la requete "Where" Il
me reconnait si le mot de passe est correct ou non. Je taffiche mon
code mis a jour et je surligne les deux lignes ou s'engendre l'erreur
(la premiere avec la requete Where, et la deuxieme sans)
Private Sub CommandButton1_Click()
Dim strSQL As String
Dim rstConn As ADODB.Recordset
Dim objmyconn As ADODB.Connection
Set objmyconn = OpenSQLServerDB("dbauser", "dbauser")
keiko11245
Messages postés48Date d'inscriptionlundi 1 septembre 2003StatutMembreDernière intervention 5 avril 2006 5 juil. 2005 à 11:22
pour la premiere erreur :
essaie a tout hasard
set rstConn = objmyconn.execute(strSQL)
pour la deuxieme c'est normal c'est pas sur cetobjet que tu dois faire le open.
sous access c'est Docmd.openform "nom_du_formulaire_a_ouvrir"
mais je sais pas si c'est la même ligne sous
Ah l'informatique c'est bien quant même quand ça marche
Fehn
Messages postés41Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention23 février 2006 5 juil. 2005 à 11:29
Pour la premiere erreur, j'ai fais comme tu as dis mais il m'engendre
toujours la même erreur. Je me demande si ce n'est pas du à l'oubli
d'une référence à ouvrir. Je précise que je bosse sous Outlook.
Quand à la 2e j'ai trouvé :D j'utilise la methode UserForm2.Show lol
Par contre la premiere erreur me penalise beaucoup :S
Fehn
Messages postés41Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention23 février 2006 5 juil. 2005 à 12:58
Non :S ca passe pas non plus. La Outlook plante carement :'( Personne
n'a une idée pour la requete ? en plus j'en aurais besoin pour la suite
de mon projet