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

VBA Access Discussion :

Formulaire de navigation Open / Close sur clic onglet lié à un formulaire


Sujet :

VBA Access

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2013
    Messages : 46
    Points : 40
    Points
    40
    Par défaut Formulaire de navigation Open / Close sur clic onglet lié à un formulaire
    Bonjour,

    J'ai une fenêtre de navigation avec deux onglets à date.

    Je veux que l'usager puisse jongler entre ces deux formulaires sans les fermer. Et éventuellement entre tous les formulaires que j'ajouterai comme onglet dans ce formulaire de navigation.

    Donc, dans le fond, à l'ouverture de ma fenêtre de navigation, je veux ouvrir tous les formulaires de mes onglets et par la suite gérer le tout avec l'évènement current mais je ne comprend pas comment empêcher le système à ne pas faire le close de la fenêtre et à ne pas faire l'ouverture lorsque je clique sur un onglet.

    Merci.

    Patricia

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour Patricia,



    Vois l’exemple en annexe avec des boutons.

    J’ai logé le nom du formulaire à ouvrir dans la propriété « Remarque » du bouton.

    À l’ouverture du formulaire fNavigation, on ouvre (caché) le formulaire de chaque bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Form_Open(Cancel As Integer)
    Dim ctl As Control
    For Each ctl In Me.Controls
      If ctl.ControlType = acCommandButton Then
          DoCmd.OpenForm ctl.Tag, acNormal, , , , acHidden
      End If
    Next ctl
    End Sub
    Sur le clic de chaque bouton, on appelle la sub Alterner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Commande0_Click()
      Call Alterner
    End Sub
     
    Private Sub Commande1_Click()
      Call Alterner
    End Sub
    Private Sub Commande2_Click()
      Call Alterner
    End Sub
    La sub Alterner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Sub Alterner()
      Call Form_Open(0)
      DoCmd.OpenForm Me.ActiveControl.Tag
    End Sub
    N.B. Dans fNaviguation, la propriété Fen indépendante est à « Oui » pour qu’il reste au premier plan.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2013
    Messages : 46
    Points : 40
    Points
    40
    Par défaut
    Merci beaucoup pour ton exemple !

    Je viens d'apprendre encore quelque chose mais là ça ne fonctionne pas. J'ai adapté ton code en fonction de mon utilisation des onglets. J'ai modifié le acCommandButton pour acTabCtl.

    Ma fenêtre navigation ouvre automatiquement sur le premier onglet et ouvre Feuille de Temps. Ma fenêtre navigation est modal et indépendante. (Voir capture d'écran en fichier attaché)

    J'ai un erreur sur la ligne 5. Erreur 2494: L'action ou la méthode requiert un argument Nom de Formulaire.

    Je ne sais pas trop comment régler ça. Effectivement, dans ton code, je n'arrive pas à comprendre comment le système arrive à savoir quel formulaire ouvrir. Dans mon code, étant donné que mes onglets sont liés directement avec mon formulaire, je me suis dit qu'il savait automatiquement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Option Compare Database
    Option Explicit
    Public Sub Alterner()
      Call Form_Open(0)
      DoCmd.OpenForm Me.ActiveControl.Tag
    End Sub
     
    Private Sub Form_Open(Cancel As Integer)
    Dim ctl As Control
    For Each ctl In Me.Controls
      If ctl.ControlType = acTabCtl Then
          DoCmd.OpenForm ctl.Tag, acNormal, , , , acHidden
      End If
    Next ctl
    End Sub
     
     
    Private Sub OngletFT_Click()
    Call Alterner
    End Sub
     
    Private Sub OngletCatégories_Click()
     
    Call Alterner
     
    End Sub
    Images attachées Images attachées  

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    C'est acPage (un onglet) et non acTabCtl (l'ensemble) !

  5. #5
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2013
    Messages : 46
    Points : 40
    Points
    40
    Par défaut
    Ça fonctionne pas plus !

    acPage = 124 et les onglets c'est 130. J'ai vérifier avec ce code.

    Chaque bouton de navigation est lié à un formulaire différent.

    Onglet Feuille de Temps = Formulaire FeuilleTemps
    Onglet CatégorieTâches = Formulaire CatégorieTâches

    Ce n'est pas des pages. Je ne comprend plus rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Form_Open(Cancel As Integer)
    Dim ctl As Control
    For Each ctl In Me.Controls
    Debug.Print ctl.ControlType
    With ctl
     MsgBox "Nom : " & .Name & " - Type : " & TypeName(ctl)
     End With
      If ctl.ControlType = acPage Then
              Debug.Print ctl.Tag
          DoCmd.OpenForm ctl.Tag, acNormal, , , , acHidden
      End If
    Next ctl
    End Sub

  6. #6
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2013
    Messages : 46
    Points : 40
    Points
    40
    Par défaut
    J'ai mis directement =130 et il passe mais il me donne la même erreur que tantôt mais cette fois-ci sur l'ouverture.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          DoCmd.OpenForm ctl.Tag, acNormal, , , , acHidden
    Je me pose la question...est-ce que ça se fait qu'est-ce que je suis entrain de faire ?

  7. #7
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Je me pose la question...est-ce que ça se fait qu'est-ce que je suis entrain de faire ?
    Je ne comprends pas trop le but.

    Si tu peux poster une base de données compatible Access2000, je veux bien regarder pour essayer de comprendre la logique de ce que tu veux faire.

  8. #8
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2013
    Messages : 46
    Points : 40
    Points
    40
    Par défaut
    Merci beaucoup pour ton aide.

    Pour la compatibilité, je ne sais pas trop. Si ça fonctionne pas fait moi signe.
    Fichiers attachés Fichiers attachés

  9. #9
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Si tu peux poster une base de données compatible Access2000

    Vois ici la procédure pour convertir en Access2000.

  10. #10
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2013
    Messages : 46
    Points : 40
    Points
    40
    Par défaut
    Il me dit que je ne peux pas le convertir.

    À toi ou à quelqu'un d'autre qui voudrait m'aider. Je récapitule.

    J'ai créer un formulaire de navigation avec des onglets horizontaux (peu importe). Je crois que c'est une nouvelle option de Access 2010.

    Ensuite, en mode page. J'ai glissé sur l'onglet Ajouter:

    1- le formulaire Feuille de Temps
    2- le formulaire CatégoriesTâches

    Dans Feuille de propriétés / onglets Données / Nom de cible de navigation: il est inscrit mon nom de formulaire respectivement sur mes deux onglets.

    Lorsque j'ouvre mon formulaire de navigation, il se positionne automatiquement sur l'onglet Feuille de Temps car c'est mon premier onglet.

    Lorsque je clique sur CatégoriesTâches, Access appelle le close de Feuille de Temps et appelle le open_Form de CatégoriesTâches.

    J'aimerais que lorsque j'ouvre le formulaire Navigation, mes deux formulaires s'ouvrent et qu'il se positionne sur le premier onglet comme présentement et que lorsque je clique sur CatégoriesTâches qu'il laisse l'onglet Feuille de Temps avec toutes ces informations en cours de saisies.

    L'usager saisie une feuille de temps, il s'aperçoit qu'il n'y a pas la catégorie qu'il veut, je veux qu'il puisse aller sur CatégoriesTâches et revenir à sa saisie par la suite pour choisir sa nouvelle catégorie. J'espèrerais rafraichir les données dans Feuille de Temps sur l'évènement CURRENT.

    Est-ce que ça se fait ?

    Je veux faire ça avec un formulaire Employé, Projet etc...

    Je commence avec deux onglets. Sinon, je vais gérer ça autrement mais j'aurais vraiment voulu un visuel Onglet comme ça.

    Voir plus haut, il y a ma base de données au complet et un print screen pour un aperçu.

    Merci

  11. #11
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2013
    Messages : 46
    Points : 40
    Points
    40
    Par défaut
    Bon ben !!! Les onglets ne sont pas fait pour ça ! C'est spécial quand même. Il me semble que ça n'aurait pas été si compliqué que laisser le contrôle de l'ouverture des formulaires au clic des onglets. Mais bon..

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

Discussions similaires

  1. Atteindre onglet dans un formulaire de navigation
    Par lelockjohn dans le forum Access
    Réponses: 0
    Dernier message: 13/01/2015, 16h43
  2. [JTabbedPane] close sur onglet
    Par delph1983 dans le forum AWT/Swing
    Réponses: 16
    Dernier message: 21/10/2012, 15h52
  3. Réponses: 2
    Dernier message: 07/05/2012, 19h09
  4. Réponses: 2
    Dernier message: 13/04/2011, 15h06
  5. Réponses: 2
    Dernier message: 15/02/2011, 15h12

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