Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/03/2011, 16h31   #1
Futur Membre du Club
 
Inscription : novembre 2010
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 101
Points : 16
Points : 16
Par défaut Aller au 1°onglet par bouton de commande

Bonjour à Tous,

Je dispose d'un méta-formulaire appuyé sur 8 formulaires et autant d'onglets (le 8° ne fonctionne pas).
Comment faire pour qu'en cliquant sur un Bouton commande en Onglet 2, je puisse revenir à l'Onglet 1 ?

J'ai essayé cela, en vain :
Code :
1
2
3
4
Private Sub RetourGestionnaire_Click()
    Me.Zonedonglets.nomOnglet1.Enabled = True
    Me.Zonedonglets.nomOnglet1.SetFocus
    Me.Zonedonglets.nomOnglet2.Enabled = False
Ni cela (j'imagine qu'il faut un compte) :
Code :
Me.Zonedonglets.Value = 4
Quid ?
Bk
brankorri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 17h40   #2
Membre Expert
 
Avatar de keita
 
Homme
Inscription : novembre 2002
Messages : 879
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Côte d'Ivoire

Informations forums :
Inscription : novembre 2002
Messages : 879
Points : 1 015
Points : 1 015
Envoyer un message via MSN à keita
bonjour
Citation:
Je dispose d'un méta-formulaire appuyé sur 8 formulaires et autant d'onglets........
Pas facile de te comprendre.
cliquer sur un btn de commande pour activer un autre onglet d'un même contrôle à onglets? c'est ça?
mais pourquoi ne pas faire le click directement sur l'onglet en question?
peut être que je ne comprends pas.
Essaie ceci:
@+
keita est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 18h20   #3
Futur Membre du Club
 
Inscription : novembre 2010
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 101
Points : 16
Points : 16
Bonjour Keita,

Je viens d'essayer avec ta proposition en adaptant le "nomOnglet1". Mais cela ne fonctionne pas.

En vérité, les onglets sont faits à la façon proposée ici : http://access.developpez.com/faq/?pa...t#Color_Onglet
Ce sont donc déjà des boutons de commande (peut-être j'aurais du le préciser, pardon !)

Ma démarche est plus motivée par praticité qu'autre chose...
Bk
brankorri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 19h31   #4
Membre Expert
 
Avatar de keita
 
Homme
Inscription : novembre 2002
Messages : 879
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Côte d'Ivoire

Informations forums :
Inscription : novembre 2002
Messages : 879
Points : 1 015
Points : 1 015
Envoyer un message via MSN à keita
Ouaih, brankorri, c'est plus simple de comprendre avec le lien.
Le lien que tu m'as donné m'a permit de telecharger l'exemple de bd de la FAQ (Philippe JOCHMANS)
Adapte ce bout de code à ton contexte:
Code :
1
2
3
4
Private Sub Commande27_Click()
    cmdOnglet0_Click
    mstTest_Change
End Sub
1/Le bouton Commande27 se trouve sur la page2 du contrôle à onglet
2/il va activer le 1er onglet (celui en vert)
ça devrait marcher.
Attention c'est plutot comme ceci, le code:
Code :
1
2
3
Private Sub Commande27_Click()
    cmdOnglet0_Click
End Sub
@+
keita est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 14h10   #5
Futur Membre du Club
 
Inscription : novembre 2010
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 101
Points : 16
Points : 16
Bonjour Keita,

Merci pour le code. Mais cela ne fonctionne pas encore. J'ai essayé d'adapter des deux façons suivantes (dans le doute) :

Code :
1
2
3
Private Sub CommandeRetour_Click()
    cmdNomduPremierOnglet_Click
End Sub
Code :
1
2
3
Private Sub CommandeRetour_Click()
    NomduPremierOnglet_Click
End Sub
Les deux fois, VBA me renvoie une erreur de compilation : "Sub ou Function non définis" (je suis sur Access 2003 fichier 2000).
Qu'en penses-tu ?
Quelle est la construction-type (formule) de la ligne, stp ?
Bk
brankorri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 15h45   #6
Membre Expert
 
Avatar de keita
 
Homme
Inscription : novembre 2002
Messages : 879
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Côte d'Ivoire

Informations forums :
Inscription : novembre 2002
Messages : 879
Points : 1 015
Points : 1 015
Envoyer un message via MSN à keita
bonjour à tous
Citation:
Les deux fois, VBA me renvoie une erreur de compilation : "Sub ou Function non définis" ....
..
Cela signifie tout simplement que tu n'as pas pris le nom correct de ton onglet. La preuve tu me dis j'ai essayer avec ça cmdNomduPremierOnglet et avec ça NomduPremierOnglet.
je t'envoie ce que j'ai fait;le bouton est sur la page 2 (page jaune)

@+
Fichiers attachés
Type de fichier : rar Onglet.rar (19,5 Ko, 4 affichages)
keita est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 19h25   #7
Futur Membre du Club
 
Inscription : novembre 2010
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 101
Points : 16
Points : 16
Keita,

Le NomduPremierOnglet était une illustration. J'avais bien compris tes lignes : en l'occurrence, l'onglet s'appelle Gestion donc je plaçais bien et la commande Retour :
Code :
1
2
3
Private Sub Retour_Click()
    cmdGestion_Click
End Sub
(et j'avais une faute à Private...).
J'ai ouvert ton exemple et je t'avoue que ça ne fonctionne pas mieux chez moi.

Surtout qu'en vérité, je viens de rencontrer un doute :
lorsque je crée la commande et sa proc. évènementielle, je fais cela dans le formulaire "Onglet 2" appelé par l'Onglet 2 (du Méta-formulaire "Logiciel").
Et lorsque je développe la proc. évènementielle, je tombe sur la page VB correspondant à ce formulaire "Onglet2" et non sur la page du Méta-formulaire "Logiciel".

Est-ce compréhensible ? Si oui, alors mon travail est-il logique ?
brankorri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 19h02   #8
Futur Membre du Club
 
Inscription : novembre 2010
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 101
Points : 16
Points : 16
Bonjour Keita,

J'ai pu télécharger ta base, et il s'avère que nous ne parlions pas de la même base données en exemple. J'ai repris la méthode de la base téléchargeable tout en bas de la page, et non de l'exemple présenté au cours de la page elle-même.
Mes onglets sont des boutons de commande et non de véritables onglets d'un seul et même formulaire (si je ne m'abuse).

Et j'ai longtemps chercher, mais je n'aboutis toujours pas.
Dois-je placer la chose ainsi ?

Code :
1
2
3
Private Sub Retour_Click()
    Logiciel.Onglet1_Click
End Sub
brankorri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 20h45   #9
Membre Expert
 
Avatar de keita
 
Homme
Inscription : novembre 2002
Messages : 879
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Côte d'Ivoire

Informations forums :
Inscription : novembre 2002
Messages : 879
Points : 1 015
Points : 1 015
Envoyer un message via MSN à keita
bonjour
ok;tu l'as dit, on ne parlait pas de la même chose.
Tu peux me donner le lien me permettant de télécharger la bonne base?
car j'avoue ne pas comprendre grand-chose à ça:
Citation:
Mes onglets sont des boutons de commande et non de véritables onglets d'un seul et même formulaire (si je ne m'abuse).


@+
keita est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2011, 01h40   #10
Futur Membre du Club
 
Inscription : novembre 2010
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 101
Points : 16
Points : 16
Merci Keita pour ton suivi !

Sur cette page, il faut aller tout en bas, et télécharger le lien bleu (table de l'auteur, qui ne correspond pas exactement à l'exemple qu'il présente - en espérant que le téléchargement fonctionne toujours).

Cordialement,
Bk
brankorri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2011, 11h38   #11
Membre Expert
 
Avatar de keita
 
Homme
Inscription : novembre 2002
Messages : 879
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Côte d'Ivoire

Informations forums :
Inscription : novembre 2002
Messages : 879
Points : 1 015
Points : 1 015
Envoyer un message via MSN à keita
bonjour à tous
J'ai bien peur qu'on tourne en rond (toi et moi) à ne pas se comprendre. c'est bien de ce travail que tu parles:
Citation:
auteur : Philippe JOCHMANS
et à la fin du tuto, il y a bien ce qui suit; j'espere que tu en as tenu compte.
Citation:
3 ? Remarque :

Ce code ne fonctionne que si le style d'onglet de votre contrôle n'est pas en Multi-Ligne.
Si vous rajoutez des contrôles sur vos pages, n'oubliez pas de remettre le rectangle en arrière plan.
Cet exemple est fait avec plusieurs couleurs, vous pouvez bien sûr n'en prendre qu'une.

Attention : Si vous utilisez Access 2003, il faut que l'option "Utilisez les styles Windows" soit décoché dans l'onglet Formulaire des options pour cette astuce fonctionne.
Ce code fonctionne sur les versions Access 2000, 2002 et 2003, il n'a pas été testé sur les versions 97 et 2007.

téléchargement : Télécharger la base exemple
Si oui, alors c'est bien la base sur laquelle j'ai travaillé et que je t'ai ramenée:
tu l'ouvres, tu actives l'onglet jaune et sur la page se trouve le bouton que j'ai ajouté; un click la dessus, active l'onglet vert (l'onglet1) et donc la page verte.Tu me dis que ça ne marche pas chez toi; je suis tenté de te demander si tu as bien suivi les recommandations de l'auteur (en rouge et gras çi-dessus).
ça t'ennuierait de ne m'envoyer que ton form à toi? cela pourrait faciliter les choses.
bon week end à toi.
@+
keita est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2011, 11h57   #12
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

Le problème vient certainement de ça :
Citation:
Envoyé par brankorri Voir le message
Surtout qu'en vérité, je viens de rencontrer un doute :
lorsque je crée la commande et sa proc. évènementielle, je fais cela dans le formulaire "Onglet 2" appelé par l'Onglet 2 (du Méta-formulaire "Logiciel").
Et lorsque je développe la proc. évènementielle, je tombe sur la page VB correspondant à ce formulaire "Onglet2" et non sur la page du Méta-formulaire "Logiciel".
Le bouton n'est pas dans le formulaire principal (Logiciel), mais dans le sous-formulaire Onglet 2.
Le contrôle à onglets du formulaire principal est inconnu du sous-formulaire.

Essaie
Code :
1
2
3
Private Sub Retour_Click()
    Forms("Logiciel").Zonedonglets.Value = 0
End Sub
Logiciel étant le nom du formulaire principal et Zonedonglets le nom du contrôle à onglets.
0 est le numéro d'index de la première page.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2011, 13h49   #13
Futur Membre du Club
 
Inscription : novembre 2010
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 101
Points : 16
Points : 16
Bonjour à tous les deux,

Merci LedzeppII : je pensais effectivement à une telle chose (durant nos incompréhensions avec Keita )

Cependant, cela ne passe pas (avec valeur de 0 comme de 1, pour le doute testé) : Erreur d'exécution '438'

Est-ce qu'un rapport de SourceObjet serait une solution ?

Merci,
Bk
brankorri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2011, 14h22   #14
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
L'erreur 438 (Propriété ou méthode non gérée par cet objet) peut vouloir dire ...
- que Zonedonglets n'est pas un contrôle du formulaire
ou
- que Zonedonglets n'a pas de propriété Value (comme une étiquette ou un rectangle par exemple)

Est-ce que le contrôle à onglets est directement dans le formulaire principal Logiciel, ou bien est imbriqué dans quelque chose d'autre ?

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2011, 14h40   #15
Futur Membre du Club
 
Inscription : novembre 2010
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 101
Points : 16
Points : 16
LedzeppII,

J'avais évidemment adapté ta ligne avec les justes corrections nécessaires
C'est bien ce système de Value dont je ne vois pas la logique dans mon cas, car rappelons-le, il s'agit de boutons :

* pourquoi alors une Valeur (plutôt cmd ou SourceObject ?)
* pourquoi la 'zonedonglet' (qui est pour moi la zone Détail entière du formulaire principal Logiciel)


Se comprend-on ?

* Vous avez le savoir, j'ai le problème*
brankorri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2011, 17h11   #16
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Re,
Citation:
Envoyé par brankorri Voir le message
C'est bien ce système de Value dont je ne vois pas la logique dans mon cas, car rappelons-le, il s'agit de boutons :

* pourquoi alors une Valeur (plutôt cmd ou SourceObject ?)
Parce que la propriété Value d'un contrôle à onglet permet de changer de page.
Peu importe que le style soit réglé sur Onglets, Boutons ou Aucun.

Citation:
Envoyé par brankorri Voir le message
* pourquoi la 'zonedonglet' (qui est pour moi la zone Détail entière du formulaire principal Logiciel)

Se comprend-on ?
Non, je crois que je ne suis largué.
Je ne sais plus si tu as un contrôle à onglets avec 8 pages et 8 sous-formulaires,
ou bien un seul contrôle sous-formulaire dont tu changes la source (objet source).

Est-ce que tu peux nous faire voir le code d'un de tes boutons pour changer d'onglet ?
Peut-être que ça sera plus clair.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2011, 01h36   #17
Futur Membre du Club
 
Inscription : novembre 2010
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 101
Points : 16
Points : 16
Bonjour LedZeppII,

Voici la commande de mon premier onglet, sur lequel je veux pouvoir revenir depuis les sous-formulaires (respectifs de chacun des autres onglets) :

Code :
1
2
3
4
5
 
Private Sub Onglet1_Click()
    Me.cadreOnglet.SourceObject = "Gestion"
    Call OngletSelect(Me.Onglet1)
End Sub


Peut-être est-ce plus simple ainsi, effectivement !
Ce code est celui qui permet en cliquant sur le 1° "Onglet" - comme sur un autre (en adaptant) - d'appeler le 1° Formulaire (lié) - ou un autre lié à tel autre "Onglet".

ex pour l'Onglet 2 :

Code :
1
2
3
4
5
 
Private Sub Onglet2_Click()
    Me.cadreOnglet.SourceObject = "Origine"
    Call OngletSelect(Me.Onglet2)
End Sub
[/CODE]

J'ai augmenté le nombre de formulaires de 8 à 11 (afin de ne pas perdre de temps dans mon labeur : je poursuis le développement du logiciel !)

Il y a donc un contrôle par bouton-commande pour chaque "Onglet" qui appelle chacun un formulaire. On peut voir chaque formulaire comme un sous-formulaire du donc méta-formulaire dans lequel sont situées les 8-11 "Onglets", et dans lequel je développe les codes pour chacun de ces "Onglets".
Est-ce plus clair ?
Je reprends exactement le modèle de la (seconde) base du tutoriel de la page multi-citée plus haut.

Bk
brankorri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2011, 13h17   #18
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

Je comprends mieux.
cadreOnglet n'est pas un contrôle à onglets mais un contrôle sous-formulaire.

Si, comme j'ai crû le comprendre, ton bouton «Retour» n'est pas dans le formulaire principal, il faut remplacer Me par Forms("Logiciel").
Code :
1
2
3
Private Sub Retour_Click()
    Forms("Logiciel").cadreOnglet.SourceObject = "Gestion"
End Sub
Ensuite, concernant la procédure OngletSelect.
Si elle est dans un module de code :
Code :
Call OngletSelect(Forms("Logiciel").Onglet1)
Si elle est dans le module de code du formulaire principal :
Code :
Call Forms("Logiciel").OngletSelect(Forms("Logiciel").Onglet1)
Et OngletSelect doit être déclarée avec la portée Public.

Citation:
Envoyé par brankorri Voir le message
Je reprends exactement le modèle de la (seconde) base du tutoriel de la page multi-citée plus haut.
Je ne dirait pas exactement.
Tu n'as gardé que le principe des boutons de commande MS-Forms 2.0.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2011, 14h31   #19
Futur Membre du Club
 
Inscription : novembre 2010
Messages : 101
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 101
Points : 16
Points : 16
LedZeppII,

C'est toi le patron !

Code :
1
2
3
4
Private Sub Retour_Click()
    Forms("Logiciel").cadreOnglet.SourceObject = "Gestion"
    Call Forms("Logiciel").OngletSelect(Forms("Logiciel").Onglet1)
End Sub
Merci beaucoup !
brankorri est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h47.


 
 
 
 
Partenaires

Hébergement Web