Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung

...powered by haas.homelinux.net...

Einstieg in VB.NET von René Martin
- Für Programmiereinsteiger -
Einstieg in VB.NET
gp Kapitel 9 Datenbankzugriff
  gp 9.1 Tabellen
  gp 9.2 Abfragen
    gp 9.2.1 Sortieren in einer Abfrage
    gp 9.2.2 Filtern in einer Abfrage
  gp 9.3 Beziehungen zwischen Tabellen
  gp 9.4 Zugriff von VB.NET auf die Datenbank
    gp 9.4.1 Gebundene Formulare
    gp 9.4.2 Steuerung des Formulars
    gp 9.4.3 Gebundene Formulare ohne Assistent
    gp 9.4.4 Ungebundene Formulare


Galileo Computing

9.2 Abfragen  downtop

Formulare können entweder auf Tabellen oder auf Abfragen gesetzt werden. Dienen die Formulare zur reinen Dateneingabe, dann könnten sie direkt auf eine Tabelle aufgesetzt werden. Sollen Daten beim Weiterblättern in einer bestimmten Reihenfolge angezeigt werden, dann sollte das Formular eine Abfrage verwenden, die auf den Daten einer Tabelle basiert.

Abfragen sind das eigentliche Zentrum einer Datenbank. In ihnen wird sortiert, gefiltert, gerechnet und mit ihrer Hilfe kann man neue Tabellen erstellen, Datensätze aus Tabellen löschen oder anfügen. Da dies nicht zum Thema der Formulare gehört, beschränken wir uns auf zwei Funktionen der Abfragen »Filtern« und »Sortieren«.


Galileo Computing

9.2.1 Sortieren in einer Abfrage  downtop

Wählen Sie die Entwurfsansicht für eine neue Abfrage, dann werden Sie nach der Tabelle gefragt, auf der diese basiert. Abfragen können auch auf Abfragen aufgesetzt werden.

Abbildung

Abbildung 9.2   Eine neue Abfrage wird erstellt.

In der Entwurfsansicht der Abfrage findet sich im oberen Teil die Feldliste. In ihr stehen die Namen der Felder der Tabelle. Dieses Fenster kann verschoben und vergrößert werden. Ist eines der Felder fett formatiert, dann bedeutet dies, dass es sich hier um den Primärschlüssel handelt. Die einzelnen Felder können mit einem Doppelklick auf ihren Namen oder mit der Maus per Drag & Drop in den Entwurfsbereich heruntergezogen werden. Ebenso kann der Feldname auch aus der Dropdown-Liste ausgewählt werden. So könnte man beispielsweise alle Felder einer Tabelle in die Abfrage aufnehmen (mit (Umschalt) oder (Strg) können mehrere Felder markiert werden. Nun könnte aus dem Dropdown-Feld »Sortierung« die Sortierung (auf- oder absteigend) eingeschaltet werden. Diese Lösung erweist sich allerdings als nicht sehr glücklich. Soll zum Beispiel in einer Namensliste zuerst nach dem Zunamen und anschließend nach dem Vornamen sortiert werden, dann versagt die eben beschriebene Lösung. Geschickter ist es, anstatt jedes Feld einzeln in die Abfrage zu ziehen, die gesamte Tabelle nach unten zu holen. Sie wird in der Feldliste durch ein »*« repräsentiert.

Nun können zur Tabelle zusätzlich ein Feld oder mehrere Felder hinzugefügt werden. Für sie wird nun ein Sortierkriterium festgelegt. Access liest die Abfragekriterien von links nach rechts. Soll also eine Namensliste zuerst nach dem Zunamen, dann nach dem Vornamen sortiert werden, dann sind die beiden Felder in dieser Reihenfolge nebeneinander einzugeben. Damit sie in der Datenblattansicht nicht zweimal auftauchen (in der Tabelle und als Sortierkriterium), sollte das Feld »Anzeigen« deaktiviert werden.

Abbildung

Abbildung 9.3   Die Abfrage dient zum Sortieren.

Das Ergebnis der Abfrage kann jederzeit über das Symbol oder den Menüpunkt Ansicht Datenblattansicht angesehen werden (falls kein Fehler gemacht wurde). Als dritte »Ansicht« steht Ihnen noch der interne SQL-Befehl zur Verfügung, der für unsere Programmierung von Interesse ist. Dieser Befehl repräsentiert die eigentliche Abfrage. Glücklicherweise muss er nicht eingegeben werden, sondern kann in der Entwurfsansicht per Drag & Drop erzeugt werden. Umgekehrt könnte die Abfrage über die SQL-Ansicht verändert werden.

Abbildung

Abbildung 9.4   Die Datenblattansicht der Abfrage

Abbildung

Abbildung 9.5   Der SQL-Befehl der Abfrage

Übrigens kann das Sortieren der Tabelle beschleunigt werden, wenn auf das Feld ein Index gelegt wird. Dabei gibt es Indizes mit und ohne Duplikate. Die Liste sämtlicher gesetzter Indizes einer Tabelle kann über den Menüpunkt Ansicht Indizes eingesehen werden.

Jede Änderung in einer Tabelle wird in die Abfrage übernommen. Änderungen in sortierten Abfragen werden in die Tabelle geschrieben. Sollen in einem Formular nicht alle Datensätze verwendet werden, dann können die benötigten Informationen in der Abfrage gefiltert werden.


Galileo Computing

9.2.2 Filtern in einer Abfrage  toptop

Zum Filtern ist es nötig, den Typ des Felds zu kennen, nach dem gefiltert wird. Zwar erlaubt Access bei der Eingabe gewisse Unschärfen, die automatisch korrigiert werden, aber wenn Sie Datum und Text verwechseln, kann es zu Fehlern kommen.

Gefiltert wird auf die gleiche Weise wie sortiert: Man kann das Symbol für die gesamte Tabelle (»*«) nach unten ziehen und daneben einzelne Spalten wiederholen. In ihnen werden die Filterkriterien eingestellt. Dabei stehen folgende Möglichkeiten zur Verfügung:

Tabelle 9.3   Die Filterkriterien der Abfrage
Datentyp Filterkriterien Beispiel
Zahl = (oder nichts), <, >, <=, >= 7 >7
  zwischen, und, oder, nicht zwischen 1 und 4 1 oder 2 oder 3 oder 4 >=1 und <=4
Datum, Uhrzeit wie Zahlen. Das Datum kann normal eingegeben werden und wird in der Regel als solches erkannt. Es wird in Access mit Zahlenzeichen eingeschlossen (#) #01.04.2001# zwischen #01.01.2001# und #31.12.2001#
Text » « »Maier« »Maier« oder »Müller« oder »Moshammer«
  * (Platzhalter für beliebig viele Zeichen) ? (Platzhalter für ein Zeichen) wie »M*« liefert alle Namen, die mit »M« beginnen
  [ – ] (Bereiche) wie » [A-M]* « liefert alle Namen, die mit einem Buchstaben von A bis M beginnen
Ja/Nein Ja oder Nein Ja filtert alle Wahrwerte
Zahl, Text, Datum ist Null liefert alle leeren Felder
  ist nicht Null liefert alle Felder, in denen irgendetwas steht

Abbildung

Abbildung 9.6   Die Daten werden gefiltert.

Abbildung

Abbildung 9.7   Die SQL-Ansicht

  

VB.NET

Einstieg in ASP.NET

Einstieg in C#

Visual C#

VB.NET und Datenbanken

Einstieg in XML