Warum noch ein Access-Buch?
Für wen ist das Buch?
Jetzt bestellen
+ direkter Download des eBooks!
Nur EUR 59,95!
Fehler gefunden?
Bitte melden!
Wünsche an das Buch?
Her damit!
Was denken die Leser über dieses Buch?
Lesen Sie aktuelle Rezensionen!
Kapitel des noch nicht veröffentlichten Buchs zum Downloaden, Probelesen und Kommentieren
Beispieldatenbanken
Zusätzliches Material

Das Buch im HTML-Format

Für unbestimmte Zeit bieten Addison-Wesley und André Minhorst den kompletten Inhalt des Buchs als Download an. Schauen Sie rein und informieren Sie sich über den Inhalt! Und wenn Ihnen das Buch nützlich erscheint und Sie glauben, dass Sie etwas gelernt haben oder durch das Gelesene sogar etwas Zeit und somit Geld bei Ihrer Arbeit einsparen konnten, können Sie sich ja beim Autor und beim Verlag revanchieren - beispielsweise durch den Kauf dieses Buchs.

Am schönsten wäre es natürlich, wenn Sie das Buch direkt hier bestellen - Sie erhalten das Buch dann direkt vom Verlag, und der Autor und Verlag haben dann noch mehr davon, als wenn Sie es anderswo kaufen.

Danke für Ihr Interesse!

4.5.2 Einfache Daten in der Übersicht mit Endlos formularen

4.5.3 Einfache Daten in der Übersicht als Datenblatt

Neben der Endlosansicht ist auch die Datenblattansicht von Formularen für die Verwendung als Übersichtsformular geeignet. Die Datenblattansicht hat den Vorteil, dass der Benutzer dort selbst die Spaltenbreite einstellen kann - das ist bei Endlosformularen mitunter ein Problem, wenn wenig Platz vorhanden oder die maximale Länge der anzuzeigenden Zeichenketten nicht bekannt ist. Auch die Performance ist in dieser Ansicht besser. Allerdings hat auch das Endlosformular Vorteile. Warum das so ist, erfahren Sie, wenn Sie das Formular frmKontakteUebersicht einmal in der Datenblattansicht anzeigen (siehe Abbildung 4.28). Das Datenblatt ist zwar als Übersicht akzeptabel, aber Kopf- und Fußbereich des Formulars sind völlig verschwunden. Tatsache ist: Beide können in der Datenblattansicht schlicht nicht verwendet werden.

Abbildung 4.28: Übersichtsformular in der Datenblattansicht (»sfmKontakteDatenblattansicht«)

Datenblattansicht im Unterformular

Wer dennoch ein Formular in der Datenblattansicht verwenden möchte, setzt dies als Unterformular in ein Hauptformular ein, das die Navigationselemente zum Anlegen, Löschen und Bearbeiten der Einträge bereitstellt. Das Unterformular enthält einfach nur die Felder, die in der Datenblattansicht angezeigt werden sollen (siehe Abbildung 4.29). Es gibt lediglich drei Punkte, auf die Sie achten sollten:

  • Stellen Sie die Eigenschaft Standardansicht auf Datenblatt ein.
  • Versehen Sie die Bezeichnungsfelder der einzelnen Steuerelemente mit ordentlichen Beschriftungen, da diese später als Feldüberschriften dienen.
  • Sorgen Sie für die richtige Aktivierreihenfolge, da diese festlegt, in welcher Reihenfolge die einzelnen Felder später angezeigt werden (Dialog öffnen über den Eintrag Aktivierreihenfolge des Steuerelement-Kontextmenüs).
  • Abbildung 4.29: Der Entwurf eines Formulars in der Datenblattansicht braucht keine besonderen optischen Ansprüche zu erfüllen.

    Hauptformular als Container für ein Unterformular in der Datenblattansicht

    Bereiten Sie dann das Hauptformular vor. Dazu legen Sie ein neues, leeres Formular an und kopieren die bereits erstellten Schaltflächen des Formulars frmKontakteEndlosformular in den Detailbereich des neuen Formulars. Lassen Sie dabei ein wenig Platz nach oben. Ziehen Sie dann das neue Unterformular aus dem Navigationsbereich in den Detailbereich des Formulars (siehe Abbildung 4.30).

    Anpassen der Datenblattansicht eines Formulars

    Das Erste, was Ihnen beim Blick auf die Formularansicht auffallen wird, ist, dass standardmäßig fast alle Steuerelemente in Formularen in Schriftgröße 11 dargestellt werden, das Unterformular in der Datenblattansicht aber mit Schriftgröße 10 aufwartet. Außerdem ist die Breite der Felder des Unterformulars natürlich nicht den Inhalten angepasst. Beides holen Sie nach - allerdings nicht in der Entwurfsansicht, sondern in der Formularansicht des Unterformulars. Dieses müssen Sie dafür allerdings noch einmal separat öffnen. Wenn Tabellen, Abfragen und Formulare in der Datenblattansicht grundsätzlich in einer anderen Schriftgröße oder in anderem Layout geöffnet werden sollen, können Sie die gewünschten Einstellungen in den Access-Optionen im Bereich Datenblatt anpassen. Dort finden Sie auch die neue Option zum Einstellen einer alternativen Hintergrundfarbe.

    Abbildung 4.30: Ziehen des Unterformulars aus dem Navigationsbereich in den Detailbereich des neuen Hauptformulars

    Wenn Sie die dortigen Einstellungen je Formular individuell vergeben möchten, können Sie dies entweder mit dem Ribbon-Eintrag Entwurf|Schriftart|Alternative Füllung/Hintergrundfarbe oder per VBA durchführen. Dazu hinterlegen Sie die folgende Prozedur für die Ereigniseigenschaft Beim Laden:

    Private Sub Form_Load()
        Me. DatasheetAlternateBackColor = &HDDDDFF
    End Sub

    Listing 4.9: Individuelles Anpassen der alternativen Hintergrundfarbe eines Formulars in der Datenblattansicht

    Die Farbe können Sie statt im hexadezimalen Format auch mit der RGB-Funktion angeben - zum Beispiel so:

    Me.DatasheetAlternateBackColor=RGB(255,240,204)

    Wenn Sie die Farbe des aktuell angezeigten Datenblatts - unabhängig davon, ob es sich um eine Tabelle, Abfrage oder ein Formular handelt - ändern möchten, können Sie diesen Aufruf verwenden (beispielsweise im Direktfenster):

    Screen. ActiveDatasheet.DatasheetAlternateBackColor=RGB(255,240,204)

    Die übrigen Einstellungen des Optionen-Dialogs können Sie ebenfalls auf diese Weise vornehmen. Die Namen der passenden Eigenschaften beginnen alle mit »Datasheet...«.

    Die Spaltenbreiten bändigen Sie durch Ziehen des vertikalen Trennstriches zwischen zwei Spalten und die Schriftgröße passen Sie in einem Dialog an, den Sie per Kontextmenü der Titelleiste des Formulars öffnen.

    Nachdem Sie im Hauptformular auch noch die Bildlaufleisten, Datensatzmarkierer, Navigationsschaltflächen und Trennlinien deaktiviert haben, sieht das Formular schon viel besser aus (siehe Abbildung 4.31).

    Abbildung 4.31: Datenblattansicht als Übersicht (»frmKontakteDatenblattansicht«)

    Bezug auf Steuerelemente im Unterformular

    Nun fehlen noch die Funktionen der Schaltflächen. Da sich die betroffenen Daten nun in einem Unterformular befinden, können Sie nicht ohne Weiteres die Prozeduren aus dem Formular frmKontakteEndlosformular einsetzen - aber fast. Die Prozedur hinter der Schaltfläche OK können Sie komplett übernehmen. Die Prozeduren zum Anlegen, Löschen und Bearbeiten des aktuell markierten Datensatzes sehen nun folgendermaßen aus:

    Private Sub cmdBearbeiten_Click()
        If IsNull(Me!sfmKontakteDatenblatt!KontaktID) Then
            MsgBox "Bitte wählen Sie zunächst einen Datensatz aus."
            Exit Sub
        End If
        DoCmd.OpenForm "frmKontakteDetailansicht", DataMode:= acFormEdit, _
            WindowMode:=acDialog, WhereCondition:="KontaktID = " _
            & Me!sfmKontakteDatenblatt!KontaktID
        Me.Requery
    End Sub

    Private Sub cmdLoeschen_Click()
        If IsNull(Me!sfmKontakteDatenblatt.Form!KontaktID) Then
            MsgBox "Bitte wählen Sie zunächst einen Datensatz aus."
            Exit Sub
        End If
        DoCmd.SetWarnings False
        If MsgBox("Möchten Sie den Kontakt '" _
            & Me!sfmKontakteDatenblatt!Vorname & " " _
            & Me!sfmKontakteDatenblatt!Nachname & "' wirklich löschen?", _
            vbYesNo + vbExclamation, "Löschbestätigung") = vbYes Then
            Me!sfmKontakteDatenblatt. SetFocus
            DoCmd.RunCommand acCmdDeleteRecord
        End If
        DoCmd.SetWarnings True
    End Sub

    Private Sub cmdNeu_Click()
        DoCmd.OpenForm "frmKontakteDetailansicht", DataMode:= acFormAdd, _
            WindowMode:= acDialog
        Me!sfmKontakteDatenblatt.Requery
    End Sub

    Listing 4.10: Änderungen an den Prozeduren zum Löschen und Bearbeiten von Datensätzen im Detailformular

    Die Änderungen gegenüber den Prozeduren des Formulars mit der Endlosansicht sind fett gedruckt. Dabei wird jeweils auf die im Unterformular befindlichen Steuerelemente Bezug genommen, die im Formular frmKontakteEndlosformular alle im gleichen Formular wie die Schaltflächen angesiedelt waren.

    Bei den Steuerelementen wird statt Me!KontaktID etwa Me!sfmKontakteDatenblatt!KontaktID verwendet. Stattdessen könnte man auch ausführlicher schreiben:

    Me!sfmKontakteDatenblatt. Form!KontaktID

    oder

    Me.Controls("sfmKontakteDatenblatt").Form.Controls("KontaktID")

    Vorteil Datenblattansicht

    Ein klarer Vorteil der hier konstruierten erweiterten Datenblattansicht gegenüber der Endlosansicht ist, dass nach dem Bearbeiten von Daten im Detailformular und der Aktualisierung der überarbeiteten Daten im Übersichtsformular nicht der Datensatz gewechselt wird. Im Formular frmKontakteEndlosformular springt der Datensatzzeiger nach dem Aktualisieren mit der Requery-Methode immer wieder auf den ersten Datensatz. Das ist in der Datenblattansicht nicht der Fall. Hier ist darüber hinaus nur eine Aktualisierung per Requery nach dem Anlegen eines neuen Datensatzes erforderlich, im Detailformular vorgenommene Änderungen werden automatisch übernommen. Das Gleiche gilt natürlich auch für die Datenblattansicht.

    Nächster Abschnitt:

    4.5.4 Daten in der Übersicht als Listenfeld

    © 2006-2008 André Minhorst Alle Rechte vorbehalten.