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 02/07/2011, 17h51   #1
Membre actif
 
Avatar de robyseb
 
Homme Sébastien
Développeur indépendant
Inscription : juillet 2011
Messages : 176
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Localisation : Canada

Informations professionnelles :
Activité : Développeur indépendant

Informations forums :
Inscription : juillet 2011
Messages : 176
Points : 192
Points : 192
Par défaut incompatibilité de type

Bonjour à tous je désire vous remerciez puisque je suis débutant et j'ai pu venir sur le site afin d'apprendre de multiple bonne choses grâce à vous . Maintenant j'ai un problème avec mon code et puisqu'il devient relativement gros je commence à avoir de la difficulté a trouver les erreur.

j'ai créer un système de login avec pouvoir et la possibilité de bloquer un utilisateur présentement dans mon code à la ligne du select case 0,1 quand je clique sur ok de mon formulaire sa fonctionne excepté que access me donne un message d'errreur d'incompatibilité de type. j'ai remarqué que si j'enlève le "strmsg" jusqu'au intlogonattemps < 3 le message disparait !! je me relève a vous pour me donner un coup de main merci beaucoup d'Avance.

puisque je n'ai pas affiché le code entier voici mes variante déclaré en début de module :

Dim user_bloquer As Boolean
Static intlogonattempts As Integer
intlogonattempts = intlogonattempts + 1

p.s. je croit ne pas avoir posté sur le bon forum excusé moi si oui ces mon premier post.

voici mon bout de code :
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
If valid_user = 2 Then
    niveau_acces = Nz(DLookup("niveau_acces", "tbl_secouriste", "IDsecouriste=Forms!EcranDeDemarrageInTrust!IDsecouriste"), 0)
        If niveau_acces = 0 Then
             MsgBox "Votre Niveau d'accès n'a pus être validé!", vbCritical, "Erreur"
             Exit Sub
        End If
        DoCmd.OpenForm "hiddenform", , , , , acHidden
 
End If
Select Case valid_user
 
    Case 0, 1 'arrive ici soit par erreur d'entrée du mot de passe ou autre
                If intlogonattempts < 3 Then
                strmsg = "Mauvais Identifiant ou Mot de Passe ! " & _
                        vbCrLf & "Contacter votre Administrateur si le problème persiste! "
                            MsgBox strmsg, vbExclamation, "Donnée(s) invalide! "
                        DoCmd.Close "hiddenform"
                        Forms!EcranDeDemarrageInTrust!motdepasse.Value = Null 'vide le champ de ecran de démarrage in trust
                        Forms!EcranDeDemarrageInTrust!motdepasse.SetFocus 'set le focus sur textbox mot de passe
                        End If
                If intlogonattempts > 3 Then
                Beep
                MsgBox "Tentative Multiple d'accès. Votre Compte à été Désactivé!. Contactez Votre Administrateur.", vbCritical, "Échec!"
                 user_bloquer = DLookup("[utilisateurbloque]", "tbl_secouriste", "IDsecouriste=Forms!EcranDeDemarrageInTrust!IDsecouriste")
                 If user_bloquer = False Then
                 'modification dans la table pour bloqué l'utilisateur
                    Dim MaTable As Recordset
                    Set MaTable = CurrentDb.OpenRecordset("tbl_secouriste")
                     Do Until MaTable.EOF = True
                     If MaTable("IDsecouriste") = Forms!EcranDeDemarrageInTrust!IDsecouriste Then
                        MaTable.Edit
                            MaTable("utilisateurbloque") = True
                        MaTable.Update
                     End If
                        MaTable.MoveNext
                     Loop
                        MaTable.Close
                    'vide les combobox et bloque ensuite les user suite au checkup du form ecran de demarrage in trust
                    Forms!EcranDeDemarrageInTrust!IDsecouriste = ""
                    Forms!EcranDeDemarrageInTrust!motdepasse = ""
                 Exit Sub
 
 
                End If
            End If
    Case 2
            Select Case niveau_acces
 
            Case 1 'menu niveau 1
                    'Valider expiration du mot de passe
                   periode_motdepasse = Nz(DLookup("[date_motdepasse]", "tbl_secouriste", "IDsecouriste=formulaires!EcranDeDemarrageInTrust!IDsecouriste"), "")
 
                    If periode_motdepasse < date - 60 Then
                        strmsg = "Votre Mot de Passe est expiré. Vous devez le changer !"
                        MsgBox strmsg, vbExclamation, "Mot de passe expiré!"
 
                        ID_check_motdepasse 'Ouvre formulaire de changement de mot de passe selon niveau_Acces
                    Else
                        Forms!hiddenform!IDsecouristevar = nomsecouriste 'variable déclaré au début
                        Forms!hiddenform!IDsecouristeFamille = lastnomsecouriste 'variable déclaré au début
 
                        DoCmd.Close acForm, "EcranDeDemarrageInTrust"
                        MsgBox "Bienvenue veuillez gardez votre mot de passe en sécurité Merci!", vbInformation, _
                        "Nouvelle session de " & nomsecouriste & " " & lastnomsecouriste & ""
                        intlogonattempts = 0
 
                        DoCmd.OpenForm "menugeneraladmin", acNormal
                   End If
robyseb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2011, 19h24   #2
Membre actif
 
Avatar de robyseb
 
Homme Sébastien
Développeur indépendant
Inscription : juillet 2011
Messages : 176
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Localisation : Canada

Informations professionnelles :
Activité : Développeur indépendant

Informations forums :
Inscription : juillet 2011
Messages : 176
Points : 192
Points : 192
Par défaut solution trouvé mais opinion demandé

Bonjour a tous ... j'ai finalement trouvé une solution

dans mon code ma ligne docmd.close "hiddenform" me causait le problème.
finalement je l'ai enlevé et fait : forms!hiddenform!IDsecouristevar = ""

donc finalement je voulais supprimer les variable en fermant le formulaire ... sauf que maintenant dite moi si je ne me trompe ! est-ce que je peut causer une erreur si je call "openform" ailleur dans le code, mais que celui-ci est déja ouvert.

Donc sinon quelqu'un a peut-être une idée !!

merci
robyseb 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 06h13.


 
 
 
 
Partenaires

Hébergement Web