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

Résolu
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 - 11 août 2011 à 13:58
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 - 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.

18 réponses

tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
11 août 2011 à 23:40
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?
3
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
12 août 2011 à 09:28
bonjour

Regarde le sujet ADO ici

http://vb.developpez.com/cours/
3
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
12 août 2011 à 11:11
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
3
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
11 août 2011 à 22:02
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
0

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

Posez votre question
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
12 août 2011 à 10:20
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.
0
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
12 août 2011 à 10:27
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
0
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
12 août 2011 à 10:34
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.
0
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
12 août 2011 à 10:56
@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.
0
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
12 août 2011 à 10:58
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
0
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
12 août 2011 à 11:40
@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.
0
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
12 août 2011 à 12:05
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
0
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
12 août 2011 à 21:33
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
0
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
12 août 2011 à 23:35
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
0
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
12 août 2011 à 23:40
bon j'ai oublié de mentionner que le champ text3 correspond à un champ de confirmation de mot de passe
0
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
13 août 2011 à 02:22
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
0
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
16 août 2011 à 10:10
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
0
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
16 août 2011 à 11:45
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
0
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
16 août 2011 à 11:59
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
0
Rejoignez-nous