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 afficher une mde toujours en premier plan


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2004
    Messages : 37
    Points : 32
    Points
    32
    Par défaut Comment afficher une mde toujours en premier plan
    Bonjour, je n'arrive pas à faire exécuter une mde en premier plan lorsque j'utilise la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunCommand acCmdAppMinimize
    pour supprimer la fenêtre ACCESS, elle perd systhématiquement le focus et va se cacher derrière une fenêtre de l'explorateur si celui-ci était ouvert et affiché à l'écran. Je précise de mon form de démarage est lancé en indépendant et modale et que c'est une mdb transformée en mde (Access 2003).
    Si quelqu'un a une idée ou comment obliger la fenêtre d'Access à rester en premier plan par le code ?

  2. #2
    Membre régulier
    Homme Profil pro
    Technicien biomédical
    Inscrit en
    Mai 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien biomédical
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2005
    Messages : 60
    Points : 81
    Points
    81
    Par défaut
    Qu'entends-tu par fenêtre Access ?
    Est-ce la fenêtre de base de donnée ?

  3. #3
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    DoCmd.RunCommand acCmdAppMinimize
    C'est le code pour la diminuer

    Serait peut être plus approprié.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2004
    Messages : 37
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par Fifi69
    Qu'entends-tu par fenêtre Access ?
    Est-ce la fenêtre de base de donnée ?
    Non.

    Citation Envoyé par Heureux-oli
    Serait peut être plus approprié.
    Non plus, aucune incidence dans mon cas.

    Je vous ai fait deux bases tests, une mdb et la mde issue de celle-ci. Faites l'essai vous mêmes, une fois dé-zippés dans un dossier, ouvrez l'explorateur de fichiers et effectuez un double clic sur la basetest.mdb, là, le formulaire d'accueil reste en premier plan, maintenant, faites la même chose avec la basetest.mde, là, le formulaire disparaît derrière l'explorateur, pour rendre visible la fenêtre de la basetest.mde il faut cliquer dans la barre de tâches.
    Voilà mon pb, connaissez-vous un moyen de faire maintenir le formulaire d'accueil de la basetest.mde en premier plan lors de son ouverture ?

    Merci pour votre aide...
    Fichiers attachés Fichiers attachés

  5. #5
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Il s'agit bien de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunCommand acCmdAppMinimize
    Il y a aussi l'API ShowWindows peut-être moins capricieuse.
    Fais une recherche avancée sur le mot.

    ps: petite mise en garde
    Application.Quit n'est exécutée que sur click du bouton, ton instance
    reste ouverte si le user ferme le form avec la X.
    Donc à faire aussi (et même surtout) Sur Fermeture du form.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2004
    Messages : 37
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par Faw
    Il y a aussi l'API ShowWindows peut-être moins capricieuse.
    Fais une recherche avancée sur le mot.
    Slt, après quelques recherches dans divers posts et faq, je n'ai rien trouvé qui pourrait régler mon pb, d'ailleurs j'ai vu que tu proposais souvent cette réponse. Sans me donner une solution complète, pourrais-tu m'orienter un peu plus sur la déclaration et l'utilisation de cette API ?

  7. #7
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Re, désolé si tu n'as pas trouvé c'est de ma faute...ShowWindow (sans S)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Option Compare Database
     
    Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
     
    Private Sub Form_Load() 'ou open()
    ShowWindow Application.hWndAccessApp, 0
    ShowWindow Me.hwnd, 1
    End Sub
    merci à Tof'.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2004
    Messages : 37
    Points : 32
    Points
    32
    Par défaut
    Merci Faw, c'est un bon début, j'ai fait le test sur la mde avec ce code et bien cela fonctionne, mais ...(et oui ), il y a encore un mais, la tâche n'est plus visible dans la barre et le gestionnaire du même nom(Là, je penses que je ne t'apprend rien ). Il me semble avoir vu dans une faq comment afficher la fenêtre dans la barre des tâches, quand penses-tu ?

  9. #9
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Salut,
    effectivement la tâche n'apparaît pas dans la barre (perso j'utilise appminimize
    et pas showwindow et le résultat est le même...). Mais si tu regardes les processus actifs, tu y verras MSACCESS.exe en actif .
    Forcer l'apparition dans la barre des tâches, il faut voir si la manoeuvre ne rentre
    pas en conflit avec le reste. Après tout, tu cherches à cacher l'instance msAccess, à quoi bon faire le contraire par la suite...

    Nous aurions besoin d'un avis éclairé sur la question. Argy si tu passes par là

  10. #10
    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 LockSetForegroundWindow
    Bonjour,

    Je crois avoir résolu ce problème avec la fonction API ci-dessous.
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ' Verrouille/Libère fonction SetForegroundWindow 
    Public Const LSFW_LOCK As Long = 1
    Public Const LSFW_UNLOCK As Long = 2
    Public Declare Function LockSetForegroundWindow Lib "user32.dll" _
           (ByVal uLockCode As Long) As Boolean
    J'utilise Access 2003 sous Windows 2000 et Windows XPpro.

    Un extrait de mon code :
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ' Verrouille SetForegroundWindow pour empêcher une autre
    ' application de passer au premier plan
    LockSetForegroundWindow LSFW_LOCK
     
    DoCmd.RunCommand acCmdAppMinimize
    DoCmd.OpenForm "Mon Formulaire"
     
    ' Libère SetForegroundWindow
    LockSetForegroundWindow LSFW_UNLOCK
    A+

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2004
    Messages : 37
    Points : 32
    Points
    32
    Par défaut
    Hello,

    Après avoir testé ce code dans mes mde, le pb que j'avais cité précédemment est résolu.

    UN GRAND MERCI A LedZeppII et tous ceux qui ont participé...


  12. #12
    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
    Bon ben c'est cool si ça marche ailleurs que chez moi.

    Moi, j'avais le souci sur le mdb et sur le mde.
    De plus comme j'utilise un raccourci direct sur le mde, si j'avais d'autres applications Access ouvertes
    cela en mettait une au premier plan, mais évidemment pas celle que je lançais.

    Pour la petite histoire, je me rappelais avoir ce post un jour, et en fait je pensais y trouver une solution.
    J'ai passé 4 heures à essayer différentes choses avant de trouver la bonne fonction.

    A+

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

Discussions similaires

  1. Mettre une fenetre toujours au premier plan
    Par blondelle dans le forum C++Builder
    Réponses: 26
    Dernier message: 14/01/2009, 12h46
  2. [JFrame] Affichage d'une application toujours au premier plan
    Par michaeljeru dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 06/12/2006, 23h49
  3. afficher une interface graphique au premier plan
    Par Martin Guélat dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 03/03/2006, 10h44
  4. [C#][.Net] Affichage d'une appli toujours au premier plan
    Par alncool dans le forum Windows Forms
    Réponses: 9
    Dernier message: 13/07/2005, 13h30

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