2010-11-24 19 views
1

Ich habe eine Access-Anwendung, die im Grunde eine große Schnittstelle mit Registerkarten ist. Manchmal werden Informationen auf einer Registerkarte aktualisiert, die sich auf andere Registerkarten auswirken können. Ich möchte, dass ein Ereignis bestimmte Tabs erneut anfragt, wenn sie ausgewählt werden. Ich habe das On-Click-Ereignis für den Tab und den Fokus für das Formular ausprobiert, tut es aber nicht für mich.Formulare auf Registerkarten, die andere Registerkarten aktualisieren

Ich verwende Access 2007, aber ich bin in Access 2000-Kompatibilitätsmodus (Ist das ein Problem)

Welche Veranstaltung soll ich den Tabs zu aktualisieren verwenden? Einige sind nur Anzeige.

TIA

+0

Weitere Informationen zu den Steuerelementen auf den anderen Registerkarten sind erforderlich. Das Standardverhalten in Access besteht darin, dass Steuerelemente, die an die gleichen Felder gebunden sind, automatisch aktualisiert werden, ohne dass Sie etwas tun müssen. Daher muss hier etwas anderes passieren, das Sie in der Beschreibung des Problems weggelassen haben. –

+0

Hallo David. Ich habe Referenztabellenaktualisierungen auf einigen Registerkarten, wenn sie aktualisiert werden, werden die Comboboxen auf den Transaktionsregisterkarten ohne ein Requery oder ein F5 nicht aktualisiert. Ich habe auch eine verknüpfte Hierarchie von Kunde-> Job-> Artikel für Transaktionen mit Artikeluntertypen. Ich habe darüber nachgedacht, meinen Kunden in die Access 2007-Laufzeit zu verschieben, da ich dachte, dass der Kompatibilitätsmodus Probleme verursachen könnte. – MikeAinOz

+0

Für Kombinationsfelder besteht der Schlüssel darin, dass jedes Steuerelement, das Daten aktualisiert, die in einem Kombinationsfeld angezeigt werden, über ein AfterUpdate-Ereignis verfügt, das das Kombinationsfeld erneut anfordert. Sie können eine Unterroutine in requery schreiben und diese von allen relevanten AfterUpdate-Ereignissen aufrufen (oder sie zu einer Funktion machen und sie einfach als AfterUpdate-Eigenschaft zuweisen, '= RequeryComboBox()'). –

Antwort

2

Das sollte funktionieren. Der Wechsel zu 2007 sollte nicht beeinflussen, wie das funktioniert.

Machst du die Anfrage im gesamten Formular oder in den einzelnen Kombinationsfeldern. zB

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

Sie auch etwas, wie wenn man ein GotFocus auf eines der Felder in den einzelnen Registerkarten tun könnte (ich kann mich nicht erinnern, aber ich dachte, dass es ein Standardfeld war, das den Fokus bekam, wenn ein Tab angezeigt wird) .

+0

Dank @CodeSlave, ich habe dies getan, aber auf der Suche nach einer besseren Antwort. Bei der Umstellung auf 2007 ging es darum, dass neue Ereignisse für 2007 verfügbar werden, ich weiß nicht, wo ich nachsehen soll. – MikeAinOz

+0

Nun @CodeSlave, ich habe die Optionen berücksichtigt, einschließlich @ David-W-Fentons Idee einer Requery-Funktion nach dem Update. Meine Schlussfolgerung ist, dass die Abfrage im Fokus am effektivsten ist, aber ich habe dem Benutzer auch beigebracht, F5 zum Aktualisieren zu verwenden, wenn es Szenarien gibt, die ich nicht behandelt habe. – MikeAinOz