[Déplacé ASP -> VB]formulaire login/motde passe sous vb6 [Résolu]

tastastoussa 74 Messages postés lundi 8 août 2011Date d'inscription 11 février 2013 Dernière intervention - 11 août 2011 à 13:58 - Dernière réponse : tastastoussa 74 Messages postés lundi 8 août 2011Date d'inscription 11 février 2013 Dernière intervention
- 16 août 2011 à 11:59
slt tt le monde,je suis etudiante premier niveau en informatique,je fait un stage et on me demande de créer une application de gestion de parc...
alors j'ai deja créé ma base de données sous access,la connecter avec un projet sous VB6 (ceci gràce à ce forum en faitcar j'ai pas encore etudié le VB).
je suis arrivé à faire ms interfaces,me reste just l'interface d'accés.j'ai trouvé ici ds exemples,mais malheureusement c pas ce qu'on me demande.
en fait je dois donner la main à l'utilisateur pour saisir son login,puis verifier l'existence de ce login dans ma table de personnes autorisés(faite deja sur access)et en cas d'existence je lui donne la main pour saisir son mot de passe,et je teste que le mot de passe saisie est celle qui correspond au login dans ma table.
j'ai pensé au requétes,mais j'ai pas pu atteindre mon but,non plus avec les macro.
Merci bien de m'aider en ce point,car vraiment ça m'embete bcp ça fait 3 jours.
Afficher la suite 

18 réponses

Répondre au sujet
tastastoussa 74 Messages postés lundi 8 août 2011Date d'inscription 11 février 2013 Dernière intervention - 11 août 2011 à 23:40
+3
Utile
merrrrrrrci bien pour votre réponse,je comprend déjà le SQL et j'ai essayé avec mais peut être que j'ai pas bien introduit le code dans le bon emplacement.SVP pouvez_vous m'expliquer comment puisse_je introduire le SQL dans le VB.
dois_je faire une requéte SQL sous access'et dans ce cas comment je peut l'appeler pour effectuer mes tests?
Sinon,svp comment je l'introduis dans le code VB?
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de tastastoussa
cs_loulou69 672 Messages postés mercredi 22 janvier 2003Date d'inscription 2 juin 2016 Dernière intervention - 12 août 2011 à 09:28
+3
Utile
bonjour

Regarde le sujet ADO ici

http://vb.developpez.com/cours/
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_loulou69
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 12 août 2011 à 11:11
+3
Utile
Il n'existe pas d'event Change() pour un bouton et faire ça dans le Change() d'un champ pousserait n'importe qui à jeter ton application avant même d'êre arrivéau form principal.

Pour savoir si un rs est vide -> rs.EOF
Pour déruire un rs -> rs.Close:Set rs=Nothing


VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_ghuysmans99
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 11 août 2011 à 22:02
0
Utile
Ca serait peut-être une bonne idée d'apprendre le langage au lieu de tripoter sans trop connaitre des bouts de code que d'autres gens ont fait pour toi ... non ?

L'algo est bien plus simple en fait : lors du clic sur le bouton "Login", fais un SELECT * FROM users WHERE userName' CHAMP_USERNAME ' AND password'CHAMP_PASSWORD'; (attention aux injections SQL, il faut doubler les guillemets simples). S'il y a un résultat, c'est que c'est bon (dans ce cas tu peux sauver la valeur de certains champs - pas obligé en fait) mais s'il n'y a aucune ligne en retour, c'est que les données fournies sont mauvaises (donc tu peux envoyer paitre l'utilisateur, sans chercher quel champ est mauvais).

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
Commenter la réponse de cs_ghuysmans99
tastastoussa 74 Messages postés lundi 8 août 2011Date d'inscription 11 février 2013 Dernière intervention - 12 août 2011 à 10:20
0
Utile
meeerci beaucoup ,je vais voir ce site, j’espère pouvoir comprendre,comme j'ai déjà mentionné,je suis débutante pour de bon, alors je vais essayé comme méme.
Commenter la réponse de tastastoussa
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 12 août 2011 à 10:27
0
Utile
Tu devras mettre ton code dans l'événement Click d'un bouton. Pour exécuter un SQL, il suffit de faire taConnexion.Execute(sql) et de récupérer le résultat sous forme d'un recordset.

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
Commenter la réponse de cs_ghuysmans99
tastastoussa 74 Messages postés lundi 8 août 2011Date d'inscription 11 février 2013 Dernière intervention - 12 août 2011 à 10:34
0
Utile
je suis désolée vraiment,mais croyez moi,j'ai presque rien compris, pour les adodc normalement (selon ce que j'ai compris au cours de mon travail)servent à parcourir les différentes enregistrements d'une table.mais mon problème c'est que je vais tester des champs textes saisies par l'utilisateur,et les comparer à leurs symétriques dans la table Access correspondante.
Merci bien de m'aider pour dépasser ce problème.
Commenter la réponse de tastastoussa
tastastoussa 74 Messages postés lundi 8 août 2011Date d'inscription 11 février 2013 Dernière intervention - 12 août 2011 à 10:56
0
Utile
@ghuysmans99:merci bien pour votre aide,mais pouvez vous SVP m'expliquer encore?
Normalement le champ à remplir alors en code sera change() et non pas click()
je suis désolée si je demande beaucoup d'explications mais croyez moi que ce projet présente mon premier contact avec le VB6.
Alors merci bien de m'aider.
Commenter la réponse de tastastoussa
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 12 août 2011 à 10:58
0
Utile
On peut choisir de travailler avec uniquement des ADODC dans un projet VB6 mais ça trouve ses limites. C'est pourquoi on ouvre généralement une connexion ADODB pour pouvoir exécuter des requêtes qui ne devront pas être affichées tel-quel. Il suffit ensuite de remettre la même chaine de connexion dans tous les ADODC et pas de problème. Pour pouvoir instancier la classe ADODB, tu dois ajouter la référence "Microsoft ActiveX Objects 2.8" à ton projet. Fais démarrer ton projet sur Main() et dans cette sub, ouvre la connexion (variable globale sinon pas accessible ailleurs) avec une ConnString trouvée sur connectionstrings.com (utilise App.Path et. Non un chemin "en dur" pour désigner le chemin vers ta bdd). Ensuite, affiche ton formulaire principal. Dans le Form_Load, affecte la ConnString du ADODC à celle que tu as donnée à l'objet ADODB (ce doit êre une copie dans une string car sous Win7 la ConnString est massacrée à l'ouverture de la connexion) et rafraichis-le, ainsi que les objets qui dépendent de lui.

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
Commenter la réponse de cs_ghuysmans99
tastastoussa 74 Messages postés lundi 8 août 2011Date d'inscription 11 février 2013 Dernière intervention - 12 août 2011 à 11:40
0
Utile
@ghuysmans99:je parle pas du bouton,je parle de la zone texte (dans laquelle se fait la saisie du Login)
Après avoir remplir ce champ je dois tester que la saisie est bonne (existe dans la liste des login de ma table) avant de permettre à l'utilisateur de saisir son mot de passe,et je refait le même test pour le mot de passe.
Vous me comprenez j’espère .
j'ai vraiment besoin de votre aide,il se peut que votre explication est trés clair pour une personne qui connait le VB6 et ses options,mais pour moi je vous jure que c'est dur.
Commenter la réponse de tastastoussa
tastastoussa 74 Messages postés lundi 8 août 2011Date d'inscription 11 février 2013 Dernière intervention - 12 août 2011 à 12:05
0
Utile
slt tt le monde,je suis etudiante premier niveau en informatique,je fait un stage et on me demande de créer une application de gestion de parc...
alors j'ai deja créé ma base de données sous access,la connecter avec un projet sous VB6 (ceci gràce à ce forum en fait car j'ai pas encore etudié le VB).
je suis arrivée à faire mes interfaces,me reste just l'interface d'accés.j'ai trouvé ici ds exemples,mais malheureusement c pas ce qu'on me demande.
en fait je dois donner la main à l'utilisateur pour saisir son login,puis verifier l'existence de ce login dans ma table de personnes autorisés(faite deja sur access)et en cas d'existence je lui donne la main pour saisir son mot de passe,et je teste que le mot de passe saisie est celle qui correspond au login dans ma table.
j'ai pensé au requétes,mais j'ai pas pu atteindre mon but,non plus avec les macro(mon probleme ici comment introduire SQL dans le code VB6)
Merci bien de m'aider en ce point.C URGENT SVP.Merci infiniment
Commenter la réponse de tastastoussa
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 12 août 2011 à 21:33
0
Utile
Pas besoin de faire ça (et puis ça devrait se faire sur le LostFocus), tu n'as qu'un seul truc à gérer et c'est le bouton. Les deux sont vérifiés d'un coup à ce moment-là (sinon c'est une faille de sécurité car le "pirate" connait déjà l'identifiant).

As-tu déjà essayé d'ajouter la référence, de créer la connexion (comme décrit précisément dans un de mes messages précédent), de coder le début du btnLogin_Click() ? J'ai pas vraiment envie de tout faire à ta place Par contre ça aidrait si tu pouvais me passer ton projet en MP (un lien suffit), histoire que je vois un peu ce que c'est ...

PS : pas besoin de mettre @moi vu qu'on est que deux ...

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
Commenter la réponse de cs_ghuysmans99
tastastoussa 74 Messages postés lundi 8 août 2011Date d'inscription 11 février 2013 Dernière intervention - 12 août 2011 à 23:35
0
Utile
merci bien encore une fois,bon enfin j'ai compris ce que vous dites,j'ai commencé vraiment à coder ,je me sens fier de ça,mais toujours j'arrive pas bien.
j'ai ecris un code que j'estime juste.mon probleme c'est que cette fois ci le botton le fonctionne pas dans tous les cas (j'ai une structure conditionnelle imbriquée),le premier cas fonctionne mais pour les autres un click sur ce boton ne fais rien.
voilà ce que j'ai ecrispour mon boton(sachant que adodc1se base sur une requete Select):
Private Sub C_Click()
If (Text1.Text "" Or Text2.Text "" Or Text3.Text = "") Then
MsgBox "login box or password box is empty,please fill to continue"
Text1.Text = ""
Text2.Text = ""
ElseIf (Adodc1.Recordset.EOF = False) Then
If ((Text2.Text Adodc1.Recordset.Fields("Mot de passe")) And (Text3.Text Text2.Text)) Then
MsgBox "Login vrai"
ElseIf (Text2.Text = Adodc1.Recordset.Fields("Mot de passe")) Then
MsgBox "veuillez confirmer votre mot de passe"
Text3.Text = " "
Text3.SetFocus
Else
MsgBox "wrong password"
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text1.SetFocus
End If
End If
End Sub
Commenter la réponse de tastastoussa
tastastoussa 74 Messages postés lundi 8 août 2011Date d'inscription 11 février 2013 Dernière intervention - 12 août 2011 à 23:40
0
Utile
bon j'ai oublié de mentionner que le champ text3 correspond à un champ de confirmation de mot de passe
Commenter la réponse de tastastoussa
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 13 août 2011 à 02:22
0
Utile
Confirmer le mot de passe ... à quoi ça sert à part à faire c**** l'utilisateur ? Tu peux aussi mettre une confirmation du login et vérifier ça sur le Change des Textboxes ! Impossible de faire pire, à mon sens.

Pour exécuter un SQL, il suffit de faire taConnexion.Execute(sql) et de récupérer le résultat sous forme d'un recordset.
Je me sens vachement compris, là C'est quand même pas compliqué d'avoir un objet ADODB.Connection global et de créer des recordsets à partir de celui-ci dans le code d'un bouton ... non ? Pour faire simple : pas de ADODC ici.

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
Commenter la réponse de cs_ghuysmans99
tastastoussa 74 Messages postés lundi 8 août 2011Date d'inscription 11 février 2013 Dernière intervention - 16 août 2011 à 10:10
0
Utile
Merci bien pour tous vos conseils,enfin je suis arrivée à écrire ma commande select ,il me reste maintenant un probléme au niveau d'une structure conditionnelle imbriquée.j'essaye de la resoudre
Commenter la réponse de tastastoussa
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 16 août 2011 à 11:45
0
Utile
Vu que t'as créé ta BDD, mets des champs sans espaces ni caractères spéciaux (caractères accentués, ou pire). Tes queries seront plus clairs Je le répète, n'utilise pas de ADODC pour le login mais un recordset.

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
Commenter la réponse de cs_ghuysmans99
tastastoussa 74 Messages postés lundi 8 août 2011Date d'inscription 11 février 2013 Dernière intervention - 16 août 2011 à 11:59
0
Utile
j'ai vérifié bien que les champs ne comporte pas de caractères spéciaux.
en fait j'ai créé un adodc et dans ses propriétés j'ai mentionné ma requête SQL,puis j'ai mentionné que le mot de passe admet pour datasource adodc.ensuite j'ai passé au code.
je sais pas si y a chose que j'ai mal fait deja dans ces etapes et puis dans le code.
si les etapes avant code sont bonnes et vous avez le temps et vous étes prêts encore pour m'aider je peux vous envoyer le code.
MERCI INFINMENT
Commenter la réponse de tastastoussa

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.