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 :

Ouverture Nouveau Formulaire à partir de valeur d'un sous-formulaire


Sujet :

IHM

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    465
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 465
    Points : 287
    Points
    287
    Par défaut Ouverture Nouveau Formulaire à partir de valeur d'un sous-formulaire
    Bonjour ,

    Je bute sur l'ouverture d'un formulaire grâce à une condition.

    Soit deux formulaires principaux:
    Mon premier formulaire Form1 contient un sous-formulaire Sform1.
    Mon deuxième formulaire Form 2 est un formulaire que l'on ouvre avec comme critère un champ du sous-formulaire SForm1.

    Dans Sform1, j'ai mis un bouton qui ouvre Form2 avec comme comme critère un champ de Sform1 appelé Champ1.

    Pour commander l'ouverture de Form2, j'ai créé une macro Macro1 dont l'action est "ouvertureformulaire" et dont la condition where est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Tb_AOT]![ID_AOT]=[Formulaires]![SForm1]![Champ1]
    Lorsque j'ouvre le sous-formulaire SForm1 et que j'appuie sur mon bouton, Form2 s'ouvre et est bien positionné sur l'enregistrement adéquat.
    Par contre, lorsque j'ouvre Form1, il me positionne sur un enregistrement vide. Cela signifie que la macro n'arrive pas à accéder à la valeur du champ IDENT de SForm1 lorsque je lance la macro depuis Form1.

    La condition where semble erronée.
    Quelqu'un peut-il m'orienter?

    Merci!

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 352
    Points : 415
    Points
    415
    Par défaut
    Ce comportement est normal puisque lors de l'ouverture de Form1, il va d'abord étudier la condition where d'ouverture et ensuite charger le sous-formulaire. Comme ton sous-formulaire n'est pas chargé, en utilisant ta macro pour ouvrir form1, [Formulaires]![SForm1]![Champ1] est égal à Null.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    465
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 465
    Points : 287
    Points
    287
    Par défaut
    bonjour,

    Je te remercie pour ta réponse. La macro est lancée depuis le sous-formulaire SForm1 et permet l'ouverture d'un deuxième formulaire Form2. Pourquoi mon sous-formulaire SForm1 ne serait-il pas chargé au moment de son lancement? Pourtant, il est bien présent .Que me conseillerais-tu de faire?

    Quelqu'un peut-il m'indiquer comment procéder afin d'ouvrir un deuxième formulaire à partir de la valeur d'un champ appartenant au sous-formulaire de mon premier formulaire (malgré mes efforts, je n'ai pas réussi à faire une phrase plus courte... )


    merci!

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    465
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 465
    Points : 287
    Points
    287
    Par défaut
    en fait, ce qui est étonnant c'est que ma macro fonctionne dans ce cas-là:
    -j'ouvre le sous-formulaire SForm1 dans lequel est mon bouton et je le lance.
    Par contre, elle ne fonctionne pas dans ce cas-là:
    -j'ouvre le formulaire Form1 et j'actionne le bouton du sous-formulaire SForm1.

    Suivant que je lance ma macro depuis mon formulaire ou mon sous-formulaire, ça marche ou ne marche pas...

    Etrange mais ptet une piste peut-elle se dégager de ce problème?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 352
    Points : 415
    Points
    415
    Par défaut
    Dans ce cas, je te conseillerais plutôt d'utiliser la commande docmd pour ouvrir ton formulaire.
    Dans le code de ton bouton de SForm1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    docmd.openform "Form2", , ,"[Tb_AOT]![ID_AOT]=" &me.Champ1
    le problème vient du fait qu'en ouvrant Form1, ton SForm1 n'est pas indépendant et par conséquent, il n'est pas présent dans la collection Formulaires d'où le fait qu'il ne trouve pas le champ cherché

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    465
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 465
    Points : 287
    Points
    287
    Par défaut
    Bonjour Taoueret ,

    J'ai fait comme tu as dit mais ça ne marche toujours pas.

    Si je lance la commande depuis le sous-formulaire chargé seul, ça marche mais si je lance la commande puis le sous-formulaire inclus dans le formulaire chargé, alors ça ne fonctionne pas....

    Il ne semble pas retrouver la valeur du champ id_aot.
    Peut-être faut-il mentionner dans la ligne de code que l'on récupère la valeur du champ ID_AOT du sous-formulaire?

    On aurait quelque chose de ce type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docmd.openform "Form2", , ,"[Tb_AOT]![ID_AOT]=" &[sous-formulaire]!me.Champ1
    Par contre, je ne sais pas quelle est la syntaxe exacte à appliquer.

    Qu'en pensez-vous?

    Merci!

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 352
    Points : 415
    Points
    415
    Par défaut
    On effet pour l'ouvrir depuis le bouton du formulaire parent, il te faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    docmd.openForm "Form2", , ,"[Tb_AOT]![ID_AOT]=" me.ton_sub_form!Champ1

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    465
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 465
    Points : 287
    Points
    287
    Par défaut
    en effet, je pense que ça va marcher.
    je te remercie,

    mathieu

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/10/2014, 10h27
  2. Réponses: 4
    Dernier message: 03/03/2014, 13h40
  3. Réponses: 2
    Dernier message: 02/04/2007, 18h41
  4. Ouverture sous-formulaire à partir treeview
    Par tAKAmAkA dans le forum IHM
    Réponses: 2
    Dernier message: 28/02/2007, 03h36
  5. Réponses: 8
    Dernier message: 24/11/2006, 15h06

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