ben272
Messages postés36Date d'inscriptionlundi 11 octobre 2004StatutMembreDernière intervention12 mai 2007
-
25 avril 2007 à 17:16
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
Raul duke
Messages postés70Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention17 mai 20192 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
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 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
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...
ben272
Messages postés36Date d'inscriptionlundi 11 octobre 2004StatutMembreDernière intervention12 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 & "';"