2010-11-24 5 views
1

J'ai une application Access qui est essentiellement une grande interface à onglets. Parfois, les informations sont mises à jour sur un onglet qui peut affecter d'autres onglets. J'aimerais qu'un événement répète certains onglets lorsqu'ils sont sélectionnés. J'ai essayé l'événement on-click pour l'onglet et sur le focus pour le formulaire, mais il ne le fait pas pour moi.Formulaires sur des onglets mettant à jour d'autres onglets

J'utilise Access 2007, mais je suis en mode de compatibilité Access 2000 (Est-ce un problème)

Quel événement dois-je utiliser pour mettre à jour les onglets? Certains sont seulement affichés.

TIA

+0

Plus d'informations sont nécessaires sur les types de contrôles sur les autres onglets. Le comportement par défaut dans Access est que les contrôles liés aux mêmes champs seront automatiquement mis à jour sans que vous n'ayez besoin de faire quoi que ce soit, donc il doit y avoir quelque chose d'autre que vous avez omis dans votre description du problème. –

+0

Salut David. J'ai des mises à jour de table de référence sur certains onglets, lorsqu'elles sont mises à jour, les listes déroulantes sur les onglets de transaction ne se mettent pas à jour sans un requery ou un F5. J'ai également une hiérarchie liée Customer-> Job-> Item pour les transactions avec des sous-types d'éléments. J'ai pensé à déplacer mon client à l'exécution d'Access 2007 car je pensais que le mode de compatibilité pouvait causer des problèmes. – MikeAinOz

+0

Pour les zones de liste déroulante, la clé est que tout contrôle qui met à jour les données affichées dans une zone de liste déroulante doit avoir un événement AfterUpdate qui requeries la zone de liste déroulante. Vous pouvez écrire un sous-programme dans requery et l'appeler depuis tous les événements AfterUpdate pertinents (ou en faire une fonction et l'assigner comme propriété AfterUpdate, '= RequeryComboBox()'). –

Répondre

2

Cela devrait fonctionner. Passer à 2007 ne devrait pas affecter la façon dont cela fonctionne.

Effectuez-vous la requery sur l'ensemble du formulaire, ou sur les différentes listes déroulantes. par exemple,

Private Sub Combo10_GotFocus() 
    me.Combo10.Requery 
End Sub 

Vous pouvez aussi faire quelque chose comme mettre un GotFocus sur l'un des champs dans chaque onglet (je ne me souviens pas, mais je pensais qu'il y avait un champ par défaut qui se concentre chaque fois qu'un onglet est affiché) .

+0

Merci @CodeSlave, je l'ai fait mais à la recherche d'une meilleure réponse. Le passage à 2007 concernait de nouveaux événements devenant disponibles pour 2007, je ne sais pas où chercher ça. – MikeAinOz

+0

Eh bien @CodeSlave, j'ai examiné les options, y compris @ David-W-Fentons idée d'une fonction de rafraîchissement après la mise à jour. Ma conclusion est que la mise au point est la plus efficace, mais j'ai aussi appris à l'utilisateur à utiliser F5 pour actualiser s'il y a des scénarios que je n'ai pas couverts. – MikeAinOz