Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 2/2001.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Die Microsoft Office 2000 Developer Edition:

Arbeiten mit dem DataGrid-Steuerelement

Autor: André Minhorst, Duisburg

Die Developer Edition von Office 2000 bietet einige nützliche Tools für den Entwickler. In loser Folge sollen Sie die unterschiedlichen nützlichen Features der ODE kennenlernen. Ein sehr interessantes Tool ist ein neues Steuerelement namens Microsoft DataGrid Control. Es dient zur Anzeige von Daten in Tabellenform innerhalb von Formularen und kann in manchen Fällen das Einbinden von Unterformularen verhindern. Außerdem bietet es einen nicht zu unterschätzenden Vorteil: Seine Datenherkunft und seine Eigenschaften können während der Laufzeit an die jeweiligen Gegebenheiten angepasst werden.

Das ADO-DataGrid

Das Microsoft Datagrid Control dient zur Anzeige von Daten in tabellenähnlichem Format. Wenn Sie bereits einmal eine Auflistung von Daten in einem Formular anzeigen wollten, haben Sie wahrscheinlich eine Vorstellung von den unterschiedlichen Möglichkeiten. Anderenfalls finden Sie in den folgenden Abschnitten einige Alternativen inklusive ihrer Vor- und Nachteile.

Hinweis

Die Beispiele im vorliegenden Beitrag beziehen sich auf die unterschiedlichen Tabellen der Nordwind-Datenbank. Dabei erstellen die meisten Prozeduren eine Verbindung zu der Datenbank. Damit Sie mit Ihrer Beispieldatenbank problemlos die vorgegebenen Prozeduren verwenden können, erstellen Sie bitte in dem gleichen Verzeichnis, in dem sich auch Ihre Beispieldatenbank befindet, eine Kopie der Nordwind-Datenbank. (

Datenlisten mit einem Endlosformular anzeigen

Sie können einerseits die Daten mit Hilfe entsprechender Steuerelemente im Detailbereich des Formulars anordnen. Wenn Sie außerdem die Eigenschaft Standardansicht auf den Wert Endlosformular einstellen, erhalten Sie den gewünschten Effekt (Abb. 1). Der Nachteil liegt darin, dass Sie weitere Steuerelemente nur ober- oder unterhalb von der Datensatzliste im Kopf- oder Fußbereich anlegen können.

Abb. 1: Datensatzliste im Detailbereich

Datenlisten in der Datenblattansicht anzeigen

Das funktioniert auch, in dem Sie einfach die gewünschten Felder aus der Feldliste in den Detailbereich des Formulars ziehen und die Eigenschaft Standardansicht auf den Wert Datenblattansicht einstellen (Abb. 2). Auch hier gibt es einen Nachteil: Sie können im Formular gar keine weiteren Steuerelemente mehr anlegen, da es diese nicht anzeigt. Die Alternative ist, das Formular als Unterformular in einem anderen Formular anzulegen und dort die gewünschten Steuerelemente zu platzieren.

Abb. 2: Datensätze in der Datenblattansicht

Daten per Listenfeld anzeigen

Die dritte Möglichkeit ist der Einsatz des Listenfeldes. Mit einem Listenfeld lassen sich zwar Daten anzeigen und auch einzelne Datensätze auswählen, aber es ist kein Hinzufügen, Löschen oder Bearbeiten der Daten möglich.

Daten mit dem Microsoft DataGrid-Steuerelement anzeigen

Eine neue Möglichkeit ist die Anzeige von Datenlisten in einem separaten Steuerelement - dem Microsoft DataGrid-Steuerelement.

Hinweis

Das Microsoft DataGrid-Steuerelement ist Bestandteil von Office 2000 Developer sowie von einigen Visual Basic-Paketen. Sie können es problemlos einsetzen, wenn eines der genannten Pakete auf Ihrem Rechner installiert ist. (

Um die Funktionsweise des DataGrid-Steuerelements zu testen, erstellen Sie zunächst ein neues Formular. Gehen Sie dann folgendermaßen vor:

  • Wechseln Sie in die Entwurfsansicht des Formulars.
  • Wählen Sie den Menübefehl Einfügen( ActiveX-Steuerelement... aus.
  • Im Dialog ActiveX-Steuerelement wählen Sie den Eintrag Microsoft DataGrid Control, Version 6.0 (OLE DB) aus (Abb. 3).
  • Im Detailbereich des Formulars erscheint nun das neue Steuerelement. Bringen Sie es mit der Maus auf die richtige Größe.
  • Abb. 3: Dialog zur Auswahl eines ActiveX-Steuerelements

    Bevor Sie weitere Schritte unternehmen, sollten Sie dem Steuerelement zunächst einen sinnvollen Namen zuweisen, z.B. ocxDataGrid.

    Speichern Sie außerdem das Formular unter dem Namen frmArtikelDataGrid.

    DataGrid-Steuerelement mit Daten füllen

    Nun sollen Sie das neue Steuerelement mit Daten füllen. Im Beispiel soll das DataGrid alle Artikel der Tabelle Artikel anzeigen.

    Üblicherweise verfügen Steuerelemente über eine oder mehrere Eigenschaften, mit denen man die anzuzeigenden Daten festlegen kann. Wenn Sie die Eigenschaften des DataGrid-Steuerelements anzeigen und in das Register Daten wechseln, finden Sie keine derartige Eigenschaft (Abb. 4).

    Abb. 4: Daten-Eigenschaften des DataGrid-Steuerelements

    Statt dessen benötigen Sie eine Prozedur zum Zuweisen der gewünschten Daten. Das Formular soll die Prozedur beim Laden aufrufen. Sie müssen die Prozedur also für die Ereigniseigenschaft Beim Laden des Formulars hinterlegen.

    Private Sub Form_Load()

        

        Set rst = New ADODB.Recordset

        Set con = New ADODB.Connection

            

        con.Provider = "Microsoft.jet.oledb.4.0"

        con.CursorLocation = adUseClient

        con.Open CurrentProject.Connection

        

        Set rst.ActiveConnection = con

        rst.CursorType = adOpenStatic

        rst.LockType = adLockOptimistic

        

        rst.Open "qryArtikel", , , , adCmdTable

        

        Set ocxDataGrid.DataSource = rst

        

        Set Me.Recordset = rst

        

    End Sub

    Damit später keine Probleme auftreten, sollten Sie beim Entladen des Formulars - also z.B. wenn Sie es schließen oder in die Entwurfsansicht wechseln - die gesetzten Objektvariablen wieder löschen. Legen Sie daher für die Ereigniseigenschaft Beim Entladen die folgende Prozedur an:

    Private Sub Form_Unload(Cancel As Integer)

        Set rst = Nothing

        con.Close

        Set con = Nothing

    End Sub

    Schließlich fehlt noch die Deklaration der beiden Objektvariablen für die Verbindung und für die Datensatzgruppe. Deklarieren Sie die beiden Variablen am Besten im Kopf des Formularmoduls:

    Dim con As ADODB.Connection

    Dim rst As ADODB.Recordset

    Wenn Sie das Formular nun in der Formularansicht anzeigen, haben Sie bereits ein ordentliches Ergebnis (Abb. 5).

    Abb. 5: Ein mit Daten gefülltes DataGrid

    Leider können Sie in dieser Form nicht auf die entsprechenden Einträge der Tabellen Lieferanten und Kategorien zugreifen. Dadurch zeigt das DataGrid-Steuerelement nur die Datensatznummern der entsprechenden Tabellen an.

    Hinweis

    Leider können Sie mit dem DataGrid-Steuerelement nur die Inhalte der Felder von Tabellen oder Abfragen anzeigen, nicht aber den Inhalt verknüpfter Tabellen oder eingebettete Objekte.(

    Wenn Sie statt der Datensatznummern die Bezeichnungen der Kategorie und des Lieferanten anzeigen möchten, müssen Sie eine geeignete Abfrage erstellen. Die Abfrage soll die Tabellen Artikel, Kategorien und Lieferanten enthalten. Sie haben zwei Möglichkeiten, die gewünschte Abfrage zu verwenden. Entweder Sie erstellen einen geeigneten SQL-String und setzen ihn direkt in die Open-Anweisung ein oder Sie erstellen die Abfrage in der Nordwind-Datenbank selbst und verweisen von der Open-Anweisung aus auf die Abfrage.

    Um den gewünschten SQL-Befehl zu erhalten, müssen Sie kein SQL-Profi sein. Gehen Sie einfach folgendermaßen vor:

  • Öffnen Sie die Nordwind-Datenbank, die Sie in Ihr Beispielverzeichnis kopiert haben.
  • Klicken Sie im Datenbankfenster auf das Register Abfragen.
  • Erstellen Sie mit dem entsprechenden Befehl eine neue Abfrage in der Entwurfsansicht.
  • Ziehen Sie die drei Tabellen Artikel, Kategorien und Lieferanten in die Entwurfsansicht.
  • Ziehen Sie die gewünschten Felder in das Entwurfsraster. Dazu gehören alle Felder der Tabelle Artikel (mit Ausnahme der Nachschlagefelder) sowie die Felder Lieferant und Kategorie aus den beiden anderen Tabellen.
  • Wählen Sie nun aus der Menüleiste den Befehl Ansicht( SQL-Ansicht aus.
  • Markieren Sie die SQL-Anweisung und kopieren Sie sie in die Zwischenablage.
  • Nachdem Sie die Anweisung in die Zwischenanlage kopiert haben, können Sie die Nordwind-Datenbank schließen.

    Nun müssen Sie die Anweisung noch in die entsprechende Zeile der Prozedur Form_Load einsetzen:

    Ersetzen Sie den Befehl

    rst.Open "Artikel", , , , adCmdTable

    durch die folgende Anweisung, wobei Sie statt dem Platzhalter <SQL-Anweisung> den entsprechenden String einsetzen:

    rst.Open "<SQL-Anweisung>", , , , adCmdTable

    Leider treten mitunter Fehler bei der Bearbeitung langer SQL-Anweisungen auf. Daher sollten Sie im vorliegenden Fall eine Alternative wählen: Legen Sie einfach eine neue Abfrage mit den gewünschten Feldern der drei Tabellen in der Nordwind-Datenbank an und speichern Sie die unter dem Namen qryArtikel. Dementsprechend ersetzen Sie den Platzhalter <SQL-Anweisung> durch den String "qryArtikel".

    Das angezeigte Ergebnis sieht nun schon ansprechender aus (Abb. 6). Leider ist die Spaltenüberschrift etwas misslungen.

    Abb. 6: Anzeige der Artikel mit Kategorie und Lieferant

    Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

    Sind Sie Abonnent?Jetzt einloggen ...
     

    Kompletten Artikel lesen?

    Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

    E-Mail:

    Verwandte Beiträge:

    Datenbankzugriff mit ADO

    Performanter Webzugriff auf MySQL-Datenbanken

    Zuletzt verwendete Datensätze anzeigen

    Daten visualisieren mit HTML

    Temporäre Datensatzgruppen

    © 2003-2015 André Minhorst Alle Rechte vorbehalten.