Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Sécurité
Sécurité Le forum qui s'occupe de votre préoccupation de sécuriser l'accès à votre application Access, ainsi qu'à la sécurité des données.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/08/2007, 17h11   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 83
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 83
Points : 10
Points : 10
Par défaut Identification par formulaire

Bonjour;

Dans mon application, je dois mettrer un formuliare d'identification au démarrage qui va pouvoir permettre au deux type d'utilisateur (opérateur ou administarteur) d'accéder à deux menus (menu_admin ou menu_user) différents selon leur statuts, l'identification se fait par pseudo et mot de passe.

les données sur les utilisateurs sont mis dans une table User (Id, Nom(pseudo), PAsswd, Statut).

Je n'arrive pas à mettre les conditions ni en macros ni en code VB (d'ailleurs jy suis débtante).

Que faire?

Bon Ciel
missastro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 17h43   #2
Expert Confirmé Sénior

 
Avatar de cafeine
 
Inscription : juin 2002
Messages : 3 882
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 3 882
Points : 4 500
Points : 4 500
Hello,

pense à regarder la FAQ :
http://access.developpez.com/faq/?page=TAAdmin#login
__________________
Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème

Développez une application de gestion des comptes bancaires dans Access de A à Z
Déjà 12 tutoriels, le dernier en date : Comment faire un TextBox auto-extensible dans un formulaire ?


cafeine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 18h11   #3
Membre régulier
 
Inscription : mai 2006
Messages : 164
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 164
Points : 95
Points : 95
Par défaut Formulaire avec mot passe

Je suis dans le même cas et je n'arrive pas trouver réponse à mon problème:
j'ai créé une Table TA Motpasse avec 3 champs(N° ordre, Nom et Mot de passe)et un formulaire d'identification pour être autorisé à ouvrir un formulaire d'accueil.
Ce formulaire d'identification Fo Motpasse permet d'introduire son login (Nom avec choix sur zone de liste modifiable) et son mot de passe . Ce principe fonctionne uniquement avec le 1 er nom et le 1er mot de passe de la table. J'ai l"impression qu'il manque quelque chose dans la sql ou dans la formulation de l'identification en code VBA.
L'exemple formulairee login/mot de passe sur le site ne répond pas tout à fait à mon application;il y a plus simple je pense.
merci pour l'aide
Jacques-Henri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 21h54   #4
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 83
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 83
Points : 10
Points : 10
Re bonsoir

Moi aussi je suis passé par ce lien, je ne sais pas si je pourrai dire si ça m'a servi ou pas mais quand j'utilise le code dans mon apllication avec quelques modifications ça ne marche pas, peut etre parce que je suis encore débutante en VB et que j'ai pas réussie à ajuster le code selon mon cas:

Dans l'exemple ça renvoie vers un seul formulaire , pour mon application j'ai deux cas, et qui dépend du statut de l'utilisateur .

J'éspère que j'étais assez claire


Bon Ciel
missastro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 12h27   #5
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 83
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 83
Points : 10
Points : 10
Bonjour!

Voici le code que j'ai mis pour l'identification mais ça m'affiche toujours un message d'erreur!

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 Private Sub cmd_connexion_Click()
 
Me.Requery
Dim sql, User_id, User_profil As String
Dim rs As DAO.Recordset
Static i As Byte
sql = "SELECT * FROM Utilisateur WHERE Nom = '" & Me.txt_user & "' AND passwd ='" & Me.txt_pass & "';"
Set rs = CurrentDb.OpenRecordset(sql)
If Not rs.EOF Then
  If Profil = "Administrateur" Then
 
  DoCmd.OpenForm "menu_admin", acNormal, , , , acWindowNormal 'mettre Le formulaire Menu admin
  DoCmd.Close acForm, "Identification"
  User_id = rs("Utilisateur").Value
  User_profil = rs("profil").Value
 
  Else
  DoCmd.OpenForm "DA_user", acNormal, , , , acWindowNormal 'mettre Le formulaire Menu user
  DoCmd.Close acForm, "Identification"
  User_id = rs("Utilisateur").Value
  User_profil = rs("profil").Value
 
Else
  MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
  i = i + 1
End If
If i = 3 Then
MsgBox "Vous avez dépassé le nombre de tentatives autorisés", vbCritical
DoCmd.Quit
End If
 
 
End Sub
Et c'est à partir du lien envoyé ci-dessus que j'ai mis ce code.
J'éspère que je me suis bien expliquer


Cordialement
missastro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 12h40   #6
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 625
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 625
Points : 30 922
Points : 30 922
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Tu ne testes ici que le premier enregistrement trouver dans ta requête SQL.

Tu testes si tu es à la fin
Mais tu ne parcours pas la table Utilisateur, il faut faire une boucle
Code :
1
2
3
4
While not rs.EOF
     .....
     rs.MoveNext
Wend
Donc tant que tu n'es pas à la fin tu effectues tes tests, si tes tests sont bons tu faispour te positionner au dernier, sinon avec le MoveNext tu vas sur le prochain User pour tester.

Starec
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 13h02   #7
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 83
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 83
Points : 10
Points : 10
Salut

ça m'affiche toujours un message d'erreur:

L'expression sur Clic entrée comme paramètre de la propriété de type évènement est à l'origine d'une erreur. Type défini par l'utilisateur non défini
  • Le résultat de l'expression n'est pas le nom d'une macro, le nom d'une fonction définie par l'utilisateur ou [Event procedure]
  • Une erreur a peut etre été comise losr de l'évaluation d'une fonction, d'un évènement ou d'une macro.


Et voici le code modifié
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Private Sub cmd_connexion_Click()
 
Me.Requery
Dim sql, User_id, User_profil As String
Dim rs As DAO.Recordset
Static i As Byte
sql = "SELECT * FROM Utilisateur WHERE Nom = '" & Me.txt_user & "' AND passwd ='" & Me.txt_pass & "';"
Set rs = CurrentDb.OpenRecordset(sql)
While Not rs.EOF
  If Profil = "Administrateur" Then
 
  DoCmd.OpenForm "menu_admin", acNormal, , , , acWindowNormal 'mettre Le formulaire Menu admin
  DoCmd.Close acForm, "Identification"
  User_id = rs("Utilisateur").Value
  User_profil = rs("profil").Value
  rs.MoveLast
 
 
  Else
  DoCmd.OpenForm "DA_user", acNormal, , , , acWindowNormal 'mettre Le formulaire Menu user
  DoCmd.Close acForm, "Identification"
  User_id = rs("Utilisateur").Value
  User_profil = rs("profil").Value
  rs.MoveLast
 
  End If
 
  rs.MoveNext
Wend
 
  MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
  i = i + 1
 
If i = 3 Then
MsgBox "Vous avez dépassé le nombre de tentatives autorisés", vbCritical
DoCmd.Quit
End If
 
 
End Sub
Cordialement
missastro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 11h50   #8
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 83
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 83
Points : 10
Points : 10
Bonjour!

Je n'ai toujours pas trouvé de solutio pour ce problème et le vendredi je dois rendre le projet. Jy bloque toujours et aucun tutoriel ou TAQ ne m'a aidé à trouver une solution adéquate :s

SVP si vous avez une solution quelconque ou si ça peut se faire à l'aide de l'assiatnt merci de l'indiquer

Bonne journée
missastro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 12h30   #9
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 83
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 83
Points : 10
Points : 10
Par défaut Ajouter Microsotf DAO au projet

Salut

Je pense que j'ai pu localisé mon erreur. Je n'ai pas ajouter Microsoft DAO à mon projet et je ne sais pas comment faire!

Merci de m'indiquer comment!

missastro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 15h12   #10
Rédacteur/Modérateur
 
Avatar de Jeannot45
 
Homme Jean BALLAT
Inscription : octobre 2004
Messages : 2 856
Détails du profil
Informations personnelles :
Nom : Homme Jean BALLAT
Âge : 63
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : octobre 2004
Messages : 2 856
Points : 5 220
Points : 5 220
Bonjour,

Pour ajouter une référence, tu cliques dans le menu Outils de la fenetre VBE
puis tu cliques références
Dans la fenetre affichée, tu recherches Microsoft DAO 3.6 et tu l'actives

Jeannot
Jeannot45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 16h04   #11
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 83
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 83
Points : 10
Points : 10
Salut !

merci ça m'a débloqué le problème. Mais un autre message s'affiche au niveau de
Code :
 Set rst = CurrentDb.OpenRecordset(Ssql)
Il dit qu'il ya un paramètre qui manque

Que faire alors?
missastro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 16h54   #12
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 233
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 233
Points : 9 903
Points : 9 903
Envoyer un message via Skype™ à Domi2
Salut,

Code :
Set rst = CurrentDb.OpenRecordset(Sql)
et non

Code :
Set rst = CurrentDb.OpenRecordset(Ssql)
Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 17h05   #13
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 83
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 83
Points : 10
Points : 10


Toujours le mème message "Un paramètre est attendu"
missastro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 09h40   #14
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 233
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 233
Points : 9 903
Points : 9 903
Envoyer un message via Skype™ à Domi2
Bonjour,

Une table ==> Utilisateur

Avec 3 champs de type texte, sot Nom, Passwd, Profil (enfin, c'est comme ça que j'ai compris ta table).

Le code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Private Sub cmd_connexion_Click()
 
    Me.Requery
 
    Dim sql, User_id, User_profil As String
    Dim rs As DAO.Recordset
 
    Static i As Byte
 
    sql = "SELECT * FROM Utilisateur WHERE Nom = '" & Me.txt_user & "' AND passwd ='" & Me.txt_pass & "';"
 
    Set rs = CurrentDb.OpenRecordset(sql)
    If Not rs.EOF Then
 
        User_id = rs("Nom").Value
        User_profil = rs("Profil").Value
 
        If User_profil = "Administrateur" Then
 
            DoCmd.OpenForm "menu_admin", acNormal, , , , acWindowNormal 'mettre Le formulaire Menu admin
            DoCmd.Close acForm, "Identification"
 
        Else
            DoCmd.OpenForm "DA_user", acNormal, , , , acWindowNormal 'mettre Le formulaire Menu user
            DoCmd.Close acForm, "Identification"
 
        End If
 
    Else
 
        MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
        i = i + 1
 
    End If
 
    If i = 3 Then
 
        MsgBox "Vous avez dépassé le nombre de tentatives autorisés", vbCritical
 
        DoCmd.Quit
 
    End If
 
End Sub
Ca fonctionne ?

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 11h25   #15
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 83
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 83
Points : 10
Points : 10
Par défaut Délestage à l'horizon



Bonjour!

Merci pour ton aide mais g toujours des messages d'erreur; je crois que je vais laisser tomber, ça me dépasse.

Merci de votre aide!
J'adore ce forum

missastro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 11h36   #16
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 233
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 233
Points : 9 903
Points : 9 903
Envoyer un message via Skype™ à Domi2
Re,

Citation:
Merci pour ton aide mais g toujours des messages d'erreur; je crois que je vais laisser tomber, ça me dépasse.
J'ai testé mon code, il fonctionne !

1) Ta table s'appelle bien Utilisateur ?

2) Dans cette table, tu as bien les 3 champs mentionnées ?

3) Nom = Nom de l'utilisateur

4) Passwd = Mot de passe

5) Profil = administrateur, utilisateur, etc...

6) La référence DAO est bien cochée dans les références ?

Ca coince où ? quelles sont les messages d'erreurs ? Si tu cliques sur débogage, qu'elle est la ligne surlignée en jaune ?

Si tu délestes

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 12h48   #17
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 83
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 83
Points : 10
Points : 10
Salut!

Normelment je dois parcourrir tout les résultat donnés par le fichier et non seulement la 1ère ligne, g donc mis une boucle While. voici le code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
Private Sub cmd_connexion_Click()
Me.Requery
 
    Dim sql, User_id, User_profil As String
    Dim rs As DAO.Recordset
 
 
    Static i As Integer
    i = 0
 
 
    sql = "SELECT * FROM Utilisateur WHERE Nom = '" & Me.txt_user & "' AND passwd ='" & Me.txt_pass & "';"
 
    Set rs = CurrentDb.Recordset(sql)
    While (Not rs.EOF)
 
        User_id = rs("Nom").Value
        User_profil = rs("Profil").Value
 
        If User_profil = "Administrateur" Then
 
            DoCmd.OpenForm "menu_admin", acNormal, , , , acWindowNormal 'mettre Le formulaire Menu admin
            DoCmd.Close acForm, "Identification"
            rs.MoveLast
 
 
        Else
        If User_profil = "Opérateur" Then
 
            DoCmd.OpenForm "DA_user", acNormal, , , , acWindowNormal 'mettre Le formulaire Menu user
            DoCmd.Close acForm, "Identification"
            rs.MoveLast
 
        Else
        rs.MoveNext
        End If
        End If
 
   Wend
 
    If rs.EOF Then
 
        MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
        i = i + 1
 
    End If
 
    If i = 3 Then
 
        MsgBox "Vous avez dépassé le nombre de tentatives autorisés", vbCritical
        rs("Statut").Value = "Bloqué"
        DoCmd.Quit
 
    End If
 
 
End Sub
aussi au début avant que je met le while ça m'affichais une ligen ejuen au niveau de
Code :
 Set rs = CurrentDb.Recordset(sql)
Maintenant ça me donne ce message:
L'expression sur clic entrée comme paramètre de la propriété de type événement est à l'origine d'une erreur. Membre de méthode ou de donéne introuvable

Aussi tout ce que vous dites est juste. Microsoft DAO est bien coché et le reste des donnée est correcte.

missastro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 13h25   #18
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 233
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 233
Points : 9 903
Points : 9 903
Envoyer un message via Skype™ à Domi2
Re,

Vérifies encore que le nom des contrôles de ton formulaire correspondent bien, soit txt_user et txt_pass.

Et ensuite, tu colles LE CODE que je t'ai donné, et pas le tien...

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 15h54   #19
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 83
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 83
Points : 10
Points : 10
Re,

G utiliser le code que tu m'as envoyé, ça me donne une ligne jaune sur
Code :
Set rs = CurrentDb.OpenRecordset(sql)
On me dit que le type de données est incompatible!

Devrais-je activer quelque chose comme une bibliothèque ou autre pour que ça fonctionne?
missastro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 16h07   #20
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 233
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 233
Points : 9 903
Points : 9 903
Envoyer un message via Skype™ à Domi2
Re,

En principe, la seule bibliothèque à rajouter et DAO

Peux-tu donner une description exact de ta table (Nom de la table, nom et types des champs utilisés) et le nom des champs de ton formulaire de connexion.

Tu peux également poster ta base (enfin, le formulaire et la table suffisent).

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h22.


 
 
 
 
Partenaires

Hébergement Web