30
Prof. Dr.-Ing. Christine Wahmkow Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Eine Einführung in ACCESS 1. Tabellen einrichten und verknüpfen Zu einer Datenbank gehören Objekte (Tabellen, Formulare, Berichte usw.). Vom Windows-Dateimanager (WindowsExplorer) wird nur der Name der Datenbank verwaltet. Alle Objekte (Tabellen, Formulare, Abfragen, Makros usw.) werden intern von ACCESS verwaltet. Eine Datenbank kann also als Projekt verstanden werden. Die Datenbank mit der Dateierweiterung .accdb muss gleich zu Beginn der Arbeit definiert und gespeichert werden. Man gelangt sofort in die Datenblattansicht einer neuen Tabelle. Um eine neue Tabelle anzulegen, wechselt man in die Entwurfsansicht. Hier kann die Tabelle angelegt werden, d.h., die Spalten und deren Datentypen: ____________________________________ Arbeitsblätter ACCESS Seite 1 Sehr wichtig e Schalt-

Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

Embed Size (px)

Citation preview

Page 1: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

Prof. Dr.-Ing. Christine WahmkowFachhochschule StralsundFachbereich MaschinenbauLehrgebiet Informatik

Eine Einführung in ACCESS

1. Tabellen einrichten und verknüpfenZu einer Datenbank gehören Objekte (Tabellen, Formulare, Berichte usw.). Vom Windows-Dateimanager (WindowsExplorer) wird nur der Name der Datenbank verwaltet. Alle Objekte (Tabellen, Formulare, Abfragen, Makros usw.) werden intern von ACCESS verwaltet. Eine Datenbank kann also als Projekt verstanden werden. Die Datenbank mit der Dateierweiterung .accdb muss gleich zu Beginn der Arbeit definiert und gespeichert werden.

Man gelangt sofort in die Datenblattansicht einer neuen Tabelle. Um eine neue Tabelle anzulegen, wechselt man in die Entwurfsansicht.

Hier kann die Tabelle angelegt werden, d.h., die Spalten und deren Datentypen:

Zur Definition des Primärschlüssels markiert man das entsprechende Attribut (Feld) und klickt auf das Symbol „Primärschlüssel“Sollen mehrere Elemente den Primärschlüssel bilden, so werden diese Elemente vor der Definition des Schlüssels im Block markiert.

____________________________________Arbeitsblätter ACCESS Seite 1

Sehr wichtige Schalt-fläche

Page 2: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

Wechsel zwischen Datenblatt- und Entwurfsansicht

In der Datenblattansicht können Werte eingegeben werden:

Beziehungen zwischen Tabellen werden wie folgt definiert:Registerkarte: Datenbanktools Beziehungen

____________________________________Arbeitsblätter ACCESS Seite 2

Verknüpfen der Feldelemente durch Klicken in der Mastertabelle und Ziehen in die Detailtabelle

Bearbeiten einer Beziehung durch Doppelklick auf die Verbindungslinie; es öffnet sich das abgebildete Fenster

Mastertabelle

Detailtabelle

Page 3: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

Was heißt- referenielle Integrität:In der Detailtabelle dürfen nur Datensätze stehen, deren verknüpftes Feldelement auch in der Mastertabelle vorkommt. Beispiel: Im Lager dürfen nur Artikel liegen, deren Artikelnummern in der Tabelle T_Artikel auch vorkommen.

- Aktualisierungsweitergabe:Bekommt in der Mastertabelle das verknüpfende Feldelement einen neuen Wert, wird auch in der Detailtabelle automatisch mit korrigiert.Beispiel: Die Artikelnummern werden in der Tabelle T_Artikel geändert; automatisch ändern sich die Artikelnummern auch in den Detailtabellen

- LöschweitergabeWird in der Mastertabelle ein Datensatz mit einem verknüpften Feldelement gelöscht, wird in der Detailtabelle der Datensatz mit dem entsprechenden Feldelement auch gelöscht.Beispiel: In der Tabelle T_Artikel wird der Datensatz mit der Artikelnummer 10 gelöscht; in allen Detailtabellen wird dieser Datensatz ebenfalls gelöscht.

Bei der Definition der Beziehungen sind diese drei Eigenschaften stets kritisch zu beurteilen!!!

____________________________________Arbeitsblätter ACCESS Seite 3

Page 4: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

Die Lagerplatzzuordnung im BeispielDie Lagerplatzzuordnung ist abhängig von der Größe der Gehäuse !

Artikel(Gehäuse)

Größe Größe je Lagerfach

Lagerfächer

Notebook 1 1

Minitower 2 1, 2

Tower 3 1, 2, 3

Die Größe 1, 2 und 3 beschreiben die Größen der Artikel, nicht der Lagerfächer !!!

In jedes Lagerfach passen 100 Gehäuse der entsprechenden Größe:

Größe 3 passt in Lagerfach 1 … 7 (jeweils 100) Größe 2 passt in Lagerfach 8 … 14 (jeweils 100) Größe 1 passt in Lagerfach 15 … 21 (jeweils 100)____________________________________Arbeitsblätter ACCESS Seite 4

15 16 21…….

8 9 ..... 14

1 2 ….. 7

Page 5: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

In größere Lagerfächer passt immer die doppelte Anzahl der Gehäuse: Größe 2 passt in 1 … 7 jeweils 200 Stück Größe 1 passt in 8 … 14 jeweils 200 Stück Größe 1 passt in 1 … 7 jeweils 400 Stück

____________________________________Arbeitsblätter ACCESS Seite 5

Page 6: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

Hauptformular

Button1 Button2

Formular 1 Formular 2

2. Formulare erstellen

Es gibt 2 Arten von Formularen:- als Benutzeroberfläche zum Navigieren in der Anwendung- zur Datenein- und -ausgabe

Formulare als Benutzeroberfläche steuern den Fluß einer Anwendung. Der Benutzer hat es während seiner Tätigkeit zum Erfassen, Ändern, Hinzufügen, Recherchieren in einer Datenbank ausschließlich mit Formularen zu tun. Wir als Entwickler müssen natürlich diese bedienfreundlichen Benutzeroberflächen erst einmal zur Verfügung stellen.

Zuerst soll ein Hauptformular für die Anwendung erstellt werden. Das enthält außer paar hübschen ansprechenden bekannten Windows-Elementen wie Grafiken, Linien, farbigen Hintergrund usw. vor allem Steuerelemente in Form von Befehlsschaltflächen.Datenein- und –ausgabe ist nicht möglich, deshalb können die Navigationsleisten und der Datensatzmarkierer ausgeschaltet werden. (siehe Eigenschaften des Formulars)Das Klicken auf die Befehlsschaltflächen öffnet jeweils ein Formular zur Datenein- oder –ausgabe. Diese Formulare müssen natürlich erst vorhanden sein. Deshalb bietet sich bei der Entwicklung einer Datenbank wieder die Bottom-up-Methode an. Das heißt von unten nach oben. Die unteren Formulare können erst mal Dummies sein, d.h. leere Formulare.

Für unsere Lagerverwaltung könnte das Hauptformular beispielhaft so aussehen:

____________________________________Arbeitsblätter ACCESS Seite 6

Page 7: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

Die wesentliche Eigenschaft ergibt sich für eine Befehlsschaltfläche aus der Vorgabe „Beim Klicken“. Hier im Beispiel wird das Makro „Schaltfläche Datenbankfenster“ aufgerufen.

Die Eigenschaften der Ereignisse der Befehlsschaltfläche sind in der unteren Abbildung zu sehen.

Und so wird das Makro erzeugt: Klick…… und dann:

Makro- Generator wählen

____________________________________Arbeitsblätter ACCESS Seite 7

Beim Klicken der Befehlsschaltfläche wird das Makro M_Datenbankfenster aufgerufen.

Diese 3 Einträge zeigen das Datenbankfenster an.

Page 8: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

Der Nutzer will bei seiner Arbeit so wenig wie möglich mit dem eigentlichen Datenbanksystem ACCESS zu tun haben. Am besten ist es, wenn beim Start der Anwendung sofort das Hauptformular geöffnet wird. Das lässt sich in ACCESS sehr einfach realisieren:Registerkarte DATEI Optionen

In folgendem Dialogfenster sind ein paar wenige Eintragungen notwendig:

1. Erstellen Sie selbständig das Hauptformular, so daß die Schaltflächen „Datenbankfenster“ und „Anwendung verlassen“ tatsächlich funktionieren.2. Definieren Sie die Startoptionen, wie oben beschrieben.3. Erstellen Sie selbst ein Formular zum Eingeben von Artikeln (PC-Gehäuse). Verwenden Sie ein Kombinationsschaltfeld für die Eingabe der Gehäusegrößen. Legen Sie dafür vorher eine einfache Tabelle mit möglichen Gehäusegrößen an.4. Definieren Sie für das Formular und dessen Elemente Eigenschaften. Das Eigenschaftenfenster für das Formular öffnen Sie nach untenstehender Abbildung. Klicken Sie mit der rechten Maustaste auf ein Formularelement, um dessen Eigenschaftenfenster zu öffnen. Definieren Sie das Erzwingen der Eingabe bei den Feldern der Tabelle.

Eigenschaften von Formularen definieren:

____________________________________Arbeitsblätter ACCESS Seite 8

Page 9: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

Rechter Mausklick auf das kleine schwarze Quadrat öffnet das Eigenschaftenfenster

3. Abfragen erstellen und anwenden

Abfragen ermöglichen die verschiedensten Sichten auf eine Datenbank. Das heißt, daß die Daten einer Datenbank verschieden kombiniert und dem Nutzer zur Verfügung gestellt werden können.Mittels Abfrage stellt man also eine Frage an eine oder mehrere Tabellen. Die Antwort darauf ist ein Dynaset, was dynamische Menge heißt. Dynamisch deshalb, weil sich die Antworten immer entsprechend dem Inhalt der Tabellen ändern.

Überlegen Sie, welche Fragen und Antworten aus der Datenbank Lager.mdb interessant sein könnten.Zum Beispiel: Welche Lagerplätze befinden sich in der untersten Zeile des Hochregals ?

Zur Definition einer Abfrage muß natürlich die Datenherkunft bekannt sein, also in welchen Tabellen befinden sich die Daten. Da ein Dynaset die gleichen Eigenschaften wie eine Tabelle hat, kann auch eine Abfrage Grundlage einer neuen Abfrage sein. Aber das wollen wir erst einmal außen vor lassen.In die Abfrage werden alle interessierenden Datenfelder aufgenommen, die anderen bleiben unberücksichtigt. Das bringt ja den Vorteil, daß jetzt Daten gruppiert werden können, die in einem anderen Zusammenhang eigentlich gar nicht zueinander passen.Zum Beispiel:Die Datei Eingang enthält folgende Datensätze:

Datensatz

Art.nr. Anzahl Eingangsdatum

Lagerfach

1 10 100 20.02. 22 20 200 20.02. 43 10 200 22.02. 4

____________________________________Arbeitsblätter ACCESS Seite 9

Page 10: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

Bei den folgenden Abfragen sind die aufgeführten Felder interessant und liefern die entsprechenden Ergebnisse:

Abfrage aufzunehmende Feldelemente

Ergebnis

Wieviel Teile der Art.nr.10 liegen im Lager ?

Art.nr., Anzahl 300

Wieviel Teile wurden am 20.02. geliefert ?

Anzahl, Eingangsdatum

300

Wieviel Teile liegen im Lagerfach 4 ?

Anzahl, Lagerfach 400

Welche Teile wurden am 20.2. geliefert ?

Art.nr., Eingangsdatum

10,20

Eine Abfrage ist in ACCESS wie folgt zu definieren:

Beruht eine Abfrage auf mehreren Tabellen, muß es ein Feldelement als verknüpfendes Element geben. Existiert zwischen beiden Tabellen schon eine Beziehung, die schon in der Datenbankkonzeption festgelegt wurde, braucht man sich um die Verknüpfung nicht zu kümmern. Im anderen Fall kann man bei der Definition einer Abfrage die Verknüpfung definieren und deren Eigenschaften festlegen.

____________________________________Arbeitsblätter ACCESS Seite 10

Page 11: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

Definieren Sie für das Beispiel einige Abfragen ! (Siehe Tabelle )Sie können die Ergebnisse über die Datenblattansicht kontrollieren.

Um die Abfrage in die Anwendung zu integrieren, erstellt man ein Formular auf der Basis der Abfrage. Probieren Sie das aus !

Erstellen Sie folgende Abfragen:

Wie viel Gehäuse sind an den einzelnen Tagen eingegangen?Ausprobieren der Funktion „ Gruppierung“

Wann wurden welche Artikelnr. geliefert und wie viel?

Wie oft wurde jede Artikelnr. geliefert?

Von welchen Artikelnr. sind mehr als 300 ins Lager eingegangen?

Von welchen Artikelnr. sind mehr als x ins Lager eingegangen?

Welche Artnr. Wurden im LF 8-14 eingelagert?

Wie viel Gehäuse sind insgesamt eingegangen?

Wie viel Gehäuse sind in den letzten x Tagen eingegangen?

Welche Gehäuse wurden in einer Zeitspanne zwischen 10 Tagen eingeliefert?

An wie viel Tagen sind Gehäuselieferungen eingegangen?

Welche roten Gehäuse wurden geliefert?

Wie viel Tower sind eingegangen?

In welchen LF liegen Notebooks?

____________________________________Arbeitsblätter ACCESS Seite 11

Page 12: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

Beispiel einer Abfrage für den Bestand

Als Ausgang dienen die Abfragen über die Summe der Eingänge und der Ausgänge:

Ergebnis der Bestandsabfrage ohne Verknüpfung beider Abfragen:

____________________________________Arbeitsblätter ACCESS Seite 12

Page 13: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

Hier mit Equi join (Gleichheitsverknüpfung):

und hier mit Inklusionsverknüpfung (Outer join):

Bestandsabfrage mit wenn- Funktion für Anzeige, auch wenn keine Ausgänge

____________________________________Arbeitsblätter ACCESS Seite 13

Page 14: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

Benötigte Abfragen für Visual Basic:____________________________________Arbeitsblätter ACCESS Seite 14

Page 15: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

1.) A_Größe_Lagerfach:

Herkunft der Elemente der Abfrage:

- Artikelnummer aus T_Artikel- Größe aus T_Artikel- Lagerfachnummer aus T_Zuordnung

Name der Abfrage in meinen Unterlagen:

rst 2.) A_Sum_Eingang_Lagerfach:

Herkunft der Elemente der Abfrage:

- Artikelnummer aus T_Eingang- AnzahlE aus T_Eingang → Funktion Summe- Größe aus T_Artikel- Lagerfachnummer aus T_Eingang

Name der Abfrage in meinen Unterlagen:

rs3.) A_Bestand_Lagerfach:

Herkunft der Elemente der Abfrage:- Artikelnummer aus

A_Sum_Eingang_Lagerfach- LFE aus A_Sum_Eingang_Lagerfach- Größe aus

A_Sum_Eingang_Lagerfach- SummevonAnzahlE aus A_Sum_Eingang_Lagerfach - SummevonAnzahlA aus A_Sum_Ausgang_Lagerfach

- Bestand: berechnete Größe Name der Abfrage in meinen

Unterlagen: rsb

4. SQL - Structured Query Language

____________________________________Arbeitsblätter ACCESS Seite 15

Page 16: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

Jede Abfrage wird von Access immer in die Sprache SQL übersetzt. Im Abfragefenster kann man in die SQL-Ansicht wechseln, hier ändern, hinzufügen oder über die Zwischenablage für VBA nutzen.

SQL-Befehle- Der Select- Befehl:

SELECT Spaltenliste FROM Tabellenliste [WHERE Bedingung] [ORDER BY Sortierfolge]

Angaben in eckigen Klammern sind optional.Anwendungen:

SELECT * FROM tabelle alle Feldelemente der Tabelle werden ausgewählt

SELECT spalte1 FROM abfrage [AS alias] Tabellen oder Abfragen können Aliasnamen haben

SELECT spalte1,spalte2 FROM tabelle WHERE ausdruck ausdruck ist ein logischer Vergleich

SELECT * FROM t_filme WHERE filmtitel=“Titanic“ sucht alle Einträge zu „Jackess“

SELECT anzahl FROM t_Eingang WHERE datum BETWEEN #1/1/yy# AND #31/1/yy#SELECT name FROM t_kunde WHERE name LIKE „M*“ alle Namen, die mit M beginnen

SELECT name FROM t_kunde WHERE name LIKE „M??er“ alle Maier, Meier, Mayer und Meyer

SELECT * FROM t_kunde ORDER BY name sortierte Ausgabe

Verknüpfungen mit INNER JOIN, LEFT JOIN und RIGHT JOIN

SELECT spalten FROM tab1 INNER JOIN tab2 ON tab1.spalte1=tab2.spalte2Ausgewählt werden alle gleichen Elemente, die in Tab1.spalte1 und Tab2.spalte2 vorkommen

SELECT spalten FROM tab1 LEFT JOIN tab2 ON tab1.spalte1=tab2.spalte2Ausgewählt werden alle Elemente, aus Tab1.spalte1 und die gleichen aus Tab2.spalte2

SELECT spalten FROM tab1 RIGHT JOIN tab2 ON tab1.spalte1=tab2.spalte2Ausgewählt werden alle Elemente, aus Tab2.spalte2 und die gleichen aus Tab1.spalte1

BeispielTab1.spalte1 Tab2.spalte2

1 23 3

45

Die Zusätze ALL, DISTINCT und DISTINCTROW

SELECT ALL spalten FROM tab WHERE Bedingung alle Ergebnissdatensätze werden ermittelt

SELECT DISTINCT spalte from …… alle doppelten Datensätze werden unterdrückt

SELECT DISTINCTROW ….. Accessspezifisch in verknüpften Abfragen, nach Möglichkeit vermeiden !!

____________________________________Arbeitsblätter ACCESS Seite 16

Legende: INNER JOIN

LEFT JOIN

RIGHT JOIN

Page 17: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

Neue Tabelle anlegen:

CREATE TABLE tabelle (Feld1 Typ, Feld2 Typ,…)z. B. CREATE TABLE t_filme (filmnummer INTEGER, film TEXT)

Aktualisieren einer Tabelle oder Abfrage

UPDATE Tab SET spalte1=Ausdruck, spalte2=Ausdruck ,…. WHERE bedingungz.B. UPDATE T_Name SET entlassen=“Ja“ WHERE abteilung=“EDV“ ( lieber nicht ;-)

Anfügen von Datensätzen

INSERT INTO Zieltabelle (spalten) VALUES (werte)z.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

MySQL-Befehle

Arbeit mit Datenbanken

Datenbank anlegenEine Datenbank kann man wie folgt erstellen.CREATE DATABASE db_name;

Existierende Datenbanken anzeigenMit dem folgenden Befehl werden alle existierenden Datenbanken angezeigt.SHOW DATABASES;Datenbank löschenUm eine Datenbank zu löschen, benötigen Sie den Befehl DROP DATABASE.DROP DATABASE db_name;Um vor dem Löschen sicher zu stellen dass die Datenbank existiert, sollten Sie folgenden Befehlverwenden.DROP DATABASE IF EXISTS db_name;

Arbeiten mit Tabellen

Tabelle anlegenEine Tabelle kann man mit dem Befehl CREATE TABLE anlegen. Zusätzlich zu diesem Befehl müssen derTabellenname und die benötigten Spalten mit den jeweiligen Datentypen angegeben werden.CREATE TABLE tbl_name (id int NOT NULL,spalte1 varchar(50));

Existierende Tabellen anzeigenMit dem folgenden Befehl werden alle existierenden Tabellen angezeigt.SHOW TABLES FROM db_name;

Tabelle löschenUm eine Tabelle zu löschen, benötigen Sie den Befehl DROP TABLE.DROP TABLE tbl_name;Wie bei dem Befehl DROP DATABASE gibt es auch hier die Option IF EXISTS.DROP TABLE IF EXISTS tbl_name;

____________________________________Arbeitsblätter ACCESS Seite 17

Page 18: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

Spalte hinzufügenWenn nachträglich noch eine Spalte in eine Tabelle eingefügt werden soll, benötigen Sie den BefehlALTER TABLE mit der Option ADD COLUMN.ALTER TABLE tbl_name ADD COLUMN (spalte2 char(50));

Datentyp einer Spalte ändernUm nachträglich den Datentyp einer Spalte zu ändern, verwendet man ebenfalls den Befehl ALTER TABLE,allerdings jetzt mit der Option MODIFY.ALTER TABLE tbl_name MODIFY (spalte2 varchar(50));

Spalte löschenEine Spalte können Sie mit dem Befehl ALTER TABLE und der Option DROP COLUMN löschen.ALTER TABLE tbl_name DROP COLUMN spalte2;

Umgang mit Datensätzen

Daten einfügenMit dem Befehl INSERT werden Daten in eine vorhandene Tabelle gespeichert.INSERT INTO tbl_name (spalte1, spalte2) VALUES (wert1, wert2);Wollen Sie in eine Spalte keinen Wert eintragen, so lassen Sie diese Spalte einfach aus der Anweisungheraus.

Daten modifizierenUm einen Datensatz zu ändern, verwendet man den Befehl UPDATE.UPDATE tbl_name SET spalte1 = neuer_wert1 WHERE id = 1;Mit diesem Befehl wird der vorhandene Wert vom ersten Eintrag (id = 1) mit dem neuen Wert(neuer_wert1) überschrieben.

Daten löschenEin Datensatz wird mit dem Befehl DELETE gelöscht.DELETE FROM tbl_name WHERE id = 1;Wollen Sie die komplette Tabelle leeren, müssen Sie nur die Bedingung entfernen.DELETE FROM tbl_name;

Abfragen erstellen

Einfache AbfrageDie folgende Befehlszeile gibt den gesamten Inhalt einer Tabelle aus.SELECT * FROM tbl_name;Sollen nur einzelne Spalten von der ganzen Tabelle angezeigt werden, müssen Sie den Operator * durchdie Spaltennamen ersetzenSELECT spalte1, spalte2 FROM tbl_name;

Einfache Abfrage mit DISTINCTMit der Option DISTINCT können Duplikate ausgefiltert werden.SELECT DISTINCT spalte1 FROM tbl_name;

Abfrage mit BedingungDer folgende Befehl gibt die komplette Zeile aus, bei der in der Spalte id eine 1 steht.SELECT * FROM tbl_name WHERE id = 1;Wenn Sie nach einem Wort suchen, müssen Sie dieses in zwei Hochkommas setzen.SELECT * FROM tbl_name WHERE spalte1 = 'wort';Um die Datensätze zwischen 10 und 20 auszugeben können Sie BETWEEN verwenden.

____________________________________Arbeitsblätter ACCESS Seite 18

Page 19: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

SELECT * FROM tbl_name WHERE id BETWEEN 10 AND 20;

Abfrage mit PlatzhalterWenn Sie nicht genau wissen, an welcher Stelle das Wort steht welches Sie suchen, können Sie denPlatzhalter % verwenden. Der Platzhalter % steht für beliebig viele Zeichen.Weiterhin müssen Sie das = durch LIKE ersetzen.SELECT * FROM tbl_name WHERE spalte1 LIKE '%wort%';Ein weiterer Platzhalter ist der Unterstrich. Dieser steht für genau ein Zeichen.SELECT * FROM tbl_name WHERE spalte1 LIKE 'w__t';

Verknüpfung von BedingungenWerden zwei Bedingungen mit einem AND verknüpft, müssen beide Bedingungen erfüllt werden.SELECT * FROM tbl_name WHERE id > 10 AND id < 20;Werden zwei Bedingungen mit einem OR verknüpft, muss mindestens eine Bedingung erfüllt sein.SELECT * FROM tbl_name WHERE id = 10 OR id = 20;Mit der Bedingung NOT kann man das Ergebnis einer Bedingung negieren.SELECT * FROM tbl_name WHERE id < 10 AND NOT id = 5;Werden mehrere Bedingungen miteinander verknüpft, müssen gegebenenfalls Teile der Abfrage inKlammern gesetzt werden.SELECT * FROM tbl_name WHERE id < 10 OR (spalte1 = 'wort' AND id = 5);

Aggregatfunktionen nutzen

Anzahl der Datensätze ermittelnUm die Anzahl der Datensätze zu ermitteln auf die eine Abfrage zutrifft, gibt es die Funktion COUNT.SELECT COUNT(*) FROM tbl_name WHERE spalte1 = 'wort';

SummierungMit dem Befehl SUM kann man die Summe der Werte einer Spalte (hier preis) ermitteln.SELECT SUM(preis) FROM tbl_name;

DurchschnittMöchte man den Durchschnitt aller Werte einer Spalte erhalten, benutzt man die Funktion AVG.SELECT AVG(preis) FROM tbl_name;

MaximalwertDie Funktion MAX ermittelt den maximalen Spaltenwert.SELECT MAX(preis) FROM tbl_name;

MinimalwertDas Gegenteil zu der Funktion MAX ist die Funktion MIN.SELECT MIN(preis) FROM tbl_name;

GruppierungMit der Funktion GROUP BY können gleiche Ergebnisse gruppiert werden. Mit Hilfe der folgendenBefehlskombination kann man somit die Anzahl der doppelten Einträge in der Spalte „spalte1“ ermitteln.SELECT spalte1, COUNT(*) FROM tbl_name GROUP BY spalte1;

HAVINGDie Funktion HAVING ermöglicht das überprüfen von Bedingungen bei aggregierten Werten. Im folgendenBeispiel werden doppelte Einträge in der Spalte „spalte1“ gezählt und nur die angezeigt, die mehr als fünfmal gefunden wurden.SELECT spalte1, COUNT(*) FROM tbl_name GROUP BY spalte1 HAVING COUNT(*) > 5ORDER BY spalte1;

____________________________________Arbeitsblätter ACCESS Seite 19

Page 20: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

SortierungDie Ergebnisse einer Abfrage können mit der Funktion ORDER BY sortiert werden.SELECT * FROM tbl_name ORDER BY spalte1, spalte2;Um die Sortierreihenfolge fest zu legen gibt es die Schlüsselworte ASC (ascending = aufsteigend) undDESC (descending = absteigend).SELECT * FROM tbl_name ORDER BY spalte1 ASC;SELECT * FROM tbl_name ORDER BY spalte1 DESC;Wenn kein Schlüsselwort verwendet wird, wird das Ergebnis aufsteigend sortiert.

WeiterführendesMySQL Homepage:http://www.mysql.deMySQL Dokumentation:http://dev.mysql.com/doc/phpMyAdmin - PHP-Administration-Oberfläche für MySQLhttp://www.phpmyadmin.net

____________________________________Arbeitsblätter ACCESS Seite 20

Page 21: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

5. VBA- Visual Basic for Applications

einige wichtige SyntaxbeschreibungenVBA basiert auf der englischen Sprache.Deshalb wird in reellen Zahlen der Dezimalpunkt verwendet.Im Unterschied dazu wird in Makros deutsch „gesprochen“ und bei reellen Zahlen ein Komma als Dezimalstelle verwendet.

5.1 Variablenvereinbarungen- wird durch Option Explicit erzwungen; Menü Extras/Optionen, Registerkarte Editor; Option Variablendeklaration erforderlilch

- DIM variablenname AS variablentypz.B. DIM a as integer, b as Variant, x,y as double ’nur y wird als double deklariert, x als Variant

man unterscheidet lokale und globale Variablen

lokal: alle Variablen, die innerhalb einer Prozedur oder Funktion definiert sind,d.h. Variablen können in jeder Proz. oder Function beliebig neu definiert werden.

global: 2 Arten:1) Gelten innerhalb eines Moduls; hier erfolgt die Deklaration ganz oben im Modul außerhalb der Prozeduren 2) gelten für alle Module; hier erfolgt die Deklaration ganz oben in einem beliebigen Modul mit dem Schlüsselwort PUBLICz.B. public a as Variant public const pi=3.14 ’Beachte den Punkt als Dezimalzeichen.

5.2 Deklaration der Datenbanken und RecordsetsDeren Deklaration ist abhängig von den verwendeten ObjektbibliothekenDAO oder ADO

DAO ADODim db as DataBaseDim rs as Recordset

Set db=CurrentdbSet rs=db.OpenRecordset(„Tabelle, Abfrage oder SQL“)

Dim db as ADODB.ConnectionDim rs as New ADODB.Recordset

Set db=CurrentProject.Connectionrs.Open((„Tabelle, Abfrage oder SQL“),db

5.3 wichtige Grundstrukturen

- Alternativen (Bedingungen)

1.Form: in einer Zeile

If Bedingung Then Anweisung [Else Anweisung)

2. Form: IF-THEN-Block

if Bedingung then Anweisungsblock

____________________________________Arbeitsblätter ACCESS Seite 21

Page 22: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

End If

Oder

if Bedingung then AnweisungsblockElse AnweisungsblockEnd if

- Schleifen

For…Next-Schleife:

For Zähler=Start to Ende For i=1 to 10 Anweisungen s=s+1Next Zähler next i

While-Schleife: X=1While Bedingung ’Führe aus, solange die Bedingung wahr ist while x<11 Anweisungen debug.print xWend x=x+1 WendDo While- Schleife

Do While Bedingung AnweisungenLoop

Do Until-Schleife X=1Do Until Bedingung ’Führe aus, bis Bedingung wahr Do until x<11 Anweisungen Debug.print xLoop x=x+1 loop

EXIT – zum vorzeitigen Verlassen der Schleifen oder Prozeduren

Exit ForExit Do

Exit FunctionExit Sub

____________________________________Arbeitsblätter ACCESS Seite 22

Diese Schleife wird nicht ausge-führt.

Zum Verlassen von Schleifen

Zum Verlassen von Prozeduren und Funktionen

Page 23: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

5.4 Objekte und Bezüge auf Objekte

Die Access-Objectbibliothek

Screen – aktives ObjektDoCmd – ermöglicht die Ausführung von Makroaktionen in VBA-Programmen (englisch)

Forms, Records- Auflistungen, Behälter, wo sich alle Formulare bzw. Berichte befinden

Zugriff:

Forms![Kunden] ’ Trennzeichen ist !

Benennung des Behälters Unterobjekt

Trennzeichen „.“ Oder „!“

- Vordefinierte Eigenschaften oder Methoden werden durch Punkt „.“ eingeleitet.

- eigene benutzerdefinierte Elemente werden durch vorstehendes „!“ benannt.

Methoden und Eigenschaften von Objekten sind vordefiniert. Des halb erfolgt hier die Punktnotation. Objekt.MethodeObjekt.Eigenschaft

z.B.Forms!Kunden.SetFocusForms!Kunden!Name.VisibleForms!Kunden!Name.Visible=0

Daten suchen

Gesucht werden immer nur ganze Datensätze, d.h. der Datensatzzeiger kann innerhalb der Datei gesetzt werden. Ein Datensatz wird gelesen, dann ausgewertet.

Zur Datensatznavigation stehen viele Methoden zur Verfügung:

____________________________________Arbeitsblätter ACCESS Seite 23

Application

Forms Reports Screen DoCmd

Controls Controls

Page 24: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

rs - RecordsetFind-Methoden:

rs.Findfirstrs.findlastrs.findnextrs.findprevious

z.B. rs.Findfirst („[Name]=’Meier’ “)

Diese Methoden sind meist in eine Schleife eingebunden, wenn eine Datei von Anfang bis Ende auf ein bestimmtes Kriterium durchsucht werden soll.Dateien mit Schleife durchsuchen:Rs.Nomatch ’ ist ein DS mit Find-Kriterium gefunden, ist NoMatch=true

Anwendung in Schleife:

rsFindFirst kriteriumDo until rs.NoMatch ……. Rs.FindNext KriteriumLoop

Move-Methoden:

rs.MoveFirstrs.MoveNextrs.MoveLast

Wird verwendet, um eine Datei satzweise von Anfang bis Ende zu durchsuchen

Rs.MovefirstDo until rs.EOF ’EOF… End of File …… rs.MoveNextloop

einige andere wichtige Methoden:

rs.recordcount ’gibt die Anzahl der Datensätze zurückrs.close ’schließt die Dateirs.filter=“[Name]=’Meier’“ ’setzt Filter

auf Datensatzelemente zugreifen:

rs![Element]Name=rs![Name]debug.print rs![Artikelnummer]if rs![Name]=Name then….If rs![Name]=Forms![Kunden]![Name] then….

____________________________________Arbeitsblätter ACCESS Seite 24

Kriterien

Page 25: Prof - Fakultät für Maschinenbau - Hochschule-Stralsund -wahmkow/download/access/access.docx · Web viewz.B. INSERT INTO t_kunden (Name,Ort,PLZ) VALUES („Meier“,Stralsund,18435)

Der Algorithmus zur Berechnung der Normalkapazität:

If G = 1 Then If LF >= 15 Then N_Kap = 100 Else If LF >= 8 Then N_Kap = 200 Else N_Kap = 400 End If End If

If G = 2 Then If LF >= 8 Then N_Kap = 100 Else N_Kap = 200 End If

If G = 3 Then N_Kap = 100

____________________________________Arbeitsblätter ACCESS Seite 25