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 05/01/2012, 15h37   #1
Invité régulier
 
Inscription : septembre 2008
Messages : 46
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 46
Points : 9
Points : 9
Par défaut Changement de page d'onglet

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 :
1
2
3
Private Sub TextBoxPageSuivante1_GotFocus()
Me.BoiteAOnglets2.Value = 1
End Sub
Pour le formulaire principal contenant les 5 onglets, j'ai :
Code :
1
2
3
4
5
Private Sub TextBoxPageSuivante6_GotFocus()
If IsLoaded("Qr") Then
Form_Qr.BoiteAOnglets1.Value = 1
End If
End Sub
où "IsLoaded" est une fonction interrogeant sur l'ouverture ou non du formulaire "Qr". (Sans cette fonction le curseur parcourt tous les onlgets et s'arrête aléatoirement sur l'un d'eux).

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 ?
viougt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 22h11   #2
Membre éclairé
 
Avatar de tee_grandbois
 
Inscription : novembre 2004
Messages : 216
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 216
Points : 321
Points : 321
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
Page2 (c'est aussi un exemple) est le nom de la 2ème page de ton onglet.
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 ...
tee_grandbois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 10h41   #3
Invité régulier
 
Inscription : septembre 2008
Messages : 46
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 46
Points : 9
Points : 9
La seule chose qui diffère avec ce que j'avais fait c'est :
au lieu de
Code :
Form_Qr.BoiteAOnglets1.Value = 1
Seulement le bug est identique : à la dernière page je suis renvoyée à une autre page aléatoirement, et après ça bloque.
viougt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 10h53   #4
Rédacteur/Modérateur
 
Avatar de Jeannot45
 
Homme Jean BALLAT
Inscription : octobre 2004
Messages : 2 856
Détails du profil
Informations personnelles :
Nom : Homme Jean BALLAT
Âge : 63
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : octobre 2004
Messages : 2 856
Points : 5 220
Points : 5 220


Pourquoi dans le dernier onglet ne pas faire appel au premier onglet

Code VBA :
Form_Qr.Page1.SetFocus
__________________
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
Jeannot45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 13h29   #5
Invité régulier
 
Inscription : septembre 2008
Messages : 46
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 46
Points : 9
Points : 9
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 !
viougt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 22h13   #6
Membre éclairé
 
Avatar de tee_grandbois
 
Inscription : novembre 2004
Messages : 216
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 216
Points : 321
Points : 321
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 !
tee_grandbois est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h09.


 
 
 
 
Partenaires

Hébergement Web