Log/Pass

ben272 Messages postés 36 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 12 mai 2007 - 25 avril 2007 à 17:16
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 - 26 avril 2007 à 19:08
Bonjour à tous, qui pourrait me dire la commande SQl qui peret de lier deux champs entre eux d'une base de donnée Access. J'utilise un ADODC pour la connexions.

Exemple: Le login est "User1" et son pass est " admin " comment dire que le pass doit être celui de l'user1 et non celui d'un autre.
 Le bout de mon code :

If txtUserName.Text <> AdoUser.Recordset.Fields("fldUser") Or txtPassword.Text <> AdoUser.Recordset.Fields("fldPass") Then
MsgBox "Mauvais Login ou mot de passe, veuillez vous identifier", vbCritical, "Identification"
Else
FrmDemarrage.Show
'MDIForm1.Show
Unload Me


End If

Merci de vos réponse

11 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
25 avril 2007 à 17:33
Salut
Pas très clair :
On suppose que :
- Tu possèdes une base de données contenant une table contenant deux champs "fldUser" et "fldPass"
- Cette table a été alimentée avec des noms de User et le Password associé
- Que tu as ouvert ta DB et chargé cette table dans ton RecordSet avant de faire ton test

Si mes suppositions sont bonnes, ton test devrait fonctionner à condition de rechercher le Login et le Password saisis parmi TOUS les enregistrements contenus dans ton RecordSet.
Il va donc falloir prévoir une boucle de lecture pour les passer tous en revue.
Dans ta boucle, si tu trouves un enregistrement complet qui correspond, alors tu pourras faire le frm.Show
Des tas d'exemples (en VB6) existent pour ce genre de système de login.
Regarde comment c'est fait, la syntaxe est pratiquement la même.

Nota : Pense aussi que ces tests se font en minuscules / majuscules.
"User1" n'est donc pas pareil que "user1"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Raul duke Messages postés 70 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 17 mai 2019 2
25 avril 2007 à 17:36
' j'utilise oledb pour mes form d'authenfication
monReader = new oledbDataReader
ma_Commande = New OleDbCommand
ma_Commande.Connection = ma_Connection ' connection ouverte b1 sur
ma_Commande.CommandText = "select util_id from utilisateurs where util_login='" ma_Commande.CommandText += TextBoxLogin.Text & "' and util_mdp='" & TextBoxPass.Text &"'"



 monReader = Commande.ExecuteReader

if monReader.hasrows then
      'log ok
else
   'login ou mot de passe incorrect

end if
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
25 avril 2007 à 19:21
Salut,

Ben j'ai exactement ce que tu cherches(Chaibat05 de Vbfrance ma beaucoup aidé à ce sujet, cela vient de lui).
Bon c'est un code en VB6, à toi d'en faire la transposition.

Ma connection à la base dans un module :

Option Explicit

' Variable resultat de la fonction Execute_Sql
 Public Rst_Fonc As Boolean

' Variable message boîte de dialogue
 Public Msg As String

' Déclaration objet connection base de données
 Public CnxAdo As New ADODB.Connection
 
' Recordset pour mise à jours bdd
 Public RstAdo As New ADODB.Recordset
----------------------------------------------------------------
Public Function Bln_OpenDataBase() As Boolean
   
    ' Gestion erreur
     On Error GoTo Aff_Err


    ' Choix du fournisseur ,ouverture Base de Données
     CnxAdo.Provider = "Microsoft.jet.OLEDB.4.0"
        
    ' Resultat de la fonction verif_cehemin_base
     CnxAdo.ConnectionString = CheminDeTaBase
       
    ' Ouvre la connection à la source
     CnxAdo.Open
    
    ' Si pas d'erreur connection ok
     Bln_OpenDataBase = True
      
    ' On sort
     Exit Function
    
    
Aff_Err:
' connection échouée suite problème
    Bln_OpenDataBase = False
    Err.Clear


End Function
------------------------------------------------------------------
Public Function Execute_Sql(Param_Sql As String)


    ' Gestion erreur
     On Error GoTo Aff_Err
    
    ' Execution requête avec la l'objet de la connection
    ' Et paramètre recordset
     RstAdo.CursorLocation = adUseClient
     RstAdo.Open Sql, CnxAdo, adOpenDynamic, adLockPessimistic
   
    ' Si pas d'erreur, resultat requête = true
     Rst_Fonc = True
    
    ' On sort
     Exit Function
     
    
Aff_Err:
   
    ' Resultat echec requête
     Rst_Fonc = False
    ' Init erreur
     Err.Clear




End Function
------------------------------------------------------------------

Pour utiliser cette fonction dans une Frm :

Private Sub Form_Load()


    ' Connection à la base
      If Bln_OpenDataBase then
         ' La function renvoie True si connection ok
      Else
         ' La function renvoie False si connection échouée
      End if 


End Sub
-----------------------------------------------------------------
Private Sub CmdValider_Click()

    ' Préparation requête recherche pseudo et code     Sql "SELECT * FROM " TaTable WHERE  fldUser '" & txtUserName.TexT & "';"
     
         ' Exécution requête
          Execute_Sql Sql
    
    
         ' Retour résultat de l'exécution de la requête
          If Rst_Fonc = False Then
    
             ' Définition du message
              Msg = "Une erreur est survenue pendant l'exécution !" & vbCrLf & _
                    "Veuillez réessayer, ou conctater l'administrateur." & vbCrLf & vbCrLf
                     
               ' Affichage boite de dialogue
                 MsgBox Msg, "Information utilisateur", vbExclamation Or vbOKOnly
                
               ' Sortie procédure
                Exit Sub
        
          End If
    
    ' Maintenant on vérifie si pseudo et code existe dans recordset
   
      With RstAdo
     ' Pour éviter l' erreur du mouvement
      On Error Resume Next
     
         .MoveLast
         .MoveFirst
      If .BOF And .EOF Then
         MsgBox "Pseudo introuvable"
         RstAdo.Close
         Exit Sub
      End If
     
    ' >suite
         If ![fldPass] = txtPassword.Text Then
           MsgBox "Ok"
         Else
           MsgBox "Code Faux"
           RstAdo.Close
           Exit Sub
         End If
     
     End With




End Sub

Voilà, j'espère que je me suis pas embrouillé tout seul comme un grand....

Chose importante, c'est développe en ADO tout cours...


A+
Exploreur


 
0
ben272 Messages postés 36 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 12 mai 2007
26 avril 2007 à 16:37
J'ai un petit problème j'ai une erreur de syntaxe:
     Sql " SELECT * FROM " TblLogin WHERE  fldUser '" & txtUserName.TexT & "';"

Et VB mets TblLogin en bleu, pourtant j'ai bien écri le nom de la table.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
26 avril 2007 à 16:59
Salut,

Attention au "

Essaye cela :
Sql " SELECT * FROM  TblLogin WHERE  fldUser '" & txtUserName.TexT & "';"

A+
Exploreur

 
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
26 avril 2007 à 17:01
En plus c'est me ma faute, car dans l'exemple que j'ai cité il y a eu un mauvais copier/coller....Euh...comment dire....Excuse moi..

A+
Exploreur

 
0
ben272 Messages postés 36 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 12 mai 2007
26 avril 2007 à 17:11
Ha y  a pas de soucis. Mais Juste un petit détail, quand je veux test le soft, donc je mets un log et un pass, bha ça ne passe pas. On dirait qu'il ne trouve pas "sql"
Sql " SELECT * FROM  TblLogin WHERE  fldUser '" & txtUserName.TexT & "';"
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
26 avril 2007 à 18:04
Salut,

Bah...J'ai encore oublié un truc moi....Pfff..

Bon tu déclare dans le module :


Public Sql As String


A+
Exploreur


 
0
ben272 Messages postés 36 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 12 mai 2007
26 avril 2007 à 18:34
Dernier truc ( je sais, je suis chiant lol ) Mais quand je veux faire un show d'une form, je dois le mettre où  le " from1.show "
0
ben272 Messages postés 36 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 12 mai 2007
26 avril 2007 à 19:03
Alz j'ai trouvé. Un tout grand merci pour ton aide, ça fonctionne nikel
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
26 avril 2007 à 19:08
Salut,

Content pour toi...

A+
Exploreur

 
0
Rejoignez-nous