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.3 Einfache Daten in der Übersicht als Datenblatt

4.5.4 Daten in der Übersicht als Listenfeld

Die dritte Möglichkeit der Darstellung von Daten in der Übersicht ist die Verwendung eines Listenfeldes. Wie Sie bemerkt haben werden, kann man mit den beiden zuvor beschriebenen Varianten auch bereits in der Übersicht Daten verändern, wenn man nicht gerade die einzelnen Steuerelemente sperrt oder die Eigenschaft RecordsetTyp des Formulars auf Snapshot einstellt. Hier bringt das Listenfeld Vorteile: Es ist keine direkte Bearbeitung möglich und außerdem scheint das Markieren zu bearbeitender oder zu löschender Datensätze intuitiver zu sein. Davon abgesehen kann man den Doppelklick für die schnelle Anzeige des Detailformulars auslegen.

Mit den folgenden Schritten haben Sie rasch ein Listenfeld als Übersicht erstellt:

  • Legen Sie ein Listenfeld in einem leeren Formular an und vergrößern Sie es auf etwa 12 cm Breite.
  • Stellen Sie die Eigenschaft Name auf lstKontakte ein.
  • Legen Sie als Datensatzherkunft eine Abfrage an, die auf der Tabelle tblKontakte basiert und nur die wichtigsten Felder KontaktID, Nachname, Vorname, Telefonnummer und EMail enthält. Gegebenenfalls können Sie auch eine Sortierung festlegen - etwa nach dem Nachnamen.
  • Stellen Sie die Eigenschaften Spaltenanzahl und Spaltenbreiten auf die Werte 5 und 0cm;2cm:2cm;3cm ein. Dadurch wird die gebundene Spalte KontaktID ausgeblendet (Primärschlüsselfelder soll man, wie oben bereits erläutert, nur anzeigen, wenn diese geschäftliche Informationen enthalten). Das Feld muss aber dennoch in der Abfrage und auch im Listenfeld enthalten sein, da sonst kein Bezug zum entsprechenden Datensatz hergestellt werden kann. Die weiteren Spalten werden in der entsprechenden Breite angezeigt und die letzte Spalte füllt den restlichen Platz aus.
  • Je nach Geschmack stellen Sie die Eigenschaft Spaltenüberschriften auf Ja ein oder legen selbst Beschriftungsfelder oberhalb des Listenfeldes an. Bedenken Sie, dass die Spaltenüberschriften - falls angezeigt - eine Zeile belegen und damit der Index des ersten angezeigten Datensatzes nicht 0, sondern 1 ist.
  • Wenn Sie noch die obligatorischen Schaltflächen wie in den beiden vorherigen Beispielen hinzufügen und die Eigenschaften Bildlaufleisten, Datensatzmarkierer, Navigationsschaltflächen und Trennlinien auf Nein einstellen, sieht das Formular wie in Abbildung 4.32 aus.

    Abbildung 4.32: Übersicht per Listenfeld (»frmKontakteListenfeld«)

    Nun fehlen noch die dem Listenfeld angepassten Prozeduren zum Anlegen, Löschen und Bearbeiten des aktuell ausgewählten Datensatzes. Hierbei ist zu beachten, dass nach Änderungen immer die Requery-Methode des Listenfeld-Steuerelements ausgeführt werden muss.

    Die fett gedruckten Zeilen enthalten die Anweisungen, die sich speziell auf das Listenfeld beziehen. Um den Wert des Feldes KontaktID für den aktuellen Listenfeldeintrag zu ermitteln, lesen Sie einfach den Wert des Listenfeldes aus. Das Feld KontaktID ist das gebundene Feld der Datensatzherkunft und dadurch mit dem Wert des Listenfeldes identisch.

    Eine weitere Änderung ist zum Löschen des markierten Datensatzes notwendig: Mit DoCmd.RunCommand acCmdDeleteRecord ist einem Eintrag im Listenfeld nicht beizukommen, hier müssen Sie direkt mit einer DELETE-Anweisung auf die zugrunde liegende Tabelle zugreifen.

    Private Sub cmdBearbeiten_Click()

        If IsNull(Me!lstKontakte) 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!lstKontakte

        Me!lstKontakte.Requery

    End Sub

    Private Sub cmdLoeschen_Click()

        If IsNull(Me!lstKontakte) 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!lstKontakte & " " _
            & Me!lstKontakte & "' wirklich löschen?", _
            vbYesNo + vbExclamation, "Löschbestätigung") = vbYes Then

            CurrentDb.Execute "DELETE FROM tblKontakte WHERE KontaktID = " _
                & Me!lstKontakte
            Me!lstKontakte.Requery

        End If

        DoCmd.SetWarnings True

    End Sub

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

    Listing 4.11: Anlegen, Löschen und Bearbeiten von Datensätzen eines Listenfeldes

    Nächster Abschnitt:

    4.5.5 1:1-Beziehungen

    © 2006-2008 André Minhorst Alle Rechte vorbehalten.