Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
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 08/12/2010, 10h32   #1
Invité régulier
 
Inscription : novembre 2010
Messages : 66
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 66
Points : 5
Points : 5
Par défaut Ouvrir un formulaire aprés inactivité

Bonjour a tous,

J'ai chercher un peu partout mais je n'ai pas trouvé la réponse.

Je souhaite ouvrir un formulaire après un temps d'inactivité de l'utilisateur.

Comment ca marche ? ?

Merci à tous.
Gorane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 11h39   #2
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 743
Points : 10 743
Envoyer un message via MSN à jpcheck
salut,

plusieurs sujets lies a ta questions existent deja.
http://www.developpez.net/forums/d84...activite-base/

http://www.developpez.net/forums/d89...ss-inactivite/

Dis nous si cela te convient
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 11h59   #3
Invité régulier
 
Inscription : novembre 2010
Messages : 66
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 66
Points : 5
Points : 5
Merci le 1er lien peut m'intterresé mais il ne fonctionne pas ?

le fait de fermer tout les formulaires sauf mon formulaire d'acceuil serait un bon plan.

Mn formulaire d'aceuil sera l'identification par mot de passe .

Qu'est ce qui cloche ?

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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
Private Sub cmdValider_Click()
 
Dim db As Database
Dim rs As Recordset
Dim requete As String
 
requete = "SELECT * FROM Salarié WHERE Matricule = '" & txtLogin & "' AND mdp = '" & txtMdp & "'"
Set db = CurrentDb
Set rs = db.OpenRecordset(requete, dbOpenDynaset)
 
If rs.RecordCount <> 1 Then
MsgBox ("Authentification invalide, veuillez recommencer")
Else
MsgBox ("Authentification valide")
DoCmd.OpenForm "start"
Forms![start].Requery
 
 
 
End If
End Sub
 
 
Private Sub Form_Load()
 
End Sub
 
'Option Compare Database
 
'Public ExpiredTime
'
 
Sub Form_Timer()
' IDLEMINUTES intervalle (sec) avant lancement de la subroutine IdleTimeDetected
         Const IDLEMINUTES = 0.01
 
         Static PrevControlName As String
         Static PrevFormName As String
 
         Dim ActiveFormName As String
         Dim ActiveControlName As String
         Dim ExpiredMinutes
 
         On Error Resume Next
 
         ' vérifie si formulaire ou contrôle actif
 
         ActiveFormName = Screen.ActiveForm.Name
         If Err Then
            ActiveFormName = "No Active Form"
            Err = 0
         End If
 
         ActiveControlName = Screen.ActiveControl.Name
            If Err Then
            ActiveControlName = "No Active Control"
            Err = 0
         End If
 
         ' verifie actif actuel et reinitialise temps expiration si:
         '    1. aucun enregistrement d'action encore (code pour
         '       la premiere fois).
         '    2. les noms precedents sont differents des noms courants
         '       (usager a fait quelque chose de different pendant l'intervalle de temps
           If (PrevControlName = "") Or (PrevFormName = "") _
           Or (ActiveFormName <> PrevFormName) _
           Or (ActiveControlName <> PrevControlName) Then
            PrevControlName = ActiveControlName
            PrevFormName = ActiveFormName
            ExpiredTime = 0
         Else
            ' incrémente le temps depuis dernière modif
            ExpiredTime = ExpiredTime + Me.TimerInterval
         End If
 
         ' tps depuis dernière modif supérieur au tps autorisé idleminutes ?
         ExpiredMinutes = (ExpiredTime / 1) / 1
         If ExpiredMinutes >= IDLEMINUTES Then
            ' ...si oui, je reset le temps d'expiration à 0...
            ExpiredTime = 0
            ' ...et j'appelle la sous-routine idletimedetected.
            IdleTimeDetected ExpiredMinutes
         End If
 
End Sub
 
Sub IdleTimeDetected(ExpiredMinutes)
MsgBox "5 min. sans utilisation, vous allez être déconnecté."
DoCmd.OpenForm "DECONNEXION"
End Sub
 
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If Not IsNull(KeyCode) Then
         ExpiredTime = 0
    End If
End Sub
End Sub
Merci d'avance
Gorane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 22h55   #4
Membre éprouvé
 
Avatar de dumas.blr
 
Homme Jean-Yves DUMAS
Consultant informatique
Inscription : juin 2010
Messages : 325
Détails du profil
Informations personnelles :
Nom : Homme Jean-Yves DUMAS
Âge : 48
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2010
Messages : 325
Points : 447
Points : 447
Bonjour Gorane,

Je ne suis pas un expert, mais il me semble que pour déclencher le timer, il te faut l'activer dans ton formulaire (par ex au moment de l'ouverture).
Si tu ne le met pas directement dans les propriétés du formulaire
tu peux utiliser l'instruction suivante
Code :
    Me.TimerInterval = <temps en ms>
en sachant que si ton timerinterval est égal à 0, tu désactive le timer.

Dis nous si ça te convient
dumas.blr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2010, 18h05   #5
Invité régulier
 
Inscription : novembre 2010
Messages : 66
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 66
Points : 5
Points : 5
Merci dumas.blr

alors, j'ai un petit résultat. j'ai programmé ton petit bou de code à 12000.

Le temps passé, il me met sur la msgbox : et quand je clic sur ok rien ne se passe.
Code :
1
2
 
MsgBox "5 min. sans utilisation, vous allez être déconnecté."
pourquoi mes form ne se ferme t il pas quand le temps est passé? ?

Merci à tous
Gorane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2010, 22h56   #6
Membre éprouvé
 
Avatar de dumas.blr
 
Homme Jean-Yves DUMAS
Consultant informatique
Inscription : juin 2010
Messages : 325
Détails du profil
Informations personnelles :
Nom : Homme Jean-Yves DUMAS
Âge : 48
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2010
Messages : 325
Points : 447
Points : 447
Euh, je ne comprends pas ....
Tu cherche à ouvrir un nouveau formulaire ou à fermer le formulaire en cours ?

Si tu cherche à fermer le formulaire je n'ai pas vu de code de type
dans le bout de code que tu as publié.

Quelle est l'algorithme général ?
dumas.blr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 17h58   #7
Invité régulier
 
Inscription : novembre 2010
Messages : 66
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 66
Points : 5
Points : 5
Alors je cherche à fermer les formulaires en cours et ouvrir le formulaire de départ qui me sert à s'identifier.
Gorane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 19h17   #8
Membre éprouvé
 
Avatar de dumas.blr
 
Homme Jean-Yves DUMAS
Consultant informatique
Inscription : juin 2010
Messages : 325
Détails du profil
Informations personnelles :
Nom : Homme Jean-Yves DUMAS
Âge : 48
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2010
Messages : 325
Points : 447
Points : 447
Donc, il faut que dans ton code, tu identifie tous les formulaires actifs et que tu les ferme avec un
Code :
docmd.close acform <nom du formulaire>
et que tu fasse en suite un
Code :
docmd.openform <formulaire de Login>
Il faudra que ton code soit placé dans un module indépendant de manière à ce qu'il ne dépende pas d'un formulaire spécifique.
Je suppose à ce propos que tu souhaite déclencher le timer à l'ouverture de n'importe quel formulaire ce qui signifie que sur chaque évènement timer tu appelle le code de controle d'inactivité.
C'est donc ce code de controle qui devra être placé dans un module indépendant. Tu n'aura plus qu'à coder dans l'évenement form_timer un appel de type
Code :
Mon_module_de_controle()
Attention aussi au fait que si un utilisateur ouvre plusieurs formulaires, il faudra faire une gestion des différents évènements timer déclenchés par les différents formulaires.
dumas.blr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 21h52   #9
Membre régulier
 
Homme Bruno Escaron
Inscription : janvier 2010
Messages : 84
Détails du profil
Informations personnelles :
Nom : Homme Bruno Escaron
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 84
Points : 96
Points : 96
Bonsoir,

Pour fermer tous les formulaires (Sauf le courant) j'utilise :

Code :
1
2
3
4
5
6
7
8
 
For Each LaForm In CurrentProject.AllForms
      If CurrentProject.AllForms(LaForm.Name).IsLoaded Then
         If Me.Name <> LaForm.Name Then
            DoCmd.Close acForm, LaForm.Name
         End If
      End If
Next
B_SKO est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 16h13   #10
Invité régulier
 
Inscription : novembre 2010
Messages : 66
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 66
Points : 5
Points : 5
Merci de vos reponse.

B_SKO : Ou placer ce code ? et qu'est ce que tu appel le courant ?

A+
Gorane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2010, 20h35   #11
Membre régulier
 
Homme Bruno Escaron
Inscription : janvier 2010
Messages : 84
Détails du profil
Informations personnelles :
Nom : Homme Bruno Escaron
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 84
Points : 96
Points : 96
Bonsoir,

Tu peux le place dans ton formulaire d'accueil puisque tu ne veux pas le fermer et que mon programme ne ferme pas le formulaire dans lequel il ce trouve (= le courant)


Tu peux le placer dans une procédure public de ton formulaire d'accueil appelé par depuis les procédure timer de tes formulaires.

A+
B_SKO est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h53.


 
 
 
 
Partenaires

Hébergement Web