Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
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 10/03/2011, 02h53   #1
Membre du Club
 
Homme Claude Larocque
Développeur informatique
Inscription : mai 2009
Messages : 61
Détails du profil
Informations personnelles :
Nom : Homme Claude Larocque
Localisation : Canada

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : mai 2009
Messages : 61
Points : 46
Points : 46
Par défaut Problème mot de passe

Bonjour,
Je joins un fichier Word pour plus d'explications, mon problème est qu'un seul utilisateur avec son mot de passe fonctionne, je ne connais pas le code pour aller lire dans la table toutes les combinaisons des champs UtilisateurID et MotDePasse.
Mon code fonctionne parfaitement avec l'employé clarocque, mais lorsque j'entre crenzo et son mot de passe, j'obtiens le message d'erreur configuré dans mon code.

SVP voir le document Word qui saura vous éclairer.

Merci de votre aide

Claude du Québec
toumack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 16h42   #2
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
Bonjour

Alors...
Euh ... ben...
Par quel bout je commence ...

Je dirai qu'au vu de ce que j'ai vu :
1- tu es débutant en programmation
2- tu n'as rien compris à la programmation objet

Me trompe-je ?
LES plus grosses erreurs que je vois :
1- ouverture de recordset sans préciser ce qui est recherché. Donc, forcément, ouverture sur le premier enregistrement (claroque)
2- aucune fermeture du recordset
3- usage de copier-coller pour passer des informations d'un formulaire à un autre

Bref, je dirai que la copie est à revoir en intégralité.
Tu peux cependant conserver ton interface, si tu y tiens. On dirait que tu as passé du temps dessus...
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2011, 12h55   #3
Membre actif
 
Homme Dominique
Gestion parc machine, assistance informatique, développement Access, Excel...
Inscription : février 2007
Messages : 130
Détails du profil
Informations personnelles :
Nom : Homme Dominique
Âge : 56
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Gestion parc machine, assistance informatique, développement Access, Excel...
Secteur : Service public

Informations forums :
Inscription : février 2007
Messages : 130
Points : 161
Points : 161
Bonjour.
Je peut te proposer la solution suivante:
- Ouvrir en premier le formulaire "Choisir employé"
- Dans la procédure associée au choix de chaque employé, ouvrir le formulaire "Choisir mot de passe" avec passage en paramètre de l'identifiant de l'employé choisi et fermer le formulaire "Choisir employé"
Code :
1
2
DoCmd.OpenForm "Choisir mot de passe", , , , , , IdEmploye
DoCmd.Close acForm, "Choisir employe"
- Dans la procédure associée à l'ouverture du formulaire "Choisir mot de passe", récupérer l'identifiant de l'employé
Code :
1
2
3
4
5
6
7
8
Private Sub Form_Open(Cancel As Integer)
  'Si le paramètre d'ouverture existe
  If Not (IsNull(OpenArgs)) Then
    strIdUser = OpenArgs
  Else
    Cancel = True
  End If
End Sub
- Dans la procédure liée au bouton "Connexion", rechercher le mot de passe stocké puis le comparer à celui saisi.

Code de la fonction permettant de rechercher le mot de passe de l'employé stocké dans la BDD
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
Private Function RchePW(ByVal strId As String, ByRef intPW As Integer) As Boolean
'Cette fonction recherche le mot de passe de l'utilisateur sélectionné
'Elle retourne vrai si le mot de passe de l'utilisateur est trouvé
 
'Entrée: strId:    Identifiant de l'utilisateur
'Sortie:  intPW:  Mot de passe de l'utilisateur
 
  On Error GoTo TrtErr
 
  Dim oMyDtb As Database    'Base de données courante
  Dim oMyQry As QueryDef    'Requête de recherche du mot de passe
  Dim oRst As Recordset     'Résultat de la requête
 
  'Initialisation
  RchePW = False
  intPW = 0
  Set oMyDtb = CurrentDb
 
  'Créer et exécécuter la requête
  Set oMyQry = oMyDtb.CreateQueryDef("")
  oMyQry.SQL = "SELECT MotDePasse " & _
               "FROM Employes " & _
               "WHERE Id=" & strId & ";"
 
  'Exécuter la requête
  Set oRst = oMyQry.OpenRecordset()
 
  If Not (oRst.EOF) Then
    RchePW = True
    intPW = oRst.Fields(0)
  End If
 
  Set oRst = Nothing
  Set oMyDtb = Nothing
 
  Exit Function
TrtErr:
  If Not oRst Is Nothing Then Set oRst = Nothing
  If Not oMyDtb Is Nothing Then Set oMyDtb = Nothing
  Error Err 'Retour à la gestion  d'erreur de la procédure appelante
End Function
Par contre, je ne comprend pas l'utilisation de 2 formulaires alors qu'il me semble possible d'utiliser directement le formulaire "Connexion".
De plus, comme te l'a écrit Maxence, tu semble avoir certaines lacunes, alors n'hésite pas à parcourir ce site fabuleux contenant quantité de tutos et d'informations pertinentes pour te perfectionner.
Cordialement, Dominique
PapouDomi 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 18h25.


 
 
 
 
Partenaires

Hébergement Web