[VBA] formulaire de securité
Théo
-
WhiteFang Messages postés 2063 Date d'inscription Statut Membre Dernière intervention -
WhiteFang Messages postés 2063 Date d'inscription Statut Membre Dernière intervention -
Salut tou le monde !
Voila donc je suis actuellement en stage de premiere année bts info gestion developpeur d'application. Dans l'application Access 97 que je cré, je dois incoperais un formulaire de securité (Utilisateur, Mot de Passe) et je ne vois vraiment pas comment gerer sa par rapport a ma table securité contenant les infos user et mdp.
Donc g un bouton OK qui doit verifier par une requete si les données entré ds les champs utilisateur et mot de passe son correct pour ouvrir un autre formulaire ou dans le cas contraire envoyé un MsgBox.
Merci d'avance pour vos réponses !!!
Voila donc je suis actuellement en stage de premiere année bts info gestion developpeur d'application. Dans l'application Access 97 que je cré, je dois incoperais un formulaire de securité (Utilisateur, Mot de Passe) et je ne vois vraiment pas comment gerer sa par rapport a ma table securité contenant les infos user et mdp.
Donc g un bouton OK qui doit verifier par une requete si les données entré ds les champs utilisateur et mot de passe son correct pour ouvrir un autre formulaire ou dans le cas contraire envoyé un MsgBox.
Merci d'avance pour vos réponses !!!
A voir également:
- [VBA] formulaire de securité
- Question de sécurité - Guide
- Whatsapp formulaire opposition - Guide
- Votre appareil ne dispose pas des correctifs de qualité et de sécurité importants - Guide
- Formulaire de réclamation facebook - Guide
- Mode securite - Guide
28 réponses
;-)
Dans ton bouton OK, tu ouvres, via VBA, ta table sécurité, et tu vérifies les champs avec une boucle, que tu compare à tes zones de texte...
;-)
Dans ton bouton OK, tu ouvres, via VBA, ta table sécurité, et tu vérifies les champs avec une boucle, que tu compare à tes zones de texte...
;-)
ok sa marche a peu prés, mais maintenant i me met une message microsoft visual basic
erreur d'exécution '361'
Impossible de charger ou de décharger cet objet
quand je clic sur deboguage il me met l'erreur sur le "Unload Me"
erreur d'exécution '361'
Impossible de charger ou de décharger cet objet
quand je clic sur deboguage il me met l'erreur sur le "Unload Me"
c bon g reussi a corriger l'erreur en retirant
"Unload Me" et "LaTable.Close"
En tout cas merci beaucoup pour ton aide tu as assuré, meme si c pas simple de m'expliquer un truc chui du genre a rien comprendre enfin tu l'as remarqué ^^
Merci Man !
"Unload Me" et "LaTable.Close"
En tout cas merci beaucoup pour ton aide tu as assuré, meme si c pas simple de m'expliquer un truc chui du genre a rien comprendre enfin tu l'as remarqué ^^
Merci Man !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
oui qd g supprime le Unload Me, il a mi la mm erreur sur LaTable.close donc g sup aussi et sa fonctionne
une dernière question steup.
dans la declaration des variables:
Dim LaTable, Cpt, NomUtilisateur, MotDePasse
Pourquoi on met tou a la suite et pourquoi on declare pas de type ?
Et pourquoi quand g tout declarer separerment sa marchait pas ?
dans la declaration des variables:
Dim LaTable, Cpt, NomUtilisateur, MotDePasse
Pourquoi on met tou a la suite et pourquoi on declare pas de type ?
Et pourquoi quand g tout declarer separerment sa marchait pas ?
;-)
Je met tout à la suite et je ne déclare rien quand il s'agit de petit bidules, question appli VBA.... Quand on dit rien, le type par défaut est VARIANT, qui prend un peu plus de mémoire, mais on s'en fous car ce ne sont que de petits bidules en VBA, et comme les ressources sont libérées au "End Sub", cela permet de donner une aide à ceux qui sont un peu dans la panade sans avoir à leur donner de cours magistral sur la programmation et l'état de l'art....
C'est pour aider... Ensuite, le petit gars/fille qui vient là pour crier "à l'aide", il a tout le temps, avec le code qu'on lui donne, pour ensuite faire un joli ptit code bien propre et économique en ressources, bref, un bon petit développeur... Touche F1 à fond !! ;-)))
Les bons, ils n'ont pas besoin de notre aide... ;-))))))))))))
Et quand tu dis rien, l'avantage du VARIANT, c'est de s'adapter à tous les types de données.... Pas de prise de tête pour un débutant....
;-)
Je met tout à la suite et je ne déclare rien quand il s'agit de petit bidules, question appli VBA.... Quand on dit rien, le type par défaut est VARIANT, qui prend un peu plus de mémoire, mais on s'en fous car ce ne sont que de petits bidules en VBA, et comme les ressources sont libérées au "End Sub", cela permet de donner une aide à ceux qui sont un peu dans la panade sans avoir à leur donner de cours magistral sur la programmation et l'état de l'art....
C'est pour aider... Ensuite, le petit gars/fille qui vient là pour crier "à l'aide", il a tout le temps, avec le code qu'on lui donne, pour ensuite faire un joli ptit code bien propre et économique en ressources, bref, un bon petit développeur... Touche F1 à fond !! ;-)))
Les bons, ils n'ont pas besoin de notre aide... ;-))))))))))))
Et quand tu dis rien, l'avantage du VARIANT, c'est de s'adapter à tous les types de données.... Pas de prise de tête pour un débutant....
;-)
Ok merci !
L'element LaTable c une table fictive qui va recevoir les elements de la table securite ?
Et sinon sur le formulaire suivant, j'ai mi un champ qui affiche le nom de l'utilisateur connecté, pour le moment pas de prob sa fonctionne bien. Mais quand g ajouté la ligne qui ferme le formulaire securité a la connexion d'un utilisateur, le champ utilisateur du second formulaire ne reçoit plus les données utilisateur du premier formulaire.
Tu as pas une idée ?
L'element LaTable c une table fictive qui va recevoir les elements de la table securite ?
Et sinon sur le formulaire suivant, j'ai mi un champ qui affiche le nom de l'utilisateur connecté, pour le moment pas de prob sa fonctionne bien. Mais quand g ajouté la ligne qui ferme le formulaire securité a la connexion d'un utilisateur, le champ utilisateur du second formulaire ne reçoit plus les données utilisateur du premier formulaire.
Tu as pas une idée ?
;-)
LaTable : Oui, c'est un variable de type OBJET, qui fait référence à la vraie table, avec toute la structure (champs...)
Pour le nom de l'utilisateur : Utilise une variable "Public", dans un module, cela la rendra accessible par TOUT ton projet VBA...
Ex : Public NomUtilisateur -As String si tu veux ;-)-
Ensuite, dans ton fomulaire : Txt_Utilisateur=NomUtilisateur
;-)
LaTable : Oui, c'est un variable de type OBJET, qui fait référence à la vraie table, avec toute la structure (champs...)
Pour le nom de l'utilisateur : Utilise une variable "Public", dans un module, cela la rendra accessible par TOUT ton projet VBA...
Ex : Public NomUtilisateur -As String si tu veux ;-)-
Ensuite, dans ton fomulaire : Txt_Utilisateur=NomUtilisateur
;-)
Donc g créer le module avec pour code:
Option Compare Database
Public NomUtilisateur As String
Private Sub txt_Utilisateur_BeforeUpdate(Cancel As Integer)
txt_Utilisateur = NomUtilisateur
End Sub
Mais sa marche pas
Et sinon g un autre probleme, c quand je ve mettre plusieurs utilisateur dans ma table securite, le cpt du formulaire securite ne doit pas voir les autre ligne car il me ferme la page au lieu d'ouvrir le second formulaire
Option Compare Database
Public NomUtilisateur As String
Private Sub txt_Utilisateur_BeforeUpdate(Cancel As Integer)
txt_Utilisateur = NomUtilisateur
End Sub
Mais sa marche pas
Et sinon g un autre probleme, c quand je ve mettre plusieurs utilisateur dans ma table securite, le cpt du formulaire securite ne doit pas voir les autre ligne car il me ferme la page au lieu d'ouvrir le second formulaire
il a mi sa automatiquement quand g voulu créer mon code sur le champ txtUtilisateur du deuxième formulaire.
sinon c pas grave je v laisser le premier formulaire ouvert mais je ferais en sorte que le second se mette devant pour pas qu'on y accede ^^
enfin bref camouflage !
sinon c pas grave je v laisser le premier formulaire ouvert mais je ferais en sorte que le second se mette devant pour pas qu'on y accede ^^
enfin bref camouflage !
Tu utilises la propriété Caption
Ex : Me.Etq_UserName.Caption =xxx
Ou direct depuis l'autre formulaire : Forms(xxx).Etq_UserName.Caption=xxx
Ex : Me.Etq_UserName.Caption =xxx
Ou direct depuis l'autre formulaire : Forms(xxx).Etq_UserName.Caption=xxx
cool sa marche merci :)
sinon tu c pas cmmt je peux faire pour gerer plusieurs utilisateur ?
parce que si je met dropp utilisateur dans la table securite, sa ne marche pas.
sinon tu c pas cmmt je peux faire pour gerer plusieurs utilisateur ?
parce que si je met dropp utilisateur dans la table securite, sa ne marche pas.
;-)
Un dropp utilisateur ? Wat is dat ?
Qu'entends tu par gérer plusieur utilisateurs ?
;-)
Un dropp utilisateur ? Wat is dat ?
Qu'entends tu par gérer plusieur utilisateurs ?
;-)
sinon tu c pas cmmt je peux faire pour gerer plusieurs utilisateur ?
parce que si je met dropp utilisateur dans la table securite, sa ne marche pas.
lol dsl fatigue de fin de semaine je voulais dire:
parce que si je met ... euh en faite je c plus ce que je voulais dire lol
Donc si je me souvient le probleme etait avec le Cpt, quand je veut mettre plusieur utilisateur dans ma table securite. et que par exemple je ve me connecter avec le second utilisateur il ne me lance pas le second formulaire et parfois il me met une erreur sur le:
For Cpt= 1 To vLaTable.RecordCount
voila sa devrait etre plus clair.
Sinon qd g plus d'un utilisateur dans ma table et que je v tester mon msgbox "Nom d'utilisateur ou mot de passe incorrect"
il m'affiche le message autant de fois qu'il y a d'utilisateur.
merci d'avance pour ton aide.
parce que si je met dropp utilisateur dans la table securite, sa ne marche pas.
lol dsl fatigue de fin de semaine je voulais dire:
parce que si je met ... euh en faite je c plus ce que je voulais dire lol
Donc si je me souvient le probleme etait avec le Cpt, quand je veut mettre plusieur utilisateur dans ma table securite. et que par exemple je ve me connecter avec le second utilisateur il ne me lance pas le second formulaire et parfois il me met une erreur sur le:
For Cpt= 1 To vLaTable.RecordCount
voila sa devrait etre plus clair.
Sinon qd g plus d'un utilisateur dans ma table et que je v tester mon msgbox "Nom d'utilisateur ou mot de passe incorrect"
il m'affiche le message autant de fois qu'il y a d'utilisateur.
merci d'avance pour ton aide.
je fais ma connection a la base de donnée (.Open Current Project.Connection)
mais en suite je vois pas comment ouvrir les champs de la table et comment les comparés a ceux du formulaire. et comment faire pour qu'il compare les mots de passe par rapport au nom de l'utilisateur entré !
dsl si je suis chiant mais je m'y connais pas en VBA !!!
merci pour vos reponses !
On va dire que, dans ton formulaire, tu as les objets suivants :
1 table qui s'appelle "Sécurité", avec les champs NomUtil qui contient le nom de l'utilisateur et Pswd qui contient le password...
Dans ton formulaire :
1 zone de texte qui contient le nom de l'utilisateur nommée : Txt_NomUtilisateur
1 zone de texte qui contient le mot de passe nommée : Txt_Password
1 bouton OK : Btn_OK
Tu mets ce code dans l'événement _Click de Btn_OK :
Dim LaTable, Cpt, NomUtilisateur, MotDePasse
Set LaTable = CurrentDb.OpenRecordset("Sécurité")
LaTable.MoveLast
LaTable.MoveFirst
For Cpt = 1 To LaTable.RecordCount
NomUtilisateur = LaTable.NomUtil
MotDePasse = LaTable.Pswd
If Me.Txt_NomUtilisateur = NomUtilisateur Then
If Me.Txt_Password = MotDePasse Then
LaTable.Close
DoCmd.OpenForm (LeFormulaire)
Unload Me
End If
End If
Next
LaTable.Close
-------------------------------------
Ca ouvre la table sécurité, le MoveLast/MoveFirst sont là pour alimenter automatiquement le Recordcount de la table et pour la boucle...
Ensuite, cela compare le contenu des champs de la table avec le contenu des zones de texte...
Si cela correspond, on ferme la table ouverte, on ouvre le bon formulaire et ça ferme ton formulaire de sécurité...
;-)
et donc quand tu dis "Sécurité" sa correspond au formulaire d'identification ?
Sinon le "Cpt" et le "Me" sa correspoond a koi ?
En tout cas merci de ton aide je v essayer sa tout de suite.
"LaTable" est une variable "objet" qui pointe sur la vraie table physique...
"Sécurité" c'est le vrai nom de ta table sécurité....
"Cpt" c'est une variable qui sert pour le compteur (elle va prendre successivement les valeurs 1,2,3... jusqu'au total des enregistrements de la table....
"Me", c'est l'objet en cours/actif, en l'occurence, ton formulaire sécurité...
;-)
Dim LaTable As Database
Dim Cpt As Integer
Dim NomUtilisateur As String
Dim MotDePasse As String
Set LaTable = CurrentDb.OpenRecordset("securite")
LaTable.MoveLast
LaTable.MoveFirst
For Cpt = 1 To LaTable.RecordCount
NomUtilisateur = LaTable.NomUtil
MotDePasse = LaTable.Pswd
If Me.Txt_NomUtilisateur = NomUtilisateur Then
If Me.Txt_Password = MotDePasse Then
LaTable.Close
DoCmd.OpenForm ("Gestio du Régime Indemnitaire")
Unload Me
End If
End If
Next
LaTable.Close
Et il me met un message d'erreur sur le .MoveLast en disant:
Membre de méthode ou de données introuvable