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 03/09/2011, 15h05   #1
Futur Membre du Club
 
Louise Pelletier
Inscription : août 2010
Messages : 49
Détails du profil
Informations personnelles :
Nom : Louise Pelletier

Informations forums :
Inscription : août 2010
Messages : 49
Points : 17
Points : 17
Par défaut Ouverture de formulaire avec plusieurs onglets

Bonjour,

Mon programme permet de gérer les dossiers actifs et archivés de mon employeur.

Dans ma base principale, j'ai mes formulaires, requêtes, rapports et différents modules. Dans cette base, j'y ai lié mes tables de données.

Toujours dans ma base principale, j'ai un formulaire qui contient l'objet "onglet" et qui est toujours ouvert. Dans celui-ci, j'ai 5 onglets qui permet d'afficher des sous-formulaires contenant des données de différentes tables ou requêtes. Exemple. L'onglet 1 affiche les dossiers des projets, l'onglet 2 les projets, l'onglet 3 les dossiers à transférer aux archives, l'onglet 4 les dossiers archivés, l'onglet 5 les utilisateurs. À partir de ce formulaire, l'utilisateur peut faire des recherches sur l'onglet actif. J'ai créé des boutons pour passer d'un onglet à l'autre plustôt que d'utiliser les en-têtes des onglets.

Naturellement à l'ouverture de la base (qui est installé sur le réseau mais non en réseau) le temps d'ouverture est long. Présentement, je n'ai pas plus de 2000 données, mais qu'est-ce que ce sera plus tard.

Y aurait-il un moyen d'ouvrir le formulaire de façcon rapide sans enlever mes onglets?

Merci
marycaLou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2011, 15h46   #2
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
bjr,
Je pense que le problème vient du fait que ton application doit afficher les données de 5 tables pour un seul formulaire.
Si je devais faire quelque chose de ce genre, je ferais un formulaire pour chaque table, ou alors j'ouvrirais mon formulaire à 5 onglets avec l'ouverture de la seule table de l'onglet visible et je placerais un code qui, à chaque sélection d'onglet ouvrirait la table correspondante.
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2011, 16h00   #3
Futur Membre du Club
 
Louise Pelletier
Inscription : août 2010
Messages : 49
Détails du profil
Informations personnelles :
Nom : Louise Pelletier

Informations forums :
Inscription : août 2010
Messages : 49
Points : 17
Points : 17
Oui, je comprends. C'est pourquoi je pose ma question.
Lorsque je clique sur un bouton pour faire afficher un onglet, je fais déjà une recherche de données. Mon problènme est lorsque je charge le formulaire.

Mais comment faire puisque mes données sont sur des tables différentes et dans des sous-formulaires?
marycaLou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2011, 17h02   #4
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
Manifestement, tu choisis l'affichage avec des onglets et tes 5 formulaires (ou sous-formulaires)
Alors, je supprimerais le "RecordSource" de chaque sous-formulaire et je sauvegarderais tout cela.
Lorsque tu cliques sur un de tes boutons pour ouvrir un onglet ou un autre, tu ajoutes simplement - par exemple - le code SQL (pour les requêtes) dans le "RecordSource" ou le nom de la table dans ce même "RecordSource".
De cette façon, tu diffères l'ouvertures des tables au rythme d'ouverture de tes onglets. Ainsi, lors de l'ouverture de ton formulaire principal, tu n'ouvres que la table de l'onglet affiché...
Voici un exemple:
Code :
1
2
3
4
5
6
7
'   Lorsque tu as une table comme source de ton formulaire:
    Forms!frmMonFormulaire.RecordSource = "MaTable"
 
'   Lorsque tu as une requête comme source
    Dim sql     As String
    sql = "SELECT Champ1, Champ2, Champ3 FROM MaTable"
    Forms!frmMonFormulaire.RecordSource = sql
Tu peux également sauvegarder ta requête et employer son nom de la même façon que l'exemple de la table.
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 23h20   #5
Futur Membre du Club
 
Louise Pelletier
Inscription : août 2010
Messages : 49
Détails du profil
Informations personnelles :
Nom : Louise Pelletier

Informations forums :
Inscription : août 2010
Messages : 49
Points : 17
Points : 17
C'est ce que je fais présentement. J'invoque des requêtes selon le sous-formulaires demandés.

Mais le temps d'affichage est un peu long.

J'essaye de trouver une solution pour enlever les sous-formulaies et n'avoir qu'un formulaire à gérer. Beaucoup de programmations et de modifications.

C'est possible, mais comme j'ai beaucoup de commandes (ex.: tri, recherche...) dans mon écran, ça sera long à modifier. Mais j'y arrivderai avec de la patience.

Merci
marycaLou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 08h12   #6
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
Si tu le souhaites, tu peux compacter ta base et la mettre ici, j'y jetterai un coup d'oeil, ne serait-ce pour voir si j'ai bien compris ton problème.
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 13h46   #7
Futur Membre du Club
 
Louise Pelletier
Inscription : août 2010
Messages : 49
Détails du profil
Informations personnelles :
Nom : Louise Pelletier

Informations forums :
Inscription : août 2010
Messages : 49
Points : 17
Points : 17
Merci mais j'ai résussi à faire les modifications.

Après avoir comparé les 2 bases compactées, mon ancien programme avec les sous-formulaires est plus léger que celui modiifé.

Ce qui m'a surpris car dans la base modiifée, j'avais enlevé au moins 6 sous-formulaires et allégé le code. Est-ce normal?
marycaLou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 14h02   #8
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
Si tu as compacté tes base, il est normal qu'elles soient plus légères...
... mais je ne suis pas sûr d'avoir bien compris ta question.
Tant mieux si tu as réussi à solutionner ton problème et merci à toi de ne pas oublier le bouton "Résolu"
Bonne suite !
bernardmichel 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 23h37.


 
 
 
 
Partenaires

Hébergement Web