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 :

Comment savoir si un etat ouvert en 1er plan


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 Comment savoir si un etat ouvert en 1er plan
    Bonjour à tous,

    Est-ce qu'il y a un moyen de savoir si un etat est ouvert en premier plan?
    (avec la barre de tittre bleu?)

    Merci d'avance pour toute l'aide

  2. #2
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonsoir,

    ... suis pas sûr d'avoir compris et donc de raconter un bêtise.
    Est-ce qu'il y a un moyen de savoir si un état est ouvert en premier plan?
    (avec la barre de tittre bleu?)
    La barre de titre en bleu dépend de ton bureau...
    Mais s'il est ouvert au premier plan, avec la barre de titre couleur de l'objet actif,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim sNomEtat as string
    sNomEtat = "rptTonEtat"
    Me.Name = sNomEtat
    Mais je ne comprends pas l'objet de tes recherches.

  3. #3
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonsoir,

    Peut-être voir du côté de l'objet Screen
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim strEtatActif as string
    strEtatActif ="<Aucun>"
    ' Une erreur est levée si la fenêtre active n'est pas un Etat
    On Error Resume Next
    strEtatActif = Screen.ActiveReport.Name
    On Error Goto 0
    ' strEtatActif contient <Aucun> ou le nom de l'Etat actif
    A+

  4. #4
    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 des reponses, je vais essayer d'expliquer mon problème:

    J'ai dans mon application un formulaire F_lettres que sert à ouvrir 1 ou 2 etats (l'utilisateur doit marquer des cases à cocher);

    après, pour faire l'impression, j'ai un menu contextuel. Son code est le suivant:
    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
    Public Function LancerImpression()
    Dim o As Boolean
    PCEout_glo = 0
    o = False
     
    DoCmd.RunCommand acCmdPrint
     
    If CurrentProject.AllForms("F_lettre").IsLoaded Then
        Dim rsi As ADODB.Recordset
        Set rsi = New ADODB.Recordset
        rsi.ActiveConnection = CurrentProject.Connection
        rsi.Source = "SELECT * FROM [T_registros] WHERE [No] = " & Forms!F_lettre!COMPTE
        rsi.CursorType = adOpenDynamic
        rsi.LockType = adLockOptimistic
        rsi.Open
        If Forms!F_lettre!C_CLI.Value = -1 Then rsi![DAT_LETTRE_CLI] = Now
        If Forms!F_lettre!C_ORG.Value = -1 Then rsi![DAT_LETTRE_ORG] = Now
        rsi.Update
        o = True
        DoCmd.Close acForm, "F_lettre", acSaveNo
    End If
     
    DoCmd.Close
    If o = True Then DoCmd.OpenForm "F_lettre", acNormal, "", "", , acDialog
     
    End Function
    Mon problème est le suivant:
    si j'ai les deux etats ouverts, je peux choisir de faire l'impression du 1er ou du 2ème, pas forcement les deux, mais si je lance l'impression l'un des deux, le code va marquer les dates d'envoye des deux lettres, car les deux cases à cocher sont couchées:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Forms!F_lettre!C_CLI.Value = -1 Then rsi![DAT_LETTRE_CLI] = Now
    If Forms!F_lettre!C_ORG.Value = -1 Then rsi![DAT_LETTRE_ORG] = Now
    .

    Je voudrais marquer la date de l'impression qu'est en premier plan (celle-là que je demande l'impression)

    Je voudrais savoir donc s'il y a quelque chose que rasemble le code IsLoaded, comme par exemple IsActif, ou HasFocus...

    Merci encore une fois

  5. #5
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    Je ne comprends pas ton problème.
    Donc pour répondre à ta dernière question, voici une fonction pour savoir si un état a le focus ou non.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Function EtatAleFocus(strEtat As String) As Boolean
    Dim strEtatActif As String
    strEtatActif = "<Aucun>"
    ' Une erreur est levée si la fenêtre active n'est pas un Etat
    On Error Resume Next
    strEtatActif = Screen.ActiveReport.Name
    On Error GoTo 0
    ' strEtatActif contient <Aucun> ou le nom de l'Etat actif
    If StrComp(strEtat, strEtatActif, vbTextCompare) = 0 Then
       EtatAleFocus = True
    Else
       EtatAleFocus = False
    End If
    A+

  6. #6
    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 Led,

    Je pense avoir compris...
    Une seule détail:
    dans ton code c'est écrit
    ça veut dire quoi exactement?
    il est déjà "dans" Access ou je dois écrire quelque action concernant cet error?

  7. #7
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Il faut laisser le
    cela annule le
    qui veut dire : continuer en cas d'erreur

    A+

  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
    OK
    j'ai compris...

    Mais enfait j'ai trouvé une solution um peu plus simple...
    j'écris les deux dates et dans le cas où il y a un etat ouvert, j'efface sa date d'envoi.

    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
     
        'mettre des dates
        If CurrentProject.AllReports(etat_cli_glo).IsLoaded Then
            rsi![DAT_LETTRE_CLI] = Now
            rsi.Update
        End If
        If CurrentProject.AllReports(etat_org_glo).IsLoaded Then
            rsi![DAT_LETTRE_ORG] = Now
            rsi.Update
        End If
        DoCmd.Close
        'enleve des dates si les etats sont ouverts
        If CurrentProject.AllReports(etat_cli_glo).IsLoaded Then
            rsi![DAT_LETTRE_CLI] = Null
            rsi.Update
        End If
        If CurrentProject.AllReports(etat_org_glo).IsLoaded Then
            rsi![DAT_LETTRE_ORG] = Null
            rsi.Update
        End If

    Merci pour l'aide

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

Discussions similaires

  1. Savoir si une fenêtre est au 1er plan
    Par Lustuc dans le forum Windows
    Réponses: 2
    Dernier message: 05/09/2009, 16h38
  2. [Process] Comment savoir quelle application est ouverte ?
    Par samus535 dans le forum Framework .NET
    Réponses: 1
    Dernier message: 25/08/2006, 15h01
  3. [Excel] comment savoir si une feuille est ouverte ?
    Par scully2501 dans le forum Access
    Réponses: 11
    Dernier message: 07/10/2005, 15h02
  4. Comment savoir si une connexion est deja ouverte?
    Par ghor_bey dans le forum Web & réseau
    Réponses: 3
    Dernier message: 29/07/2005, 15h17
  5. Unix - Comment savoir si un fichier est ouvert
    Par freddyboy dans le forum C
    Réponses: 7
    Dernier message: 06/10/2004, 15h53

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