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!

5.10.9 Reflexive Daten im TreeView-Steuerelement

5.10.10 TreeView füllen bei großen Datenbeständen

Das Füllen von TreeView-Steuerelementen kann je nach Menge der anzuzeigenden Daten eine Weile dauern. Es gibt verschiedene Möglichkeiten, den Aufbau des Baumes zu beschleunigen. Bei bekannter Verschachtelungstiefe können Sie etwa folgende Variante verwenden: Die Anzeige von Kunden und Bestellungen aus dem weiter oben beschriebenen Beispiel erzeugt beispielsweise für jeden Kunden ein neues Recordset-Objekt mit den passenden Bestellungen.

Dies können Sie sich sparen, indem Sie direkt alle benötigten Informationen in einer einzigen Abfrage zusammenfassen. Diese enthält im vorliegenden Fall die beiden Tabellen tblKunden und tblBestellungen und die in Abbildung 5.30 abgebildeten Felder, wobei diese nach den Primärschlüsselfeldern der beiden Tabellen sortiert sind - das ist für die folgende Vorgehensweise besonders wichtig.

Abbildung 5.30: Diese Abfrage liefert alle Bestellungen samt Kundeninformationen

Die folgende Routine sorgt für das Füllen des TreeView-Steuerelements auf Basis der Abfrage qryKundenUndBestellungen:

Private Sub Form_Load()
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim objNode As MSComctlLib.Node
    Dim lngVorherigerKunde As Long
    Set db = CurrentDb
    Set rst = db.OpenRecordset("qryKundenUndBestellungen")
    objTreeView.Nodes.Clear
    Do While Not rst.EOF
        If Not rst!KundeID = lngVorherigerKunde Then
            Set objNode = objTreeView.Nodes.Add(, , _
                "Kunde" & rst!KundeID, rst!Firma)
        End If
        Set objNode = objTreeView.Nodes.Add("Kunde" & rst!KundeID, _
            tvwChild, "Bestellung" & rst!BestellungID, rst!BestellungID _
            & "/" & rst!Bestelldatum)
        lngVorherigerKunde = rst!KundeID
        rst.MoveNext
    Loop
    Set objNode = Nothing
    rst.Close
    Set rst = Nothing
    Set db = Nothing
End Sub

Listing 5.15: Diese Routine füllt ein TreeView-Steuerelement mit den Daten der Abfrage qryKundenUndBestellungen

Die Routine durchläuft alle in der Abfrage qryKundenUndBestellungen enthaltenen Datensätze. Dabei speichert sie jeweils die KundenID des aktuellen Kunden in der Variablen strVorherigerKunde zwischen.

Im ersten Durchlauf ist lngVorherigerKunde noch leer, also wird das Kunden-Element angelegt. Im gleichen Zuge legt die Routine das erste Bestellungs-Element an - und das alles mit den Daten des ersten Datensatzes.

Beim zweiten Datensatz stellt die Routine fest, dass die Kunden-ID dem Wert von lngVorherigerKunde entspricht, und legt kein neues Element für diesen Kunden, sondern nur die im zweiten Datensatz enthaltene Bestellung an.

Nächster Abschnitt:

5.10.11 Elemente erst bei Bedarf anlegen

© 2006-2008 André Minhorst Alle Rechte vorbehalten.