OVH Cloud OVH Cloud

Formulaire d'identification

31 réponses
Avatar
Leyley39
Bonjour

Je voudrais créer un formulaire d'accueil qui demande à l'utilisateur de
s'identifier (liste déroulante des utilisateurs) et un mots de passe. Si ces
informations sont justes, après avoir cliqué sur le bouton, l'utilisateur à
accès aux autres formulaire. J'ai créé dans une des tables, un champ "nom
d'utilisateur" et "Mot de passe". Quel est le code qui me pertmettra de faire
ça et est-ce que je le place au niveau du bouton d'ouverture des autres
formulaires ?
--
Merci de votre aide

Leyley39

10 réponses

1 2 3 4
Avatar
Michel__D
"Fabien" a écrit dans le message de news:
Michel__D a écrit :
> "Fabien" a écrit dans le message de news:eL$
>> Michel__D a écrit :
>>> Bonjour,
>>>
>>> Tu peux utiliser ceci :
>>>
>>> Private Sub Entrerr_Click()
>>> Dim Rs As DAO.Recordset
>>> On Error Goto Err_Entrerr_Click
>>>
>>> Set Rs = CurrentDb.OpenRecordset("PRO SMAEC")
>>> Do While Not Rs.EOF
>>> If Rs.Fields("NOM UTILISATEUR").Value=me.Modifiable4.Value Then
>>> If Rs.Fields("CODE ACCES").Value=me.CODE_ACCES.Value Then
>>> MsgBox "Ok"
>>> Exit Do
>>> Else
>>> MsgBox "Erreur de mot de passe"
>>> Exit Sub
>>> End If
>>> Else
>>> MsgBox "Utilisateur non reconnu !!!", vbCritical, "Attention..."
>>> Exit Sub
>>> End If
>>> Rs.MoveNext
>>> Loop
>>>
>>> DoCmd.OpenForm "Menu Général "
>>>
>>> Exit_Entrerr_Click:
>>> Exit Sub
>>>
>>> Err_Entrerr_Click:
>>> MsgBox Err.Description
>>> Resume Exit_Entrerr_Click
>>>
>>> End Sub
>>>
>>>
>>>
>>> Ou cela (solution de Fabien modifié) :
>>>
>>> Private enterr_click
>>>
>>> If nz(dlookup("[Code acces]","PRO SMAEC","[Nom Utilisateur]='" & _
>>> me.modifiable4 & "'"),"")<>"" then
>>> MsgBox "Ok"
>>> Docmd.openform "Menu Général"
>>> else
>>> if dcount("[Nom Utilisateur]","PRO SMAEC","[Nom Utilisateur]='" & _
>>> me.modifiable4 & "'")=0 then
>>> MsgBox "Utilisateur non reconnu !!!", vbCritical, "Attention..."
>>> else
>>> MsgBox "Mot de passe incorrect !!"
>>> end if
>>> end if
>>> end sub
>>>
>>> PS:Attention je n'ai pas testé.
>>>
>> Pssss : si le nom de l'utilisateur est choisi dans la liste, il est
>> forcément dans la table ;-)
>
> Pas si tu saisi un nom d'utilisateur inexistant dans la liste, possible
> si l'option "Limiter à liste" est sur non.
>
:-) on coupe le cheveux en 4 :-)



C'est pour faire prendre conscience à l'initiateur du post de la
pertinence de ta remarque et du paramêtrage de la liste déroulante
à effectuer, à savoir option "Limiter à liste" est positionnée sur oui.
Avatar
Leyley39
Merci pour votre aide

J'ai utilisé ton code Michel_D mais ca bloque encore. J'ai toujours mon
message box qui dit que l'utilisateur n'est pas reconnu (pourtant choisi dans
la liste déroulante comme tu me l'as fait remarqué). Je n'y comprends rien.
Où est-ce que ca peut bloquer ?
--
"Merci de m'aider à sortir la tête de l'eau"

Leyley39


"Michel__D" a écrit :


"Fabien" a écrit dans le message de news:
> Michel__D a écrit :
> > "Fabien" a écrit dans le message de news:eL$
> >> Michel__D a écrit :
> >>> Bonjour,
> >>>
> >>> Tu peux utiliser ceci :
> >>>
> >>> Private Sub Entrerr_Click()
> >>> Dim Rs As DAO.Recordset
> >>> On Error Goto Err_Entrerr_Click
> >>>
> >>> Set Rs = CurrentDb.OpenRecordset("PRO SMAEC")
> >>> Do While Not Rs.EOF
> >>> If Rs.Fields("NOM UTILISATEUR").Value=me.Modifiable4.Value Then
> >>> If Rs.Fields("CODE ACCES").Value=me.CODE_ACCES.Value Then
> >>> MsgBox "Ok"
> >>> Exit Do
> >>> Else
> >>> MsgBox "Erreur de mot de passe"
> >>> Exit Sub
> >>> End If
> >>> Else
> >>> MsgBox "Utilisateur non reconnu !!!", vbCritical, "Attention..."
> >>> Exit Sub
> >>> End If
> >>> Rs.MoveNext
> >>> Loop
> >>>
> >>> DoCmd.OpenForm "Menu Général "
> >>>
> >>> Exit_Entrerr_Click:
> >>> Exit Sub
> >>>
> >>> Err_Entrerr_Click:
> >>> MsgBox Err.Description
> >>> Resume Exit_Entrerr_Click
> >>>
> >>> End Sub
> >>>
> >>>
> >>>
> >>> Ou cela (solution de Fabien modifié) :
> >>>
> >>> Private enterr_click
> >>>
> >>> If nz(dlookup("[Code acces]","PRO SMAEC","[Nom Utilisateur]='" & _
> >>> me.modifiable4 & "'"),"")<>"" then
> >>> MsgBox "Ok"
> >>> Docmd.openform "Menu Général"
> >>> else
> >>> if dcount("[Nom Utilisateur]","PRO SMAEC","[Nom Utilisateur]='" & _
> >>> me.modifiable4 & "'")=0 then
> >>> MsgBox "Utilisateur non reconnu !!!", vbCritical, "Attention..."
> >>> else
> >>> MsgBox "Mot de passe incorrect !!"
> >>> end if
> >>> end if
> >>> end sub
> >>>
> >>> PS:Attention je n'ai pas testé.
> >>>
> >> Pssss : si le nom de l'utilisateur est choisi dans la liste, il est
> >> forcément dans la table ;-)
> >
> > Pas si tu saisi un nom d'utilisateur inexistant dans la liste, possible
> > si l'option "Limiter à liste" est sur non.
> >
> :-) on coupe le cheveux en 4 :-)

C'est pour faire prendre conscience à l'initiateur du post de la
pertinence de ta remarque et du paramêtrage de la liste déroulante
à effectuer, à savoir option "Limiter à liste" est positionnée sur oui.




Avatar
Gloops
Leyley39 a écrit, le 27/08/2008 11:33 :
Merci pour votre aide

J'ai utilisé ton code Michel_D mais ca bloque encore. J'ai toujour s mon
message box qui dit que l'utilisateur n'est pas reconnu (pourtant chois i dans
la liste déroulante comme tu me l'as fait remarqué). Je n'y c omprends rien.
Où est-ce que ca peut bloquer ?



Bonjour,

Je suggère un

MsgBox modifiable_4

ça permet de bien prendre conscience de la valeur retournée, et au
besoin de rectifier la propriété BoundColumn.

Et je dis un grand bravo si dans deux ans en retouchant ce code, quand
tu verras modifiable_4 tu te dis "ah ben oui bien sûr c'est
l'utilisateur sélectionné".
Avatar
Gloops
Gloops a écrit, le 27/08/2008 11:43 :
Leyley39 a écrit, le 27/08/2008 11:33 :
Merci pour votre aide

J'ai utilisé ton code Michel_D mais ca bloque encore. J'ai toujou rs
mon message box qui dit que l'utilisateur n'est pas reconnu (pourtant
choisi dans la liste déroulante comme tu me l'as fait remarqué ). Je
n'y comprends rien. Où est-ce que ca peut bloquer ?



Bonjour,

Je suggère un

MsgBox modifiable_4



Me suis gourré, il n'y avait pas de trait de soulignement. Ah on ava it
rectifié ?
Bon et puis si jamais on laisse l'instruction un certain temps, mettre
Nz aussi, pour ne pas avoir d'erreur si rien n'est sélectionné.


ça permet de bien prendre conscience de la valeur retournée, et au
besoin de rectifier la propriété BoundColumn.

Et je dis un grand bravo si dans deux ans en retouchant ce code, quand
tu verras modifiable_4 tu te dis "ah ben oui bien sûr c'est
l'utilisateur sélectionné".



Avatar
Leyley39
Michel_D ça marche.

Ton code va super bien, celui de Fabien aussi. L'erreur venait de moi (mal
orthographié un champ) et il manquait les lignes suivantes dans le code pour
ouvrir le formulaire après identification :

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "Menu Général "
DoCmd.OpenForm stDocName, , , stLinkCriteria
--
Merci de votre aide, je commence un peu à aimer le VBA, rien est impossible
finalement

Leyley39


"Michel__D" a écrit :


"Fabien" a écrit dans le message de news:
> Michel__D a écrit :
> > "Fabien" a écrit dans le message de news:eL$
> >> Michel__D a écrit :
> >>> Bonjour,
> >>>
> >>> Tu peux utiliser ceci :
> >>>
> >>> Private Sub Entrerr_Click()
> >>> Dim Rs As DAO.Recordset
> >>> On Error Goto Err_Entrerr_Click
> >>>
> >>> Set Rs = CurrentDb.OpenRecordset("PRO SMAEC")
> >>> Do While Not Rs.EOF
> >>> If Rs.Fields("NOM UTILISATEUR").Value=me.Modifiable4.Value Then
> >>> If Rs.Fields("CODE ACCES").Value=me.CODE_ACCES.Value Then
> >>> MsgBox "Ok"
> >>> Exit Do
> >>> Else
> >>> MsgBox "Erreur de mot de passe"
> >>> Exit Sub
> >>> End If
> >>> Else
> >>> MsgBox "Utilisateur non reconnu !!!", vbCritical, "Attention..."
> >>> Exit Sub
> >>> End If
> >>> Rs.MoveNext
> >>> Loop
> >>>
> >>> DoCmd.OpenForm "Menu Général "
> >>>
> >>> Exit_Entrerr_Click:
> >>> Exit Sub
> >>>
> >>> Err_Entrerr_Click:
> >>> MsgBox Err.Description
> >>> Resume Exit_Entrerr_Click
> >>>
> >>> End Sub
> >>>
> >>>
> >>>
> >>> Ou cela (solution de Fabien modifié) :
> >>>
> >>> Private enterr_click
> >>>
> >>> If nz(dlookup("[Code acces]","PRO SMAEC","[Nom Utilisateur]='" & _
> >>> me.modifiable4 & "'"),"")<>"" then
> >>> MsgBox "Ok"
> >>> Docmd.openform "Menu Général"
> >>> else
> >>> if dcount("[Nom Utilisateur]","PRO SMAEC","[Nom Utilisateur]='" & _
> >>> me.modifiable4 & "'")=0 then
> >>> MsgBox "Utilisateur non reconnu !!!", vbCritical, "Attention..."
> >>> else
> >>> MsgBox "Mot de passe incorrect !!"
> >>> end if
> >>> end if
> >>> end sub
> >>>
> >>> PS:Attention je n'ai pas testé.
> >>>
> >> Pssss : si le nom de l'utilisateur est choisi dans la liste, il est
> >> forcément dans la table ;-)
> >
> > Pas si tu saisi un nom d'utilisateur inexistant dans la liste, possible
> > si l'option "Limiter à liste" est sur non.
> >
> :-) on coupe le cheveux en 4 :-)

C'est pour faire prendre conscience à l'initiateur du post de la
pertinence de ta remarque et du paramêtrage de la liste déroulante
à effectuer, à savoir option "Limiter à liste" est positionnée sur oui.




Avatar
Leyley39
J'ai parlé trop vite. Je n'ai qu'un utilisateur de reconnu. C'est un mystère.

Aussi, y aurait-t-il un moyen d'effacer le contenu du contrôle du mot de
passe à l'ouverture de la basse. Là, le dernier mot de passe entrer s'affiche
toujours.
--
Merci de votre aide, je replonge

Leyley39


"Leyley39" a écrit :

Michel_D ça marche.

Ton code va super bien, celui de Fabien aussi. L'erreur venait de moi (mal
orthographié un champ) et il manquait les lignes suivantes dans le code pour
ouvrir le formulaire après identification :

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "Menu Général "
DoCmd.OpenForm stDocName, , , stLinkCriteria
--
Merci de votre aide, je commence un peu à aimer le VBA, rien est impossible
finalement

Leyley39


"Michel__D" a écrit :

>
> "Fabien" a écrit dans le message de news:
> > Michel__D a écrit :
> > > "Fabien" a écrit dans le message de news:eL$
> > >> Michel__D a écrit :
> > >>> Bonjour,
> > >>>
> > >>> Tu peux utiliser ceci :
> > >>>
> > >>> Private Sub Entrerr_Click()
> > >>> Dim Rs As DAO.Recordset
> > >>> On Error Goto Err_Entrerr_Click
> > >>>
> > >>> Set Rs = CurrentDb.OpenRecordset("PRO SMAEC")
> > >>> Do While Not Rs.EOF
> > >>> If Rs.Fields("NOM UTILISATEUR").Value=me.Modifiable4.Value Then
> > >>> If Rs.Fields("CODE ACCES").Value=me.CODE_ACCES.Value Then
> > >>> MsgBox "Ok"
> > >>> Exit Do
> > >>> Else
> > >>> MsgBox "Erreur de mot de passe"
> > >>> Exit Sub
> > >>> End If
> > >>> Else
> > >>> MsgBox "Utilisateur non reconnu !!!", vbCritical, "Attention..."
> > >>> Exit Sub
> > >>> End If
> > >>> Rs.MoveNext
> > >>> Loop
> > >>>
> > >>> DoCmd.OpenForm "Menu Général "
> > >>>
> > >>> Exit_Entrerr_Click:
> > >>> Exit Sub
> > >>>
> > >>> Err_Entrerr_Click:
> > >>> MsgBox Err.Description
> > >>> Resume Exit_Entrerr_Click
> > >>>
> > >>> End Sub
> > >>>
> > >>>
> > >>>
> > >>> Ou cela (solution de Fabien modifié) :
> > >>>
> > >>> Private enterr_click
> > >>>
> > >>> If nz(dlookup("[Code acces]","PRO SMAEC","[Nom Utilisateur]='" & _
> > >>> me.modifiable4 & "'"),"")<>"" then
> > >>> MsgBox "Ok"
> > >>> Docmd.openform "Menu Général"
> > >>> else
> > >>> if dcount("[Nom Utilisateur]","PRO SMAEC","[Nom Utilisateur]='" & _
> > >>> me.modifiable4 & "'")=0 then
> > >>> MsgBox "Utilisateur non reconnu !!!", vbCritical, "Attention..."
> > >>> else
> > >>> MsgBox "Mot de passe incorrect !!"
> > >>> end if
> > >>> end if
> > >>> end sub
> > >>>
> > >>> PS:Attention je n'ai pas testé.
> > >>>
> > >> Pssss : si le nom de l'utilisateur est choisi dans la liste, il est
> > >> forcément dans la table ;-)
> > >
> > > Pas si tu saisi un nom d'utilisateur inexistant dans la liste, possible
> > > si l'option "Limiter à liste" est sur non.
> > >
> > :-) on coupe le cheveux en 4 :-)
>
> C'est pour faire prendre conscience à l'initiateur du post de la
> pertinence de ta remarque et du paramêtrage de la liste déroulante
> à effectuer, à savoir option "Limiter à liste" est positionnée sur oui.
>
>


Avatar
Fabien
Leyley39 a écrit :
J'ai parlé trop vite. Je n'ai qu'un utilisateur de reconnu. C'est un mystère.

Aussi, y aurait-t-il un moyen d'effacer le contenu du contrôle du mot de
passe à l'ouverture de la basse. Là, le dernier mot de passe entrer s'affiche
toujours.


Pas de panique . Le mot de passe s'affiche que parceque tu relances ton
formulaire en passant du mode création au mode fonctionnement.
Si tu fermes et que tu le reouvre la zone est a blanc.
Si tu veux cacher ce mot de passe lors de sa saisie (par des *) utilises
dans la propriéte "masque de saisie" du champ le mot clef 'Mot de passe'
Pour l'exemple sur le site de Mr Seneque
http://officesystemaccess.seneque.net/telecharger/loginsimple.zip
@+
Avatar
Leyley39
Quand je relance, le dernier mot de passe (même caché par des *) s'affiche.
J'aimerais bien que ce soit en blanc. Mais c'est un moindre soucis.

J'ai toujours se problème de reconnaissance des autres utilisateurs.
Pourquoi un seul des 10 utilisateurs créés est reconnu ? Le code devrait
fonctionné pour tous. Le problème vient d'ailleurs mais où ? C'est terrible
d'être si près du but.
--
Au secour, le VBA me poursuit.

Leyley39


"Fabien" a écrit :

Leyley39 a écrit :
> J'ai parlé trop vite. Je n'ai qu'un utilisateur de reconnu. C'est un mystère.
>
> Aussi, y aurait-t-il un moyen d'effacer le contenu du contrôle du mot de
> passe à l'ouverture de la basse. Là, le dernier mot de passe entrer s'affiche
> toujours.
Pas de panique . Le mot de passe s'affiche que parceque tu relances ton
formulaire en passant du mode création au mode fonctionnement.
Si tu fermes et que tu le reouvre la zone est a blanc.
Si tu veux cacher ce mot de passe lors de sa saisie (par des *) utilises
dans la propriéte "masque de saisie" du champ le mot clef 'Mot de passe'
Pour l'exemple sur le site de Mr Seneque
http://officesystemaccess.seneque.net/telecharger/loginsimple.zip
@+




Avatar
Fabien
Leyley39 a écrit :
Quand je relance, le dernier mot de passe (même caché par des *) s'affiche.
J'aimerais bien que ce soit en blanc. Mais c'est un moindre soucis.

J'ai toujours se problème de reconnaissance des autres utilisateurs.
Pourquoi un seul des 10 utilisateurs créés est reconnu ? Le code devrait
fonctionné pour tous. Le problème vient d'ailleurs mais où ? C'est terrible
d'être si près du but.


Quel code utilises tu ?
Avatar
Leyley39
Voici le code et il ne fonctionne que pour mon premier utilisateur :

Private Sub Entrerr_Click()
Dim Rs As DAO.Recordset
On Error GoTo Err_Entrerr_Click

Set Rs = CurrentDb.OpenRecordset("PRO SMAEC")
Do While Not Rs.EOF
If Rs.Fields("NOM UTILISATEUR").Value = Me.Modifiable4.Value Then
If Rs.Fields("CODE ACCES").Value = Me.CODEACCES.Value Then

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "Menu Général "
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit Do
Else
MsgBox "Erreur de mot de passe"
Exit Sub
End If
Else
MsgBox "Utilisateur non reconnu !!!", vbCritical, "Attention..."
Exit Sub
End If
Rs.MoveNext
Loop


Exit_Entrerr_Click:
Exit Sub

Err_Entrerr_Click:
MsgBox Err.Description
Resume Exit_Entrerr_Click

End Sub
--
Merci de ton aide

Leyley39


"Fabien" a écrit :

Leyley39 a écrit :
> Quand je relance, le dernier mot de passe (même caché par des *) s'affiche.
> J'aimerais bien que ce soit en blanc. Mais c'est un moindre soucis.
>
> J'ai toujours se problème de reconnaissance des autres utilisateurs.
> Pourquoi un seul des 10 utilisateurs créés est reconnu ? Le code devrait
> fonctionné pour tous. Le problème vient d'ailleurs mais où ? C'est terrible
> d'être si près du but.
Quel code utilises tu ?



1 2 3 4