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 :

Ouverture d'un sous-formulaire [AC-2016]


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 28
    Points : 19
    Points
    19
    Par défaut Ouverture d'un sous-formulaire
    Bonjour,

    Débutant en access,

    je voudrais ouvrir un sous-formulaire avec la commande docmd.openform.

    Est-ce possible?

    Quelle est la syntaxe?

    Je voudrais faire quelque chose du style :

    DoCmd.OpenForm ("Forms![f_Date_et_Heure2]![f_Donnees_Plongeurs]"), mais cela ne marche pas...

    Je voudrais par cette commande ouvrir un formulaire et un sous-formulaire en laissant celui qui est ouvert ouvert, afin de le ré-afficher lorsque j'exécuterai la commande DoCmd.CloseMerci pour votre aide

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    On ne peut pas ouvrir un sous-formulaire puisqu'un sous-formulaire par définition est contenu dans un formulaire.
    Aussi sache qu'un sous-formulaire est un formulaire ordinaire qui est "inclus" dans un autre formulaire ordinaire.

    Ce qu'on peut faire :
    1. Ouvrir un formulaire puis sélectionner le sous-formulaire et éventuellement sélectionner les données affichées par celui-ci.
    2. Ouvrir le formulaire qui est utilisé comme sous-formulaire en tant que formulaire à part entière.
    3. Ouvrir un autre formulaire à partir d'un formulaire.


    Que souhaites-tu faire ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    merci pour cette réponse.

    Voici ce que j'aurais voulu faire:

    De manière générale, j'appelle mes formulaires avec la commande suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Forms![f_Date_et_Heure2]![f_Sub_Menu].SourceObject = "f_Gestion_Tables"
    Lorsque je change de formulaire, je remplace "f_Gestion_tables" par le nouveau formulaire.

    Dans f_Gestion_Tables j'ai une liste appelée Liste_Resume, et dans le code form(load), j'ai le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Liste_Resume.AddItem "Nom et Prénom;Licence;Abonné" (pour avoir l'entête de la liste)
    J'aurais voulu, après avoir appuyer sur un bouton, laisser ce formulaire ouvert et appeler un second formulaire (avec la même présentation - C'est-à-dire Formulaire - Sous-formulaire).

    Dans ce second formulaire, j'aurais voulu ajouter les éléments à la liste Liste_Resume du premier formulaire.

    J'ai pu contourner le problème en mémorisant le contenu de la Liste_Resume dans une variable Nom_Plongeurs_Palanquee(x) que je rajoute dans la Liste_Resume chaque fois que je rappelle le formulaire f_Gestion_Tables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
         Liste_Resume.AddItem "Nom et Prénom;Licence;Abonné"
     
            For x = 1 To Nombre_Plongeurs_Palanquee
            Liste_Resume.AddItem Nom_Plongeurs_Palanquee(x)
            Next x
     
        End If

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Le problème c'est que tu n'ouvres pas vraiment de formulaire.
    Tu te contentes de substituer le sous-formulaire d'un formulaire déjà ouvert.

    C'est assez inhabituelle comme méthode.

    La solution quand on a besoin de plusieurs fois le même formulaire c'est de créer un instance puis de la travailler.
    Cela ne sera sans doute pas adapté ton interface actuelle mais voici comment on fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim f as new Fom_TonForm 'Crée une nouvelle instance (une "copie" en mémoire) du formulaire.
    f.visible=true
     
    'Ici du code qui modifie les propriétés de la copie en mémoire, le formulaire original n'est pas affecté
     
    set f=nothing' Ferme le formulaire
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    j'ai mis 2 screenshot pour montrer pourquoi je substitue des sous-formulaires. La partie de gauche (avec l'heure et la date) est mon formulaire principal, celui de droite, avec les bouton, mon sous-formulaire. C'est cette présentation que je veux garder....
    Images attachées Images attachées   

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Tu utilises les sous-formulaire seulement pour afficher des boutons de sélection comme dans un menu, c'est bien cela ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    merci pour ta patience....

    J'utilise les sous-formulaires pour tout sauf l'affichage de l'heure et l'imprimante par défaut. J'ai ajouté un 3ème écran. C'est cette liste que je dois mettre à jour
    Images attachées Images attachées  

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Pourquoi ne pas utiliser une requête comme source de ta liste ?
    En changeant ton critère de sélection tu devrais être capable d'avoir la liste que tu veux.

    Et en passant les sous-formulaires (en mode feuille de données) sont plus performant et moins compliqué à gérer pour afficher les listes.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    malheureusement, je ne peux pas faire cela non plus. Je m'explique

    Dans la liste que je veux mettre à jour, je dois uniquement voir le contenu encodé d'une feuille que l'on m'a remise et rien d'autre.

    Ex: le matin un Club x me remet une feuille avec y plongeurs --> dans la liste je ne dois voir QUE les noms des y plongeurs. Dès que cette feuille a été encodée, la liste doit être effacée et je passe à la feuille du Club suivant.

    L'après-midi, ce même Club x me remet une nouvelle feuille avec z plongeurs --> dans la liste je ne dois voir QUE les noms des z plongeurs. Dès que cette feuille a été encodée, la liste doit être effacée et je passe à la feuille du Club suivant.

    Merci de m'avoir éclairé, mais je pense que je vais rester avec ma solution...

  10. #10
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Selon quel critères établis-tu ta liste ?
    Est-ce que tu saisis un numéro de groupe qui te donnes la liste des plongeurs ?
    Si c'est un groupe on peut faire en sorte que Access n'affiche que les données de ce groupe en particulier. Pas besoin de le faire soi-même par programmation.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Bonsoir,

    lorsque j'entre le numéro de licence, j'ouvre un autre formulaire où j'affiche les données du plongeur (nom, prénom, statut de l'abonnement). Là je clique sur un bouton pour l'inscrire à la plongée et j'ajoute ce plongeur à la liste. Le Club est connu puis que c'est la première chose qui est demandée.
    J'affiche donc tous les plongeurs qui sont inscrits sur cette feuiile

  12. #12
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    OK.

    D'habitude on utilise une table pour stocker les données puis on utilises l'objet liste (ou préférablement un sous-formulaire) pour afficher ces données.

    Je pense que si tu utilisais une table avec une structure du types :

    Clef
    ClefPlonge
    ClefPersonne

    Et une requête d'affichage en jointure sur ta table des personnes.
    Cela résoudrai ton problème directement.
    Il te suffirai de filtrer par la plongée pour avoir les personnes concernées.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

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

Discussions similaires

  1. [AC-2007] Mise à jour de formulaire lors de l'ouverture d'un sous-formulaire
    Par Cinesra dans le forum VBA Access
    Réponses: 3
    Dernier message: 21/11/2010, 14h11
  2. Réponses: 3
    Dernier message: 01/03/2010, 09h38
  3. Ouverture d'un sous formulaire, si absence dans liste
    Par discretos39 dans le forum VBA Access
    Réponses: 16
    Dernier message: 15/03/2009, 18h53
  4. Réponses: 2
    Dernier message: 28/06/2007, 09h22
  5. ouverture dynamique de sous-formulaire
    Par seurjer dans le forum IHM
    Réponses: 2
    Dernier message: 27/11/2006, 18h55

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