 |
Unterformulare mit Hilfe eines Makros automatisch aktualisieren
Wenn Sie sich in einem Access-Formular mit Unterformular bewegen, indem Sie zwischen der »Ansicht | Formular« und der »Ansicht | Datenblatt« hin- und herschalten, werden Sie eine Überraschung erleben. Wenn Sie in der Datenblattansicht einen bestimmten Datensatz markieren und zur Formularansicht zurückwechseln, ist dort zwar der ausgewählte Datensatz aktiv, im Unterformular erscheinen jedoch nach wie vor die Einträge des zuvor in der Formularansicht ausgewählten Datensatzes. Sie können diesen Fehler von Access leicht anhand der Beispieldatenbank »Nordwind«, die sich im Ordner »Beispiele« von Access befindet, nachvollziehen. Öffnen Sie das Formular »Bestellungen« mit einem Klick auf die Schaltfläche »Entwurf«. Falls die Eigenschaften des Formulars nicht sichtbar sind, klicken Sie in der linken oberen Ecke des Fensters mit der rechten Maustaste auf die kleine quadratische Fläche mit dem kleinen schwarzen Quadrat und wählen dann »Eigenschaften«. Im Register »Format« des Eigenschaften-Fensters stellen Sie nun in der Zeile »Zugelassene Ansicht(en)« den Wert »Beide« ein und wechseln danach per Klick auf die Schaltfläche »Formularansicht« zu dieser Ansichtsart. Wählen Sie einen Datensatz aus und merken Sie sich die Einträge im Feld »Artikel« des Unterformulars. Über »Ansicht | Datenblattansicht« wechseln Sie nun zur tabellarischen Ansicht und wählen einen anderen Datensatz aus. Nachdem Sie über »Ansicht | Formular« in die Formularansicht zurückgekehrt sind, werden Sie feststellen, daß die Einträge des Unterformulars unverändert sind, während die des Formulars dem soeben in der Datenblattansicht angewählten Datensatz entsprechen. Um diesen Fehler zu beheben, wechseln Sie mit einem Klick auf die Schaltfläche »Formularansicht« wieder in den Entwurfsmodus und öffnen im Eigenschaften-Fenster des Formulars das Register »Ereignis«. Im Feld »Beim Anzeigen« wählen Sie den Eintrag »[Ereignisprozedur]« aus und wechseln nach einem Klick auf die Schaltfläche mit den drei Punkten zum Editor. Dort geben Sie das unten aufgeführte Listing ein, und in Zukunft wird beim Wechsel zwischen Formular- und Datenblattansicht auch das Unterformular aktualisiert. Makrolisiting zum automatischen Aktualisieren des Unterformulars: Private Sub Form_Current() Static AnsichtVorher On Error GoTo Fehler_Form_Current If AnsichtVorher = 2 And Me.CurrentView = 1 Then Me![Bestellungen Unterformular].Requery End If AnsichtVorher = Me.CurrentView Exit_Form_Current: Exit Sub Fehler_Form_Current: MsgBox Error Resume Exit_Form_Current End Sub
|
 |