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

Access Discussion :

ouvrir un formulaire sans ouvrir access


Sujet :

Access

  1. #1
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut ouvrir un formulaire sans ouvrir access


    Je souhaiterais pouvoir ouvrir mon formulaire Access sans ouvrir la fenêtre Access afin que ça fasse plus ... fini.
    J'ai trouvé pas mal de sujet dessus et j'ai cru comprendre qu'il valait mieux utiliser l'API ShowWindow pour faire ceci.
    Mon souci est comment utiliser cette API ?
    J'ai trouvé ceci sur le net :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
     
    ShowWindow FindWindow(hwnd, vbNullString), 0
    mais bon je ne vois pas quoi mettre dans hwnd et surtout je ne vois pas quand appeler la fonction showWindow.
    Quelqu'un pourrait-il m'aider ?

    J'ai déjà essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunCommand acCmdAppMinimize
    puis
    fen indépendante=oui
    fen modale=oui
    mais ça ne me convient pas car lors de la fermeture du formulaire, la fenêtre Access reste dans la barre des taches

    Merci pour votre aide par avance.

  2. #2
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    hwnd est le handle de la fenêtre, c'est un nombre unique qui identifie la fenêtre, la fonction GetActiveWindow permet de récupérer ce handle
    La déclaration se fait ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Declare Function GetActiveWindow Lib "user32" () As Long
    L'appel de la fonction comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Form_Load()
     
     handle = GetActiveWindow()
     
    End Sub
    Le handle étant récupéré, on peut utiliser celui-ci dans les différentes fonctions de l'API qui le demande.

    FindWindow permet de trouver ce handle à partir du nom de la fenêtre
    ShowWindow permet d'afficher une fenêtre

  3. #3
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Merci pour ton aide.

    J'ai fais ce que tu m'as dis donc dans mon module utilitaire j'ai créé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    Declare Function GetActiveWindow Lib "user32" () As Long
    et dans le form_load j'ai rajouté ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim hwnd As Long
    hwnd = GetActiveWindow 'j'ai supprimé les paranthèses sinon j'ai une erreur comme quoi je dois définir ce paramètre en mode Création
    ShowWindow hwnd, 0
    Le souci c'est qu'en faisant ceci je n'ai plus rien du tout qui s'affiche à l'écran et en plus j'ai toujours mon processus MSACCESS qui tourne donc je dois le tuer avec un alt+ctrl+suppr.

    Comment je peux faire ?
    J'ai également essayé d'utiliser l'API FindWindow mais le souci est que quoi sue je passe comme paramètre, elle me renvoit 0 (je ne passe surement pas le bon nom).

  4. #4
    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 peux regarder ici.

    je pense que c'est ce que tu cherches.

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  5. #5
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Je l'ai déjà testé ça : ça t'ouvre un formulaire en plein écran et la fenêtre principale d'Access reste visible en plus

    ça m'étonne que ça ne soit pas un sujet plus traité car ça me parait important d'avoir une appli sans le fond Access, ça fait plus "pro" (enfin il me semble).

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par trotters213
    ça m'étonne que ça ne soit pas un sujet plus traité car ça me parait important d'avoir une appli sans le fond Access, ça fait plus "pro" (enfin il me semble).
    Tu peux avoir une appli pro en laissant la fenêtre Access, il faut

    1 - Mettre un nom à ton appli
    2 - Changer l'icône
    3 - Faire une menu personnalisé
    4 - changer la couleur du fond

    Tous les codes se trouvent dans la FAQ ou les SOURCES

    Il ne faut pas oublier qu'Access ne crée pas un exe, Access serait toujours le contenant (même en Runtime), contrairement à d'autres logiciles comme VB ou autre.

    Starec

  7. #7
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Quelle version d'access ? Sous 2007, le formulaire doit avoir les propriétés fenêtre indépendantes et modale à Oui

    ShowWindow Application.hWndAccessApp, 0

  8. #8
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Merci à vous pour votre précieux aide.

    @ Starec : Je partage aussi ton de vue sur le fait qu'Access n'est pas fait pour faire des exe mais s'il y a un moyen de cacher cette fenêtre arrière et garder seulement le formulaire pourquoi ne pas le faire ?

    @ Tofalu :C'est ça qui me manquait apparemment : je n'avais pas défini ma fenêtre comme étant indépendante et modale. Maintenant, c'est parfait, c'est exactement ce que j'attendais.

    Pour ceux que ça intéresse : en utilisant cette méthode le processus Access n'est pas fermer lorsqu'on ferme la fenêtre donc il faut rajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Form_Close()
        'fermeture d'Access lors de la fermeture du formulaire
        Application.Quit
    End Sub
    Un dernier point mais c'est bonus : Est-il possible de faire apparaitre la fenêtre dans la barre des tâches ? Si oui, comment ? (je doute fort vu que la fenêtre est modale mais bon sait-on jamais )

    Encore merci pour votre aide.

    PS : je mettrais résolu dès que j'aurais eu une petite réponse à ma question bonus

  9. #9
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Tu as essayé sans modal ?

    Si tu es sous Access 2007, ça ne marchera pas mais il me semble qu'avant, il n'y avait pas besoin qu'elle soit modale, seulement indépendante suffisait

  10. #10
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Non ça ne fonctionne malheureusement pas, la fenêtre ne s'affiche plus si je fais ça

    En parlant de version, est-ce que Access supporte bien les changements de version ? J'ai fait mon appli sous Access 2007, est-ce qu'un type qui a Access 2003 verras l'appli de la même manière (est-ce qu'il la verra tout simplement ? ).

  11. #11
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Tant que tu n'utilises pas les nouvelles fonctionnalités propres à Access 2007, il n'y aura pas de soucis. Fait bien attention aussi à avoir un fichier mdb et non accdb

  12. #12
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    OK mais comment savoir si j'utilise des fonctionnalités propre à Access 2007 ?
    J'ai lu le tuto sur le déploiement d'une appli d'argyronet et il dis de faire un package avec le runtime que j'utilise (runtime Access 2007 dans mon cas). Donc même si j'utilise de nouvelle fonctionnalités, il ne devrait pas y avoir de problème, si ?

    PS : ce sujet et celui-ci sont en train de se fondre l'un dans l'autre

  13. #13
    Invité
    Invité(e)
    Par défaut
    Re

    Il me semble que le runtime Access 2007 n'est pas encore sorti.

    Pour voir si tu n'as pas utilisé des fonctions propres à Access 2007, ouvre ta base avec une version inférieure.

    Starec

  14. #14
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Citation Envoyé par Starec
    Il me semble que le runtime Access 2007 n'est pas encore sorti.
    Tu m'as fait peur là donc j'ai vérifier avant de poser une question stupide (de plus) et regarde : http://msdn2.microsoft.com/en-us/office/bb229700.aspx
    ça risque de t'intéresser
    Il est sorti depuis le 25 juin apparemment, t'es pas à jour Starec

  15. #15
    seb92400
    Invité(e)
    Par défaut
    Hello,

    Juste un petit mot... Je vois souvent des messages ou il est question de cacher la fenêtre Access... Pourquoi ?

    Toute application a une fenêtre lorsqu'elle est ouverte...

    Ma méthode :

    Comme indiqué plus haut, je change l'icone, le nom de l'appli et je créé un menu démarrage en pleine page, éventuellement je modifie la couleur du fond si le formulaire n'est pas en pleine page...

    Ensuite, j'utilise un petit utilitaire qui va me permettre d'avoir un .exe qui lance l'application en mode runtime (grâce aux paramètres). Bien sûr, j'inclus également un mot de passe en paramètres sur la ligne d'ouverture... Ce n'est qu'un simple mot de passe, mais ça bloque déjà l'utilisateur "standard" s'il tente d'ouvrir la base Access en cliquant sur l'icone...
    Donc, que ce soit l'application Access qui l'ouvre, ou le runtime, pas besoin de code à rallonge puisque c'est toujours une interface style runtime qui s'ouvre...

    Résultat, j'obtiens l'effet d'une application standard : La fenêtre runtime devient donc la fenêtre de l'application... Il faut juste penser à bien paramétrer les propriétés fenêtres modales et indépendantes selon ce qu'on veut obtenir... De plus, si on souhaite visualiser un état avant de l'imprimer, le fait de cacher l'instance d'access est assez compliqué à gérer...

    Dernière modification par seb92400 ; 26/07/2007 à 11h47.

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

Discussions similaires

  1. [FAQ] Ouvrir un formulaire sans ouvrir Access
    Par trotters213 dans le forum Contribuez
    Réponses: 18
    Dernier message: 13/02/2013, 10h35
  2. Réponses: 6
    Dernier message: 11/07/2008, 09h34
  3. Ouvrir un formulaire sans ouvrir Access
    Par limon336 dans le forum IHM
    Réponses: 17
    Dernier message: 01/06/2008, 15h33
  4. ouvrir un formulaire sans ouvrir access
    Par Vincent623 dans le forum IHM
    Réponses: 25
    Dernier message: 28/12/2006, 09h34
  5. Réponses: 2
    Dernier message: 18/10/2005, 10h54

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