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 :)
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). –