[VBA] formulaire de securité
Fermé
Théo
-
9 juin 2005 à 10:28
WhiteFang Messages postés 2063 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 - 13 juin 2005 à 15:27
WhiteFang Messages postés 2063 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 - 13 juin 2005 à 15:27
A voir également:
- [VBA] formulaire de securité
- Formulaire de réclamation facebook - Guide
- Mode securite - Guide
- Url masquée pour votre sécurité - Forum Programmation
- Incompatibilité de type vba ✓ - Forum Programmation
- La clé de sécurité réseau est incorrecte ✓ - Forum WiFi
28 réponses
WhiteFang
Messages postés
2063
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
204
9 juin 2005 à 13:36
9 juin 2005 à 13:36
;-)
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...
;-)
WhiteFang
Messages postés
2063
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
204
9 juin 2005 à 16:01
9 juin 2005 à 16:01
;-))
Remet la ligne DIM comme elle était !! ;-)))
;-))))
Remet la ligne DIM comme elle était !! ;-)))
;-))))
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
WhiteFang
Messages postés
2063
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
204
9 juin 2005 à 16:33
9 juin 2005 à 16:33
;-))))
Tu avais une erreur sur "LaTable.Close" ???
Tu avais une erreur sur "LaTable.Close" ???
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 ?
WhiteFang
Messages postés
2063
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
204
9 juin 2005 à 17:40
9 juin 2005 à 17:40
;-)
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 ?
WhiteFang
Messages postés
2063
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
204
10 juin 2005 à 09:42
10 juin 2005 à 09:42
;-)
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
UP
WhiteFang
Messages postés
2063
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
204
10 juin 2005 à 15:05
10 juin 2005 à 15:05
;-)
Pourquoi l'événement BeforeUpdate ?
Pourquoi l'événement BeforeUpdate ?
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 !
WhiteFang
Messages postés
2063
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
204
10 juin 2005 à 15:32
10 juin 2005 à 15:32
;-)
Tu aurais dû utiliser une étiquette, pas une zone de texte...
;-)
Tu aurais dû utiliser une étiquette, pas une zone de texte...
;-)
WhiteFang
Messages postés
2063
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
204
10 juin 2005 à 15:47
10 juin 2005 à 15:47
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.
WhiteFang
Messages postés
2063
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
204
10 juin 2005 à 18:07
10 juin 2005 à 18:07
;-)
Week-end !! ;-)))))))))
La suite Lundi.... ;-)
Week-end !! ;-)))))))))
La suite Lundi.... ;-)
WhiteFang
Messages postés
2063
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
204
13 juin 2005 à 09:36
13 juin 2005 à 09:36
;-)
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.
WhiteFang
Messages postés
2063
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
204
13 juin 2005 à 10:04
13 juin 2005 à 10:04
;-)
Ta base, c'est du confidentiel ? Passke c'est vrai, avec le temps, on arrive à se mélanger les pinceaux, et tu pourrais me l'envoyer que je vois tout ça avec mes yeux à moi... Mais bon.. Faut pas qu'elle soit trop grosse non plus ;-)
;-)
Ta base, c'est du confidentiel ? Passke c'est vrai, avec le temps, on arrive à se mélanger les pinceaux, et tu pourrais me l'envoyer que je vois tout ça avec mes yeux à moi... Mais bon.. Faut pas qu'elle soit trop grosse non plus ;-)
;-)
9 juin 2005 à 14:05
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 !
9 juin 2005 à 15:21
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é...
;-)
9 juin 2005 à 15:31
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.
9 juin 2005 à 15:41
"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é...
;-)
9 juin 2005 à 15:52
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