 |
Access 7.0: 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
|
 |