Formulaire d'identification

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 4
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Leyley39
Le #16620491
Bonjour

j'ai utlisé ce code pour créer un formulaire logon. Mais il m'indique qu'il
manque un Do à la loop.

Private Sub Entrerr_Click()


Dim Rs As DAO.Recordset
Dim Reconnu As Boolean
Reconnu = False
Set Rs = CurrentDb.OpenRecordset("PRO SMAEC")
Do While Not Rs.EOF
If Rs.Fields("NOM UTILISATEUR").Value = Modifiable4.Value Then
If Rs.Fields("CODE ACCES").Value = CODE_ACCES.Value Then
MsgBox "Ok"
Reconnu = True
Exit Do
Else
MsgBox "Erreur de mot de passe"
GoTo Fin
End If
Rs.MoveNext
Loop
If Reconnu = False Then
MsgBox "Utilisateur non reconnu !!!", vbCritical, "Attention..."
GoTo Fin
End If
Dim stDocName As String
Dim stLinkCriteria As String

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

Exit_Entrerr_Click:
Exit Sub

Err_Entrerr_Click:
MsgBox Err.Description
Resume Exit_Entrerr_Click

Fin:


End Sub


Où est mon erreur ?

--
Merci de votre aide

Leyley39


"Leyley39" a écrit :

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


Fabien
Le #16620481
Leyley39 a écrit :
Bonjour

j'ai utlisé ce code pour créer un formulaire logon. Mais il m'indique qu'il
manque un Do à la loop.

Private Sub Entrerr_Click()


Dim Rs As DAO.Recordset
Dim Reconnu As Boolean
Reconnu = False
Set Rs = CurrentDb.OpenRecordset("PRO SMAEC")
Do While Not Rs.EOF
If Rs.Fields("NOM UTILISATEUR").Value = Modifiable4.Value Then
If Rs.Fields("CODE ACCES").Value = CODE_ACCES.Value Then
MsgBox "Ok"
Reconnu = True
Exit Do
Else
MsgBox "Erreur de mot de passe"
GoTo Fin
End If
Rs.MoveNext
Loop
If Reconnu = False Then
MsgBox "Utilisateur non reconnu !!!", vbCritical, "Attention..."
GoTo Fin
End If
Dim stDocName As String
Dim stLinkCriteria As String

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

Exit_Entrerr_Click:
Exit Sub

Err_Entrerr_Click:
MsgBox Err.Description
Resume Exit_Entrerr_Click

Fin:


End Sub


Où est mon erreur ?



Salut,
Tu pouvais faire plus simple
Private enterr_click

If nz(dlookup("[Code acces]","PRO SMAEC","[Nom Utilisateur]='" &
me.modifiable4 & "'","")<>"" then
MsgBox "Ok"
Reconnu=True
Docmd.openform "Menu Général"
else
MsgBox "Mot de passe incorrect !!"
Reconnu = False
end if
end sub
@+
Michel__D
Le #16620471
Bonjour,

Non il manque un End If à positionner avant ou aprés le 1er End If
et tu peux remplacer tes Goto Fin par des Exit Sub


Dim Rs As DAO.Recordset
Dim Reconnu As Boolean
Reconnu = False
Set Rs = CurrentDb.OpenRecordset("PRO SMAEC")
Do While Not Rs.EOF
If Rs.Fields("NOM UTILISATEUR").Value = Modifiable4.Value Then
If Rs.Fields("CODE ACCES").Value = CODE_ACCES.Value Then
MsgBox "Ok"
Reconnu = True
Exit Do
Else
MsgBox "Erreur de mot de passe"
GoTo Fin
End If

End If ' <= Le End If qui manque ***

Rs.MoveNext
Loop
If Reconnu = False Then
MsgBox "Utilisateur non reconnu !!!", vbCritical, "Attention..."
GoTo Fin
End If
Dim stDocName As String
Dim stLinkCriteria As String

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

Exit_Entrerr_Click:
Exit Sub

Err_Entrerr_Click:
MsgBox Err.Description
Resume Exit_Entrerr_Click

Fin:
End Sub
Leyley39
Le #16627431
Merci pour votre aide à tous les deux

J'ai ajouté et modifié ce que tu m'as dit Michel_D mais il semblerait que
j'ai encore une erreur. Si je fait exécuter le code, il ouvre la fenêtre
macro (qui est vide soit dit en passant). Dois-je créer une macro ? Laquelle ?

Fabien, j'ai essayé ton code. Il me dit qu'il manque une ) ou un séparateur
d'expression sur la première ligne. Comme je suis débutant en VBA, je ne vois
pas où ça pourrait être. Est-ce des guillemets que tu as mis ou des
apostrophe dans le code. C'est un peu petit, je ne vois pas toujours combien
il y en a.

Mais merci, j'avance tout doucement et j'espère voir le bout du tunnel.
--
Merci de votre aide

Leyley39


"Michel__D" a écrit :

Bonjour,

Non il manque un End If à positionner avant ou aprés le 1er End If
et tu peux remplacer tes Goto Fin par des Exit Sub


Dim Rs As DAO.Recordset
Dim Reconnu As Boolean
Reconnu = False
Set Rs = CurrentDb.OpenRecordset("PRO SMAEC")
Do While Not Rs.EOF
If Rs.Fields("NOM UTILISATEUR").Value = Modifiable4.Value Then
If Rs.Fields("CODE ACCES").Value = CODE_ACCES.Value Then
MsgBox "Ok"
Reconnu = True
Exit Do
Else
MsgBox "Erreur de mot de passe"
GoTo Fin
End If

End If ' <= Le End If qui manque ***

Rs.MoveNext
Loop
If Reconnu = False Then
MsgBox "Utilisateur non reconnu !!!", vbCritical, "Attention..."
GoTo Fin
End If
Dim stDocName As String
Dim stLinkCriteria As String

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

Exit_Entrerr_Click:
Exit Sub

Err_Entrerr_Click:
MsgBox Err.Description
Resume Exit_Entrerr_Click

Fin:
End Sub




Willi2004
Le #16627401
Salut Leyley39.
Une parenthèse oubliée en effet:
If nz(dlookup("[Code acces]","PRO SMAEC","[Nom Utilisateur]='" &
me.modifiable4 & "'"),"")<>"" Then


Leyley39 wrote:
Merci pour votre aide à tous les deux

J'ai ajouté et modifié ce que tu m'as dit Michel_D mais il semblerait
que j'ai encore une erreur. Si je fait exécuter le code, il ouvre la
fenêtre macro (qui est vide soit dit en passant). Dois-je créer une
macro ? Laquelle ?

Fabien, j'ai essayé ton code. Il me dit qu'il manque une ) ou un
séparateur d'expression sur la première ligne. Comme je suis débutant
en VBA, je ne vois pas où ça pourrait être. Est-ce des guillemets que
tu as mis ou des apostrophe dans le code. C'est un peu petit, je ne
vois pas toujours combien il y en a.

Mais merci, j'avance tout doucement et j'espère voir le bout du
tunnel.

Bonjour,

Non il manque un End If à positionner avant ou aprés le 1er End If
et tu peux remplacer tes Goto Fin par des Exit Sub


Dim Rs As DAO.Recordset
Dim Reconnu As Boolean
Reconnu = False
Set Rs = CurrentDb.OpenRecordset("PRO SMAEC")
Do While Not Rs.EOF
If Rs.Fields("NOM UTILISATEUR").Value = Modifiable4.Value Then
If Rs.Fields("CODE ACCES").Value = CODE_ACCES.Value Then
MsgBox "Ok"
Reconnu = True
Exit Do
Else
MsgBox "Erreur de mot de passe"
GoTo Fin
End If

End If ' <= Le End If qui manque ***

Rs.MoveNext
Loop
If Reconnu = False Then
MsgBox "Utilisateur non reconnu !!!", vbCritical, "Attention..."
GoTo Fin
End If
Dim stDocName As String
Dim stLinkCriteria As String

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

Exit_Entrerr_Click:
Exit Sub

Err_Entrerr_Click:
MsgBox Err.Description
Resume Exit_Entrerr_Click

Fin:
End Sub




Fabien
Le #16629791
Leyley39 a écrit :
Merci pour votre aide à tous les deux

J'ai ajouté et modifié ce que tu m'as dit Michel_D mais il semblerait que
j'ai encore une erreur. Si je fait exécuter le code, il ouvre la fenêtre
macro (qui est vide soit dit en passant). Dois-je créer une macro ? Laquelle ?

Fabien, j'ai essayé ton code. Il me dit qu'il manque une ) ou un séparateur
d'expression sur la première ligne. Comme je suis débutant en VBA, je ne vois
pas où ça pourrait être. Est-ce des guillemets que tu as mis ou des
apostrophe dans le code. C'est un peu petit, je ne vois pas toujours combien
il y en a.

Mais merci, j'avance tout doucement et j'espère voir le bout du tunnel.


Oups
If nz(dlookup("[Code acces]","PRO SMAEC","[Nom Utilisateur]='" &
me.modifiable4 & "'","")<>"" then
devient
If nz(dlookup("[Code acces]","PRO SMAEC","[Nom Utilisateur]='" &
me.modifiable4 & "'"),"")<>"" then
@+
Michel__D
Le #16629731
Bonjour,

"Leyley39" news:
Merci pour votre aide à tous les deux

J'ai ajouté et modifié ce que tu m'as dit Michel_D mais il semblerait que
j'ai encore une erreur. Si je fait exécuter le code, il ouvre la fenêtre
macro (qui est vide soit dit en passant). Dois-je créer une macro ? Laquelle ?

Fabien, j'ai essayé ton code. Il me dit qu'il manque une ) ou un séparateur
d'expression sur la première ligne. Comme je suis débutant en VBA, je ne vois
pas où ça pourrait être. Est-ce des guillemets que tu as mis ou des
apostrophe dans le code. C'est un peu petit, je ne vois pas toujours combien
il y en a.

Mais merci, j'avance tout doucement et j'espère voir le bout du tunnel.
--
Merci de votre aide

Leyley39


"Michel__D" a écrit :

> Bonjour,
>
> Non il manque un End If à positionner avant ou aprés le 1er End If
> et tu peux remplacer tes Goto Fin par des Exit Sub
>
>
> Dim Rs As DAO.Recordset
> Dim Reconnu As Boolean
> Reconnu = False
> Set Rs = CurrentDb.OpenRecordset("PRO SMAEC")
> Do While Not Rs.EOF
> If Rs.Fields("NOM UTILISATEUR").Value = Modifiable4.Value Then
> If Rs.Fields("CODE ACCES").Value = CODE_ACCES.Value Then
> MsgBox "Ok"
> Reconnu = True
> Exit Do
> Else
> MsgBox "Erreur de mot de passe"
> GoTo Fin
> End If
>
> End If ' <= Le End If qui manque ***
>
> Rs.MoveNext
> Loop
> If Reconnu = False Then
> MsgBox "Utilisateur non reconnu !!!", vbCritical, "Attention..."
> GoTo Fin
> End If
> Dim stDocName As String
> Dim stLinkCriteria As String
>
> stDocName = "Menu Général "
> DoCmd.OpenForm stDocName, , , stLinkCriteria
>
> Exit_Entrerr_Click:
> Exit Sub
>
> Err_Entrerr_Click:
> MsgBox Err.Description
> Resume Exit_Entrerr_Click
>
> Fin:
> End Sub



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é.
Fabien
Le #16629451
Michel__D a écrit :
Bonjour,

"Leyley39" news:
Merci pour votre aide à tous les deux

J'ai ajouté et modifié ce que tu m'as dit Michel_D mais il semblerait que
j'ai encore une erreur. Si je fait exécuter le code, il ouvre la fenêtre
macro (qui est vide soit dit en passant). Dois-je créer une macro ? Laquelle ?

Fabien, j'ai essayé ton code. Il me dit qu'il manque une ) ou un séparateur
d'expression sur la première ligne. Comme je suis débutant en VBA, je ne vois
pas où ça pourrait être. Est-ce des guillemets que tu as mis ou des
apostrophe dans le code. C'est un peu petit, je ne vois pas toujours combien
il y en a.

Mais merci, j'avance tout doucement et j'espère voir le bout du tunnel.
--
Merci de votre aide

Leyley39


"Michel__D" a écrit :

Bonjour,

Non il manque un End If à positionner avant ou aprés le 1er End If
et tu peux remplacer tes Goto Fin par des Exit Sub


Dim Rs As DAO.Recordset
Dim Reconnu As Boolean
Reconnu = False
Set Rs = CurrentDb.OpenRecordset("PRO SMAEC")
Do While Not Rs.EOF
If Rs.Fields("NOM UTILISATEUR").Value = Modifiable4.Value Then
If Rs.Fields("CODE ACCES").Value = CODE_ACCES.Value Then
MsgBox "Ok"
Reconnu = True
Exit Do
Else
MsgBox "Erreur de mot de passe"
GoTo Fin
End If

End If ' <= Le End If qui manque ***

Rs.MoveNext
Loop
If Reconnu = False Then
MsgBox "Utilisateur non reconnu !!!", vbCritical, "Attention..."
GoTo Fin
End If
Dim stDocName As String
Dim stLinkCriteria As String

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

Exit_Entrerr_Click:
Exit Sub

Err_Entrerr_Click:
MsgBox Err.Description
Resume Exit_Entrerr_Click

Fin:
End Sub





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 ;-)
Michel__D
Le #16629421
"Fabien"
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.
Fabien
Le #16629411
Michel__D a écrit :
"Fabien"
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 :-)
Publicité
Poster une réponse
Anonyme