Formulaire d'authentification sous access

Messages postés
6
Date d'inscription
vendredi 14 août 2009
Statut
Membre
Dernière intervention
19 août 2009
- - Dernière réponse : the09napster
Messages postés
6
Date d'inscription
vendredi 14 août 2009
Statut
Membre
Dernière intervention
19 août 2009
- 19 août 2009 à 17:30
Salut à tous! Excusez ma façon d'être un peu direct, en fait je bosse sur une petite application de gestion d'école sous "access 2003". je veux creer un formulaire "FAuthentification" d'authentification qui se lancera au demaarrage de l'application demandant le login et le user_psw qui sont stockes dans une table :"T_Usrs" 2 champs dont: [Users_id_pswd] et [Users_login]. J'ai cree mon formulaire sur lequel je pose 4 controls dont 1 zonz_Userlog qui reçoit le nom du user et la 2ème zone_pswd qui recoit le user pswd ainsi que 2 bouton btnOK dont 1 pour valider et btnCancel l'autre pour Annuler. Je code mon btnOK comme ci-dessous, mais ca ne marche pas. pouvez vous m'aider s'il vous plait?
-----------------------------
VOICI LE CODE
---------------------------------
Private Sub btnKO_Click()
Dim Rs As DAO.Recordset
Dim Valide As Boolean
Reconnu = False
Set Rs = CurrentDb.OpenRecordset("T_Users")
Do While Not Rs.EOF
If Rs.Fields("Nom_Utilisateur").Value = zone_user.Value Then
If Rs.Fields("Mot_de_Passe").Value = zone_Pswd.Value Then
DoCmd.OpenForm "F_Connexion", acNormal
Valide = True
Exit Do
Else
MsgBox "Erreur de mot de passe"
GoTo Fin
End If
End If
Rs.MoveNext
Loop
If Valide = False Then
MsgBox "Utilisateur non reconnu !!!", vbCritical, "Attention.."
GoTo Fin
End If
End Sub
---------------------
Afficher la suite 

10 réponses

Messages postés
1211
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
8
0
Merci
Bonjour,

Cela ne marche pas, cela ne veut rien dire:

- As-tu une erreur ?
- Que fais ton code qui ne te plait pas ?

Enfin 2/3 petits conseils:

Utilises ADO, DAO est complètement obsolète, au lieu de faire une boucle, fais un "FIND" sur le nom de l'utilisateur, cela allègera ton code et si ta table contient beaucoup d'utilisateurs il ira nettement plus vite. Enfin, indente ton code, il en sera beaucoup plus lisible.


Calade
Commenter la réponse de Calade
Messages postés
6
Date d'inscription
vendredi 14 août 2009
Statut
Membre
Dernière intervention
19 août 2009
0
Merci
Slt Calade! Et surtout merci pour ta remarque, j'en tiendrai compte meme ds mon application. Le code ci-dessous apres execution, me renvoi un message d'erreur ci-dessous.
J'apprend encore sur l'utilisation de tous ces élements que je combine, surtout je cherche à les comprendre.
Merci!
-----------------------------------------------
L'expression Sur chargement entrée comme paramètre de la propriété de type événement est à
l'origine d'une erreur. Instruction incorrecte à l'extérieur d'une procédure.
Juste Apres avec grosse Bulle Ronde avec un "i" a l'interieur qui dit:

* Le résultat de l'expression n'est pas le nom d'une macro, le nom d'une fonction definie par
le user ou [event procedure].

* Une erreur a peut-être commise lors de l'évaluation d'une fonction, d'un événement ou d'une macro.
-------------------------------------------------------------------------------------
Commenter la réponse de the09napster
Messages postés
1211
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
8
0
Merci
Il y a quelque chose qui m'échappe.

Le code de ton 1er post est il dans une form Access ou dans une form .NET qui attaquerait une base Access, ce n'est pas du tout pareil.

Ensuite l'erreur qui m'a tout l'air d'être une erreur de compil' (ou à l'écriture) et non au runtime se situe sur quelle ligne de ton code exactement.


Calade
Commenter la réponse de Calade
Messages postés
6
Date d'inscription
vendredi 14 août 2009
Statut
Membre
Dernière intervention
19 août 2009
0
Merci
mon code est sur form access (vb access), c'est en fait un petit formulaire d'authentification que je voudrais ajouter à une petite application qui se lancera au démarrage.
Pour tout te dire,l'erreur que je décris survient quand je lance le formulaire,et tout de suite après il s'affiche mais, qd je clic sur btn OK, il me renvoie le meme mesage!
Commenter la réponse de the09napster
Messages postés
1211
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
8
0
Merci
A priori le message laisse supposer que l'erreur survient lors du chargement de ta form et non lors du clic sur le bouton.

Regardes plutôt sur le code de l'évènement Load de ta feuille.


Calade
Commenter la réponse de Calade
Messages postés
6
Date d'inscription
vendredi 14 août 2009
Statut
Membre
Dernière intervention
19 août 2009
0
Merci
le message d'erreur en question survient quand je lance le form et apres, le formulaire s'ouvre quand meme, mais quand j'essai de me loger, en validant il resurgit. Je n'y comprend vraiment rien à tous. Si tu peux me proposer un coder qui poura marcher selon que je decris les objets: table avec deux champs, un form et 2 zone.txt ainsi que 2 btn; btnOK et btnCancel. Merci en tout cas pour prendre ta peine à m'aider.
Commenter la réponse de the09napster
Messages postés
1211
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
8
0
Merci
Poste déjà le code complet de ta feuille, ou plutôt celui des évènements Load et Initialize.


Calade
Commenter la réponse de Calade
Messages postés
6
Date d'inscription
vendredi 14 août 2009
Statut
Membre
Dernière intervention
19 août 2009
0
Merci
Voici le code que je met au chargerment de mon form et pour le bouton annuier (qui ferme d'office l'application si le user appui dessus)
--------------------------------------------
'le Loarding du form
Private Sub Form_Load()
DoCmd.Maximize
End Sub
-----------------------
'pour le btn annule
Private Sub btnCancel_Click()
DoCmd.Close
End Sub
----------------------------- et la le code du bouton Ok "valide"

------------------------------------------
Private Sub btnKO_Click()
Dim Rs As DAO.Recordset
Dim Valide As Boolean
Reconnu = False
Set Rs = CurrentDb.OpenRecordset("T_Users")
Do While Not Rs.EOF
If Rs.Fields("Nom_Utilisateur").Value = zone_user.Value Then
If Rs.Fields("Mot_de_Passe").Value = zone_Pswd.Value Then
DoCmd.OpenForm "F_Connexion", acNormal
Valide = True
Exit Do
Else
MsgBox "Erreur de mot de passe"
GoTo Fin
End If
End If
Rs.MoveNext
Loop
If Valide = False Then
MsgBox "Utilisateur non reconnu !!!", vbCritical, "Attention.."
GoTo Fin
End If
End Sub
---------------------
je n'utilise meme pas de procedure d'initialisation donc vas y Comprendre que j'y arrive et il me faut beaucoupe d'entrainement en vb access en particulier puisque c'est avec ça que je travail pour l'instant, dans le respect de syntaxes"indentation et autres reglès"
C'est un peu cela. En tout cas, je te remercie infiniment de ton aide!!!
Commenter la réponse de the09napster
Messages postés
1211
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
8
0
Merci
Bonjour,

Effectivement, c'est assez bizarre.
Une piste malgré tout, commente le Docmd.Maximize dans le load pour voir ce que ça donne.

Et tu ne m'as pas dit si c'était uniquement au Runtime que tu avais cette erreur où dès l'écriture.


Calade
Commenter la réponse de Calade
Messages postés
6
Date d'inscription
vendredi 14 août 2009
Statut
Membre
Dernière intervention
19 août 2009
0
Merci
Salut Calade!
L'erreur n'est pas au niveau de la runtine si je comprend bien le mot rutine. au lancement et au clic sur le bouton
le code sur le Loar_Form() permet juste d'agrandir mon formulaire au lancement de celui-ci.

Malgrès l'absence du petit code de maximization, le resultat est meme, ie le meme mesage, toujours pas de resultat en clicant sur Ok car meme message.Sinon ce que tu fais est déjà grand et beaucoup pour moi sans que tu te sente flater, j'aimerais en faire autant mais, je n'y conais encore rien en programmation.Merci du fond de mon coeur.
Rappels-moi si t'as de newz. A+

THE NAPSTER
Commenter la réponse de the09napster