IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Déconnexion automatique des utilisateurs


Sujet :

IHM

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut Déconnexion automatique des utilisateurs
    Bonjour à tous.

    Après avoir suivi des indications du FAQ pour la deconection des utilisateurs de mon application, j'ai des problemes lors de l'impression de mes etats.

    Le probleme est le suivant:

    dans le formulaire où j'ai mis la routine de dèconnection (TimerInterval=5000), il y a un button qui lance un etat. Lors de l'impression de l'etat, qui s'ouvre comme une fenetre independante et modal, l'application imprime le formulaire que reste ouvert en derrière.

    Je pense qui ça doit avoir relation avec la routine de deconnection des utilisateurs.

    Comment faire pour imprimer mon etat au lieu du formulaire?

    je vais mettre quelques codes:

    routine du formulaire principal, que verifie chaque 5sec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Private Sub Form_Timer()
    On Error GoTo Err_LogOffChk
    Dim Lancer As Boolean
    Dim rcd As DAO.Recordset
    Set rcd = CurrentDb.OpenRecordset("UserLogOff")
    rcd.MoveFirst
    Lancer = rcd.Fields(0)
    rcd.Close
    CurrentDb.Close
     
    If Lancer Then
        'INITIALIS.Caption = "Actualiser Base de Donnés"
        DoCmd.OpenForm "F_timer", acNormal, "", "", , acDialog
    End If
    Exit_LogOff:
       Exit Sub
    Err_LogOffChk:
       MsgBox Err.Number & vbCrLf & Err.Description, vbInformation, "Erreur"
       Resume Exit_LogOff
    End Sub
    popup qui s'affiche aux utilisateurs avant la deconnection (il n'a aucunne conection avec le probleme, c'est seullement pour completer les infos de deconnection!!)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Private Sub Form_Timer()
     
    chronno = DateAdd("s", -1, chronno)
    HORL.Value = Format(chronno, "Nn:Ss")
     
    If HORL.Value = "59:59" Then
     
        HORL.Value = "00:00"
     
        Dim ini As ADODB.Recordset
        Set ini = New ADODB.Recordset
        ini.ActiveConnection = CurrentProject.Connection
        ini.Source = "SELECT * FROM [UserLogOff]"
        ini.CursorType = adOpenDynamic
        ini.LockType = adLockOptimistic
        ini.Open
        ini.MoveLast
     
            With ini
                ![LOGOFF] = False
                .Update
            End With
     
        Application.QUIT acQuitSaveAll
     
    End If
     
    End Sub
    et finallement, l'impression des etats, qu'est fait à partir d'un menu contextuel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Function LancerImpression()
     
        DoCmd.RunCommand acCmdPrint
     
    End Function
    Merci d'avance pour l'aide

  2. #2
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    hello
    S'il s'agit d'imprimer un état, j'utilise la commande docmd.openreport suivie du nom du formulaire et du mode impression directe
    ainsi, je suis sûr de ce qui va à l'imprimante

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Je fais ça, j'utilise la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If CPTE.Value <> "" Then DoCmd.OpenReport "E_CBL_Demande", acViewPreview, "", "", acWindowNormal
    et après, dans l'etat, lacommande ci-dessus pour lancer l'impression,
    mais il toujours imprime le formulaire qui reste derrière l'ecran, et pas l'etat

    Je suis sure que la procedure form_timer prend l'impression, mais je ne sais pas comment faire pour forcer l'impression de l'etat...

    Merci pour la reponse

  4. #4
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    je pense que le problème vient de "DoCmd.RunCommand acCmdPrint" qui n'est pas assez précis et qui imprime l'objet courant
    c'est pourquoi j'utilise openreport, mais pas avec l'option acviewpreview mais plutôt sans aucune option car le défaut est l'impression directe

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    J'ai déjà essayé aussi...
    Il fait l'impression du formulaire quand même.

    même si je mets le formulaire invisible il imprime toujours le formulaire...
    est-ce qu'il y aurait un moyen de faire cette routine de deconnection d'une autre façon?

  6. #6
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    Si le problème vient vraiment du timer du formulaire, tu peux essayer les timers indépendant d'arkham46.

    Si tu passes par cette solution, prendre encore connaissance de cette discussion, pour une fermeture propre de l'application.

    Bon dév !

    Domi2

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Merci pour la réponse.

    Je vais essayer et je te parle après!

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Enfait, il y a quelques choses que je n'ai pas compris:

    1) Le timer marche tout seule ou il faut l'appeler?
    2) Où je dois mettre le code qu'était dans l'événement Form_Timer?

    Désolé, mais je ne comprends presque rien de cet histoire d'API...

  9. #9
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    Tu copies l'entier du code dans un module standard (et pas celui d'un formulaire).

    Pour démarrer le formulaire, tu appelles la fonction :

    Puis le code que tu désires voir exécuter dans la cette procédure (au bas la page)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'Ton code
    Private Sub Evenement_Timer()
     
        'Tu déconnectes ton utilisateur
     
    End Sub
    Ne te préoccupe pas trop des API. Si tu fais un copier /coller correct, tu n'auras pas de soucis.

    C'est vrai que cela semble un peur "touffu" au premier abord, mais en étudiant un peu le code et l'ordre dans lequel sont appelées les fonctions et procédures, cela devient assez simple à comprendre.

    Domi2

  10. #10
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    hello
    Citation Envoyé par Marc_27 Voir le message
    J'ai déjà essayé aussi...
    Il fait l'impression du formulaire quand même.
    j'arrive pas à croire que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "E_CBL_Demande"
    (sans rien d'autre) imprime un formulaire
    je serais curieux d'avoir le zip de cette base

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    ok, c'est pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "E_CBL_Demande"
    qu'imprime le formulaire...

    je voudrais ouvrir l'etat en mode preview et après faire l'impression, avec le menu contextuel, c'est ça qu'imprime le formulaire...

    j'ai fait un essaye vite avec le timer d'arkham46 et j'ai presque réussi. Lundi je vais essayer avec plus de calme et je poste les resultats...

  12. #12
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    Hello
    je suis rassuré ! !
    rien n'empêche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DoCmd.OpenReport "E_CBL_Demande", acViewPreview
    DoCmd.OpenReport "E_CBL_Demande"
    la première ligne pour l'ouvrir en visualisation , la seconde ligne pour l'imprimer
    (comme je viens de vérifier, l'apperçu est resté à l'écran et l'état s'est imprimé)

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Il marche!!

    Le timer d'Arkhan46 a bien marché.

    Le probleme de ta dernier solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DoCmd.OpenReport "E_CBL_Demande", acViewPreview
    DoCmd.OpenReport "E_CBL_Demande"
    c'est que je ne voudrais pas l'impression automatic, c'est seulement au cas de faire un click sur un button.

    J'ai pensé maintenant en faire un module avec la commande d'impression, mais c'est bon, le Timer a bien marché.

    Merci beaucoup pour toute l'aide Simplifi et Domi2!

  14. #14
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Donc si tout est résolu, il faudrait un petit clique sur le bouton

    Starec

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/06/2010, 11h24
  2. Réponses: 9
    Dernier message: 15/05/2009, 20h53
  3. [WSS3] déconnexion automatique des utilisateurs
    Par chatroux dans le forum IIS
    Réponses: 0
    Dernier message: 03/11/2008, 11h13
  4. Suivre les connexions/déconnexions des utilisateurs
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 25/07/2007, 23h50
  5. Déconnexion automatique des utilisateurs
    Par lio33 dans le forum Sécurité
    Réponses: 6
    Dernier message: 19/07/2007, 15h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo