Masquer ou afficher une page d'un contrôle Onglet

Comment masquer ou afficher une page précise d’un contrôle Onglet ?

Solution

  1. Sur votre formulaire ouvert en mode Création, construisez – sans assistant – un bouton de commande.
  2. Faites apparaître les propriétés de ce bouton, et nommez-le par exemple btnPage.
  3. Si nécessaire, faites apparaître aussi les propriétés du contrôle Onglet, et nommez-le tabTest.
  4. Programmez l’événement Sur clic du bouton de commande en tapant :

Quelques précisions

  • Les pages du contrôle Onglet sont numérotées de 0 à n-1. Ceci a donc pour effet de masquer la première page. Remplacez bien sûr False par True pour faire apparaître une page.
  • Vous pouvez également remplacer l’indice numérique par le nom de la page (propriété Nom et non propriété Légende). Par exemple :

  • Autre variante : les pages peuvent être identifiées comme objet à part entière. On peut donc encore écrire :

  • Si les lignes de code ci-dessus agissent sur des onglets du formulaire dans lequel elles sont tapées (euh… c’est clair, ça ?), vous pouvez simplifier en remplaçant tous les Forms![Nom du formulaire]! par Me. Par exemple :

Vous aimerez aussi...

12 réponses

  1. Hervé Inisan dit :

    Prézi > Tu veux afficher une seule page à la fois ?

  2. Prézi dit :

    Bonjour à tous.
    Comment faut-il procéder pour qu’au démarrage d’une application faite d’un contrôle onglets comportant plusieurs pages, on puisse activer une seule page et masquer toutes les autres et pouvoir par la suite activer ou désactiver la page que l’on veut?
    Merci d’avance.
    @Bientôt.

  3. Hervé Inisan dit :

    AnneMa > C’est normal, il ne s’agit pas vraiment d’une personnalisation, mais d’une action dynamique, ponctuelle. Ce qui n’est pas fait en mode Création n’est pas conservé, c’est le comportement normal d’Access.

  4. AnneMa dit :

    Merci ! Ça marche… par contre j’ai un autre problème. Lorsque j’enregistre le formulaire la personnalisation ne s’enregistre pas. I.e si le formualire pour l’individu A contient l’onglet X masqué … je l’enregistre et quand je l’ouvre de nouveau l’onglet est revenu…

    Est-ce que c’est normal ? Merci

  5. Hervé Inisan dit :

    AnneMa > Par exemple, pour que le bouton marche en balance (une fois on masque, une fois on affiche une page), on peut transformer le code VBA en :

    En d’autres termes, on dit à Access que la propriété Visible reçoit sa valeur inverse (Not ...Visible). Si Visible est True, elle passe à False, et inversement.

  6. AnneMa dit :

    Bonjour

    Merci pour le code, il est très utile. Par contre, comment je peux faire pour que l’onglet s’affiche de nouveau si la personne s’est trompé. Je débute dans le VBA .

    Merci beaucoup de votre aide.

  7. Hervé Inisan dit :

    daniel15 > Il s’agit du Click du bouton, qui lui-même règle la propriété Value du contrôle Onglets. Mais on est d’accord : pas du Click du contrôle Onglet ou de l’une de ses pages.

  8. daniel15 dit :

    Bonjour,
    Je me suis mal exprimé. En VBA, je dois aller sur une autre page. Donc pas de onClick.
    J’ai trouvé simplement l’ordre SetFocus !!!
    Mais je garde votre ordre qui pourra me servir.
    Merci
    daniel

  9. Hervé Inisan dit :

    daniel15> Il suffit dans ce cas d’écrire, dans l’événement Sur clic du bouton :

    1 étant le numéro de la page à activer, la première démarrant à 0.

  10. daniel15 dit :

    Bonjour,
    Effectivement. Je pensais pouvoir résoudre mon problème ainsi. Sans effet.
    En Vba, la première page de l’onglet contient plusieurs boutons. J’aimerais que le clic sur l’un d’eux affiche la deuxième pag qui affiche une partie d’une table au moyen d’un ordre SQL.
    Et je n’y arrive pas. Avez-vous une réponse possible ?
    Merci beaucoup

  11. Hervé Inisan dit :

    daniel15 > Toutes les solutions proposées dans l’article marchent dans Access 2010.

    Est-ce qu’il pourrait y avoir une erreur de syntaxe (ou une erreur sur un nom d’objet) dans ton code VBA ? Et est-ce que l’exécution de code VBA est autorisée dans ta base ?

    Mais on ne parle peut-être pas de la même chose : dans cet article, il est question de masquer des onglets. Tu veux plutôt activer une page ?

  12. daniel15 dit :

    Bonjour,
    J’ai essayé dans access2010 cette solution. Mais elle ne marche pas. Que dois-je modifier ou ajouter pour que je puisse changer d’onglets en VBA ?
    Merci. Daniel15

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *