Identification en fonction des valeurs saisies [Résolu]

Signaler
Messages postés
49
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
17 novembre 2020
-
Messages postés
49
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
17 novembre 2020
-
Bonjour à tous,

J'ai un formulaire d'identification "fIdentification" avec deux champs "ID" et "MDP", ainsi qu'un bouton.
En rentrant un identifiant et un mot de passe, puis en cliquant sur le bouton, un code vient vérifier dans une table "tIdentification" (avec trois champs "Nom", "Prénom" et "Accessibilité") si ils correspondent à une ligne.
Si ils sont corrects, le formulaire "#Menu_principal" s'ouvre.

J'aimerai compléter cette identification en ouvrant des formulaires différents en fonction de la valeur d' "Accessibilité".

Je suppose qu'il faut créer un autre code, mais je ne sais pas quoi mettre.

Merci d'avance pour votre aide !

5 réponses

Messages postés
13182
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 novembre 2020
734
bonjour,
peux-tu partager ton code?
Messages postés
49
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
17 novembre 2020

Private Sub Commande5_Click()

Me.Requery
Dim sql As String 'User_groupe
Dim rs As DAO.Recordset

sql = "SELECT * FROM tIdentification WHERE Nom = " & """" & Me.Id & """" & " AND Prenom =" & """" & Me.MDP & """" & "
Set rs = CurrentDb.OpenRecordset(sql)
If Not rs.EOF Then
  DoCmd.OpenForm "#Menu_principal"

Else
 MsgBox " Identifiant ou mot de passe incorrect ", vbInformation, "Connexion"
  'i = i + 1
End If

End Sub
Messages postés
13182
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 novembre 2020
734
un exemple:
Dim nomform As String
Select Case rs!accessibilite
    Case "a":
        nomform = "formulaire a"
    Case "b":
        nomform = "formulaire b"
    Case Else:
        nomform = "#Menu_principal"
End Select
DoCmd.OpenForm nomform
Messages postés
49
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
17 novembre 2020

Voici mon nouveau code avec ce que tu m'as conseillé :

Private Sub Commande5_Click()

Me.Requery
Dim sql As String
Dim rs As DAO.Recordset
Dim nomform As String

sql = "SELECT * FROM tIdentification WHERE Nom = " & """" & Me.Id & """" & " AND Prenom =" & """" & Me.MDP & """" & ";"
Set rs = CurrentDb.OpenRecordset(sql)

If Not rs.EOF Then
    Select Case rs!Accessibilité
        Case Is = 2:
            nomform = "#Menu_principal2"
        Case Else:
            nomform = "#Menu_principal"
    End Select
    DoCmd.OpenForm nomform
Else
 MsgBox " Identifiant ou mot de passe incorrect ", vbInformation, "Connexion"
End If

End Sub


Malheureusement, je n'arrive pas à le faire fonctionner, ni à voir mon erreur.
Messages postés
13182
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 novembre 2020
734
"je n'arrive pas à le faire fonctionner": que se passe-t-il?

quel est le type du champ Accessibilité?
bizarre ce
Is =
.
Messages postés
49
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
17 novembre 2020

Dans l'état actuel, il ouvre le formulaire "#Menu_principal" peut importe ce que l'on tape.
Le champ Accessibilité est de type numérique.
J'ai essayé avec plusieurs syntaxe :
case 2
,
case is = 2
... en m'aidant du support microsoft, mais j'arrivais toujours au même résultat.
Messages postés
49
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
17 novembre 2020
>
Messages postés
13182
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 novembre 2020

Non, comment je peux faire ?
Messages postés
13182
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 novembre 2020
734 >
Messages postés
49
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
17 novembre 2020

tu peux ajouter après la ligne 17:
msgbox cstr(rs!Accessibilité) + "|"+ nomform
Messages postés
49
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
17 novembre 2020
>
Messages postés
13182
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 novembre 2020

Pour mon test, j'ai rentré deux lignes différents dans ma table, avec deux valeurs dans "accessibilité" différente, et peu importe ce que je rentre, ça m'affiche : 1; #Menu_principal".
Comment je peux permettre à
select case
de différencier les valeurs dans le champs "accessibilité" ?
Messages postés
13182
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 novembre 2020
734 >
Messages postés
49
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
17 novembre 2020

même si tu as 2 comme accessibilité pour les deux enregistrements de la table?
Messages postés
49
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
17 novembre 2020
>
Messages postés
13182
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 novembre 2020

Si je met 2 pour les deux enregistrement, c'est bien le 2eme formulaire qui s'ouvre, idem si je met 2 au premier champ et 1 au deuxième.
Messages postés
49
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
17 novembre 2020

MISE A JOUR : le problème venait de ma table "tIdentification".
Les deux identifiants étaient le même mot mais un en minuscule et l'autre et majuscules. Access ne faisait pas la différence entre les deux.

Mon problème est donc résolut, merci pour ton aide !