cs_Eric25
Messages postés175Date d'inscriptionmardi 19 octobre 2004StatutMembreDernière intervention26 juin 2006
-
1 févr. 2005 à 18:54
cs_Eric25
Messages postés175Date d'inscriptionmardi 19 octobre 2004StatutMembreDernière intervention26 juin 2006
-
1 févr. 2005 à 19:43
Je viens de passer une partie de la journée à faire fonctionner la fonction suivante sans succès , c'est une fonction toute simple qui intervient lors de l'identification de l'utilisateur pour voir si son login et son mot de passe son corrects :
Public Function VerifMotUti(NomUti As String, MotUti As String, DroitUti1 As String, DroitUti2 As String) As Boolean
If Rs_Uti.State = adStateOpen Then
Rs_Uti.Close
End If
'Je recherche si il y a bien une entrée ds la table utilisateur avec le nom et le mot de passe correspondant
Rs_Uti.Open "select * from [UTILISATEUR] where Nom_Uti = '" & NomUti & "' and MotPasse_Uti='" & MotUti & "' and Droit_Uti='" & DroitUti1 & "' or Droit_Uti='" & DroitUti2 & "'", Cn, adOpenDynamic, adLockOptimistic
If Rs_Uti.EOF Then
VerifMotUti = False
Else
VerifMotUti = True
End If
Rs_Uti.Close
End Function
Quelque soit les données passées en paramètre, le Recordset n'est pas vide et la fonction retourne vrai.
Je pense que ma syntaxe est fausse. Ayant déclarer NomUti, MotUti... en string, ma syntaxe est-elle correcte au niveau de la requête?
mrdep1978
Messages postés402Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention 7 juin 20097 1 févr. 2005 à 19:28
C'est peut-être un problème de priorité entre le OR et le AND. Tu devrais mettre des parenthèses
"select * from [UTILISATEUR] where Nom_Uti = '" & NomUti & "' and MotPasse_Uti='" & MotUti & "' and (Droit_Uti='" & DroitUti1 & "' or Droit_Uti='" & DroitUti2 & "')",