Formulaire de connexion sous Access

Signaler
Messages postés
5
Date d'inscription
lundi 6 octobre 2008
Statut
Membre
Dernière intervention
2 juin 2010
-
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
-
Bonjour je suis actuellement en stage d'informatique et on me demande de créer un logiciel de gestion de salle, Il y a trois services qui peuvent accéder au logiciel, service culturel, jeunesse et sports.
Je crée donc un formulaire de "connexion" ou on choisi dans une liste déroulant le service désiré et on entre dans un champs texte le mot de passe de se service. Mais mon code en marche pas pour la connexion :

Il ne rentre pas dans le If mais je sait pas pourquoi :s j'ai vraiment tenté plein de truc et même mon maitre de stage ne voit pas

Private Sub Commande_connexion_Click()

Dim mabd As Database
Dim matable As Recordset
Dim trouve As Boolean
Dim Touv As String
Set mabd = DBEngine.Workspaces(0).Databases(0)
Set matable = mabd.OpenRecordset("Service_mdp", DB_OPEN_TABLE) ' Ouvre la table.

trouve = False
matable.MoveFirst
Do Until matable.EOF Or trouve = True
      
    If matable!nom_service Me!liste_service And matable!mdp_service Me!text_mdp Then
                trouve = True
                MsgBox "Ok"
                
      Else
            MsgBox "code erroné"
            DoCmd.Close
      End If
      matable.MoveNext
Loop

End Sub


Voila ma table :

1 réponse

Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
Absolument aucun intérêt à parcourir tout le RS, le SQL c'est fait pour.
Option Explicit

Public Function Pure(S As String) As String
Pure = Replace(S,"'","''")
End Function

Private Sub Commande_connexion_Click()
Dim Db As Database : Set Db = DBEngine.Workspaces(0).Databases(0)
Dim Rs As Recordset : Dim SQL As String

SQL = "SELECT id_service FROM Service_mdp WHERE nom_service='%1' AND mdp_service='%2';"
SQL = Replace(SQL,"%1",Pure(Me.nom_service.Text))
SQL = Replace(SQL,"%2",Pure(Me.text_mdp.Text))
Set Rs = Db.OpenRecordset(SQL)

If Rs.EOF Then
MsgBox "Mot de passe erroné. Bye-bye !", vbCritical, "Erreur"
DoCmd.Close
Else
MsgBox "OOkay c'est bon ...", vbInformation
End If

Rs.Close : Set Rs = Nothing
End Sub

---
VB.NET is good ... VB6 is better