|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité régulier
![]() Inscription : septembre 2008 Messages : 46 ![]() |
Bonjour,
J'ai un formulaire destiné à de la saisie. Etant donné que mon questionnaire à saisir contient près de 1000 variables, j'ai du opter pour un découpage en 5 tables. Ce qui m'oblige à passer par des sous-formulaires. (à moins que vous connaissiez une solution plus simple) Du fait de ces sous-formulaires et de la mise en forme du questionnaire initial, mon formulaire principal est composé de 5 onglets contenant chacun un sous-formulaire composé lui-même de 3 à 6 onglets. Pour fluidifier la saisie, j'ai voulu que le passage d'une page d'onglet à l'autre se fasse sans cliquer sur les onglets, mais par tabulation. Ainsi j'ai créé à la fin de chaque page un "TextBox" dont la seule fonction est d'accéder à la page suivante sur l'événement "GotFocus" . A l'intérieur des sous-formulaires j'ai mis : Code :
Code :
Ce code marche bien pour les 5 onglets. Seulement quand j'arrive au dernier onglet, et que je souhaite retourner au premier, Access me signale : "Espace Pile insuffisant" et reste bloqué sur l'ouverture du premier onglet. Y a-t-il des conditions dans l'utilisation des pages d'onglet ? |
||||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Inscription : novembre 2004 Messages : 216 ![]() |
Bonsoir,
il y a une astuce pour gérer ce souci : après avoir mis dans le bon ordre tes pages d'onglets (bouton de droite sur le contrôle onglet, puis ordre des pages), tu fais la même chose pour tous les contrôles de chaque page (bouton de droite sur la page, puis ordre de tabulation). Ensuite tu ajoutes une zone de texte à la 1ère page, tu supprimes l'étiquette, tu mets la couleur de la bordure en transparent de manière à rendre ce contrôle non visible, mais pas invisible. Tu nommes ce contrôle PageSuivante1 (c'est un exemple) et sur l'événement Sur réception Focus (GotFocus) tu mets le code ci-dessous : Code :
Form_TonFormulairePrincipal.Page2.SetFocus Tu fais la même chose pour toutes les pages (PageSuivante2 sera le contrôle à créer sur la page 2) jusqu'à la dernière page qui donnera enfin le focus à la première page ou à un bouton Validation ... |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : septembre 2008 Messages : 46 ![]() |
La seule chose qui diffère avec ce que j'avais fait c'est :
au lieu de Seulement le bug est identique : à la dernière page je suis renvoyée à une autre page aléatoirement, et après ça bloque. |
|
|
00
|
|
|
#4 |
![]() ![]() Jean BALLATInscription : octobre 2004 Messages : 2 856 ![]() |
![]() Pourquoi dans le dernier onglet ne pas faire appel au premier onglet
__________________
Jeannot Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
|
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : septembre 2008 Messages : 46 ![]() |
Euh oui en fait c'est ça que j'ai fait... là je standardise juste les noms pour le forum et je n'avais pas vu que j'avais laissé "Page2". Mais ce n'est pas ça qui provoque le bug a priori !
|
|
|
00
|
|
|
#6 |
|
Membre éclairé
![]() Inscription : novembre 2004 Messages : 216 ![]() |
Bonsoir,
As-tu bien mis dans le bon ordre les pages et les contrôles des pages ? Vérifie aussi que tous les sous-formulaires sont bien dans une page et pas dans l'onglet. Combien de pages différentes recoivent le focus aléatoirement ?( car il se peut que du code contrarie le bon fonctionnement de tout çà) Trouver un bug sans avoir la source sous les yeux n'est pas chose facile ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com