2009-10-08 4 views
0

Ceci est la première fois que la construction d'une interface utilisateur dans Access (accès en utilisant 2007), et je me demande quelle est la bonne façon (TM) d'aller à ce sujet.Peupler un sous-formulaire avec différents affichages comme une interface graphique dans Access 2007

Essentiellement, j'ai plusieurs requêtes différentes que je voudrais afficher sous forme de graphiques croisés dynamiques, des tableaux croisés dynamiques, des tableaux et des rapports. Finalement, je vais aussi devoir créer des formulaires pour manipuler les données, mais la fonction principale de l'application est d'afficher des données.

Je pense d'avoir un bouton pour chaque affichage différent sur le côté gauche de la fenêtre principale, et ayant le reste de l'affichage de la fenêtre du contenu correspondant de chaque bouton (par exemple un tableau croisé dynamique).

J'ai une idée que cela peut être accompli en utilisant un seul sous-formulaire sous la forme principale, et la mise Source de la propriété de l'objet du sous-formulaire dans une fonction comme celle-ci:

Public Function SetSubformSourceObject(newSourceObject) As Variant 
    subform.SourceObject = newSourceObject 
End Function 

Ensuite, pour chaque bouton I Définir sa propriété OnClick pour appeler cette fonction avec le nom de la requête que je voudrais exécuter.

Maintenant, je ne sais pas si c'est la meilleure façon de faire les choses, et apprécierais vraiment une entrée :)

+0

Y at-il une raison pour laquelle vous avez choisi d'écrire une fonction au lieu d'un sous-marin? Vous avez défini le type de retour, mais il renvoie toujours une variante vide, car vous n'avez défini aucune valeur de retour. Vous pouvez le convertir en sous-marin en supprimant "As Variant" et en remplaçant "Function" par "Sub". Le seul "avantage" à coder ce type de chose en tant que fonction est que seules les fonctions peuvent être utilisées directement dans les propriétés de l'événement ou appelées à partir des boutons de la barre d'outils. Mais dans ce cas, vous devriez avoir un type de retour booléen, et retourner Vrai en cas de succès (cependant vous définissez cela). –

Répondre

0

Le principe semble juste pour moi. Vous devez essayer. Vous n'avez même pas besoin d'une structure sous-formulaire. Vous pouvez définir votre sourceObject au niveau du formulaire et avoir vos boutons dans un CommandBar au lieu de les avoir comme contrôles sur le formulaire, de sorte que vous n'avez aucun code spécifique à la forme (comme "onCLick") et les contrôles. Les contrôles action/commande sur un formulaire consomment de l'espace, du code et de la maintenance, alors que les commandbars sont plus génériques et sont l'objet qui peut contenir tous vos contrôles d'action.

+0

Le commandBar semble être une bonne alternative, mais Google me dit que MS a pris cette fonctionnalité dans Access 2007 en faveur du ruban - voir http://bytes.com/topic/access/answers/496898-access- 2007-custom-menu-bars. Savez-vous s'il est encore possible de créer quelque chose de similaire? Ce lien que j'ai lié à ci-dessus suggère qu'il est possible de créer un ruban en utilisant XML, mais je n'ai pas été capable de trouver beaucoup à ce sujet. – Richard

+0

Quand j'ai dit commanBar, je pensais aussi à son alternative au ruban. L'objet commandBar provient d'Office et est toujours disponible dans Access 2007. Veuillez le vérifier ici: http://stackoverflow.com/questions/1533297/how-do-i-use-an-access-2003-mde-with-access -2007-et-keep-my-custom-menus-barre d'outils –

Questions connexes