Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

ListBox.Requery bei nächstem Datensatz





Frage

Hallo liebe Leute, im Augenblick seh’ ich vor lauter Bäumen den Wald nicht mehr. Ich suche vergeblich ein Ereignis „Bei nächstem Datensatz“ - oder so was. Auf einem Formular „Firma“ stelle ich in einer Listbox eine Auswahlmöglichkeit von Unterbranchen zur Verfügung. Als Datensatzherkunft benutzte ich für die Listbox eine eigene Abfrage. Um die Anzahl der möglichen Unterbranchen einzugrenzen, vergleicht die Abfrage die Branche einer Firma mit der Zugehörigkeit der Unterbranchen. Das klappt prima solange ich bei einem Datensatz sagen kann: Me!ListBox.Requery. Wenn ich aber mit dem Scrollrad zur nächsten Firma wechsle, bleibt in der Listbox die Auswahl unverändert. Mir fehlt mir das passende Ereignis für ein .Requery. Was tut man da? Tss tss tss …. Beste Grüße Conny

Antwort 1 von Phantom_Fies

Vielleicht mit AfterUpdate?

Antwort 2 von cococonny

ne, geht leider nicht. Das Ereignis Update tritt ja erst ein, wenn an einem Datensatz was geändert wurde. Ich wechsle aber nur mit Navigationsschaltflächen oder Scrollrad zur nächsten Firma ohne das Formular zu schließen oder irgendwas zu ändern.

Antwort 3 von 14071

Hi,

was du suchst ist gleich das erste Ereignis eines Formulars = beimAnzeigen.

Aus der Accesshilfe
Zitat:

Current-Ereignis (Anzeigen)


Das Ereignis Current tritt ein, wenn der Fokus auf einen Datensatz gesetzt wird, der somit zum aktuellen Datensatz wird. Es tritt außerdem ein, wenn das Formular aktualisiert bzw. erneut abgefragt wird.

Anmerkung

Wenn beim Eintreten dieses Ereignisses ein Makro oder eine Ereignisprozedur ausgeführt werden soll, stellen Sie die Eigenschaft OnCurrent auf den Namen des Makros oder auf [Ereignisprozedur] ein.

Dieses Ereignis tritt ein, wenn entweder ein Formular geöffnet oder der Fokus von einem Datensatz auf einen anderen gesetzt wird. Microsoft Access führt das Makro oder die Ereignisprozedur für das Ereignis Current aus, bevor der erste oder nächste Datensatz angezeigt wird.

Wenn Sie beim Eintreten des Ereignisses Current für ein Formular ein Makro oder eine Ereignisprozedur ausführen, können Sie eine Meldung anzeigen oder Datensätze in einem anderen Formular synchronisieren, das mit dem aktuellen Datensatz zusammenhängt. Wenn z. B. ein Kundendatensatz zum aktuellen Datensatz wird, können Sie die vorherige Bestellung des Kunden anzeigen. Wenn ein Lieferantendatensatz zum aktuellen Datensatz wird, können Sie die bei diesem Lieferanten erhältlichen Artikel in einem Lieferantenformular anzeigen. Sie können auch anhand des aktuellen Datensatzes Berechnungen durchführen oder das Formular entsprechend den Daten im aktuellen Datensatz ändern.

Wenn das Makro oder die Ereignisprozedur die Aktion GeheZuSteuerelement oder GeheZuDatensatz bzw. die entsprechende Methode des Objekts DoCmd als Reaktion auf das Ereignis Open ausführt, tritt das Ereignis Current ein.

Das Ereignis Current tritt auch ein, wenn Sie ein Formular aktualisieren oder die dem Formular zugrunde liegende Tabelle oder Abfrage erneut abfragen. Dies ist z. B. der Fall, wenn Sie den Befehl Filter/Sortierung entfernen aus dem Menü Datensätze wählen, oder wenn Sie in einem Makro die Aktion AktualisierenDaten bzw. in Visual Basic-Code die Methode Requery verwenden.

Wenn Sie ein Formular zum ersten Mal öffnen, treten die folgenden Ereignisse in der angegebenen Reihenfolge ein:

Open Load Resize Activate Current


Gruß
Jürgen

Antwort 4 von cococonny

Huups,
das hatte ich natürlich auch ausprobiert und den Befehl Me!ListBox.Requery an das Ende der Prozedur gesetzt. Das Ende wurde aber beim probieren gar nicht erreicht weil vorher eine Bedingung zu "Exit Sub" führt. Nun aber klappt alles.
Herzlichen Dank Jürgen

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: