Lade Inhalt...

Konzeption und Umsetzung einer durchgängigen Meßdatenverarbeitung am Beispiel eines Bemusterungsberichtes

Diplomarbeit 2000 251 Seiten

Informatik - Angewandte Informatik

Leseprobe

Inhaltsverzeichnis

1 Einleitung
1.1 Spezifikation der Aufgaben für das Projekt MVS
1.1.1 Zielvorstellung
1.1.2 Produkteinsatz
1.1.3 Produktumgebung
1.2 Überblick

2 Einführung in die Programmiersprache Visual Basic
2.1 Grundlagen
2.2 Eigenschaften
2.3 Grundlegende Sprachelemente
2.3.1 Schlüsselwörter und selbstdefinierte Bezeichner
2.3.2 Kommentare
2.3.3 Zeilenumbruch
2.3.4 Operatoren
2.3.5 Datentypen
2.3.6 Variablen, Konstanten und Gültigkeitsbereiche
2.3.7 Schleifen
2.3.8 Verzweigungen
2.3.9 Felder (Arrays)
2.4 Prozeduren und Funktionen
2.4.1 Prozedur oder Funktion?
2.4.2 Parameterübergabe
2.4.3 Aufruf von Prozeduren oder Funktionen
2.5 Datenbankzugriff unter Visual Basic
2.5.1 Herstellen einer Datenbankverbindung
2.5.2 Zugriff auf Tabellen und Felder einer Datenbank
2.5.3 Zugriff auf die Feldinhalte
2.5.4 Schließen von Recordset und Connection
2.6 Definition eigener Datenstrukturen

3 Darstellung der Datenbank
3.1 Ein kurzer Überblick
3.2 Aufbau einer Access-Datenbank
3.2.1 Relationen
3.2.2 Normalisierung
3.2.3 Referentielle Integrität
3.2.4 Sekundärindex
3.3 Die Datenbank zum Projekt
3.3.1 Relationen
3.3.2 Entity-Relationship-Modell
3.3.3 Kardinalitäten
3.3.4 Beziehungen in Access

4 Kommunikation zwischen Datenbank und Anwendung
4.1 Überblick über die Datenzugriffstechniken
4.2 Datenzugriff mit Visual Basic
4.2.1 Anwendungsebene
4.2.2 Mittlere Ebene
4.2.3 Datenebene
4.3 Einführung in ADO
4.3.1 Das ADO-Objektmodell
4.3.2 Zugriff auf Daten mit ADO
4.3.3 Einsatzmöglichkeiten von ADO

5 Das Meßsystem als Datenlieferant
5.1 Allgemeines zum Meßsystem
5.2 Erforderliche Einstellungen
5.3 Die Dateiformate
5.3.1 Das ASCII-Format

6 Das Programm MVS
6.1 Aufbau des Programms
6.1.1 Frm_DSAngaben
6.1.2 Frm_Einstellungen
6.1.3 Frm_Haupt
6.1.4 Frm_Info
6.1.5 Frm_Maßnahmen
6.1.6 Frm_PrinterInfo
6.1.7 Frm_Printing
6.1.8 Frm_Start
6.1.9 Frm_Zuordnung
6.1.10 Mdl_AllgemeineFunktionen
6.1.11 Mdl_Database
6.1.12 Mdl_Dateibehandlung
6.1.13 Mdl_Hauptliste
6.1.14 Mdl_MDImport
6.1.15 Mdl_Meßdaten
6.1.16 Mdl_Muster
6.1.17 Mdl_Printer
6.1.18 Mdl_Teil
6.1.19 Mdl_VarConst
6.2 Flußdiagramme
6.2.1 Flußdiagramm zum Programmstart
6.2.2 Flußdiagramm zum drucken eines Meßberichtes
6.2.3 Flußdiagramm zum Menüpunkt Ansicht
6.2.4 Flußdiagramm zum Menüpunkt Teil
6.2.5 Flußdiagramm zum Menüpunkt Muster
6.2.6 Flußdiagramm zum Menüpunkt Meßdaten(1)
6.2.7 Flußdiagramm zum Menüpunkt Meßdaten(2)
6.2.8 Flußdiagramm zum Menüpunkt Datenbank
6.3 Oberflächenstruktur
6.3.1 Das Hauptformular
6.3.2 Das Einstellungen-Formular
6.3.3 Das Formular "Maßnahme ändern"
6.3.4 Formular für Datensatzeingaben
6.3.5 Formular Musterzuordnung
6.3.6 Druckerformular
6.3.7 Das Formular Druckerinformationen
6.3.8 Das Infoformular
6.3.9 Das Startformular
6.4 Die Datenstrukturen
6.4.1 Typendefinition “Einstellungen“
6.4.2 Typendefinition “Verbindung“
6.4.3 Recordset “rsHauptliste“
6.4.4 Recordset “rsZuordnungsliste“
6.4.5 Weitere Recordsets
6.5 Die Menüstruktur
6.6 Speichern der Einstellungen

7 Test des Programms MVS
7.1 Die Teile
7.2 Einfügen der Muster
7.3 Der Meßbericht
7.4 Meßdaten zuordnen

8 Schlußbemerkung

9 Anhang A
10 Anhang B (Meßberichte)
11 Anhang C (Quellcode)
11.1 Frm_DSAngaben
11.2 Frm_Einstellungen
11.3 Frm_Haupt
11.4 Frm_Info
11.5 Frm_Maßnahmen
11.6 Frm_PrinterInfo
11.7 Frm_Printing
11.8 Frm_Start
11.9 Frm_Zuordnung
11.10 Mdl_AllgemeineFunktionen
11.11 Mdl_Database
11.12 Mdl_Dateibehandlung
11.13 Mdl_Hauptliste
11.14 Mdl_MDImport
11.15 Mdl_Meßdaten
11.16 Mdl_Muster
11.17 Mdl_Printer
11.18 Mdl_Teil
11.19 Mdl_VarConst

12 Literatur

Abbildungsverzeichnis

Abbildung 1 : Aufbau einer Access-Datenbank

Abbildung 2 : Beispiel für Beziehungen unter Access

Abbildung 3 : Definition tbl_Teildaten unter Access

Abbildung 4 : Definition tbl_Musterdaten unter Access

Abbildung 5 : Definition tbl_MP_FlächPkt unter Access

Abbildung 6 : Definition tbl_MP_Rand unter Access

Abbildung 7 : Entity-Relationship-Diagramm

Abbildung 8 : Kardinalitätendiagramm

Abbildung 9 : Definieren von Beziehungen unter Access

Abbildung 10 : Darstellung von Beziehungen und Kardinalitäten unter Access

Abbildung 11 : Datenzugriff mit ADO in VB

Abbildung 12 : Datenzugriff mit OLE DB und ADO

Abbildung 13 : Das ADO-Objektmodell

Abbildung 14 : ADO mit Properties-Auflistung

Abbildung 15 : Zusammenspiel der ADO-Objekte

Abbildung 16 : Screenshot Metrolog II (Modell eines Dachrahmens)

Abbildung 17 : Metrolog II Leistungsübersicht

Abbildung 18 : Meßsysteme

Abbildung 19 : Aufruf der Elemente-Datenbank

Abbildung 20 : Elemente-Datenbank

Abbildung 21 : Eigenschaften für Meßpunkte

Abbildung 22 : Aufruf Datenexport

Abbildung 23 : Export-Dialog Metrolog II

Abbildung 24 : Beispiel für einen MP im ASCII-Format

Abbildung 25 : Beispiel-Datei im ASCII-Format

Abbildung 26 : Projekt-Explorer in VB

Abbildung 27 : Oberflächenstruktur MVS

Abbildung 28 : Hauptformular (frm_Haupt)

Abbildung 29 : Menü des Hauptformulars

Abbildung 30 : Statusleiste des Hauptformulars

Abbildung 31 : Meßdatenansicht im Hauptformular

Abbildung 32 : Teildatenansicht im Hauptformular

Abbildung 33 : Musterdatenansicht im Hauptformular

Abbildung 34 : Teildateneingabe im Hauptformular

Abbildung 35 : Teildaten bearbeiten im Hauptformular

Abbildung 36 : Musterdaten bearbeiten im Hauptformular

Abbildung 37 : Meßdaten zuordnen im Hauptformular

Abbildung 38 : Formular Einstellungen (frm_Einstellungen)

Abbildung 39 : Formular zum ändern von Maßnahmen (frm_Maßnahmen)

Abbildung 40 : Formular für Eingaben zum Datensatz (frm_DSAngaben)

Abbildung 41 : Formular zur Auswahl eines Zielmusters (frm_Zuordnung)

Abbildung 42 : Druckerformular (frm_Printing)

Abbildung 43 : Formular für Durckerinformationen (frm_PrinterInfo)

Abbildung 44 : Infoformular (frm_Info)

Abbildung 45 : Startformular

Abbildung 46 : Menüstruktur

Abbildung 47 : Erstes Testteil

Abbildung 48 : Zweites Testteil

Abbildung 49 : Teilverwaltung im Test

Abbildung 50 : Musterverwaltung erstes Testteil

Abbildung 51 : Musterverwaltung zweites Testteil

Abbildung 52 : Test der Meßdatenzuordnung

Abbildung 53 : Vorlage Bemusterungsbericht

Tabellenverzeichnis

Tabelle 1 : Visual Basic Editionen

Tabelle 2 : Entwicklungsetappen in VB

Tabelle 3 : Operatoren in VB

Tabelle 4 : Standarddatentypen in VB

Tabelle 5 : Navigationsfunktionen für Recordsets

Tabelle 6 : Hauptbestandteile einer Datenbank

Tabelle 7 : Beziehungstypen

Tabelle 8 : Datenzugriffstechnologien

Tabelle 9 : Repräsentationsmöglichkeiten in VB

Tabelle 10 : ADO-Eigenschaften

Tabelle 11 : Exportformate

Tabelle 12 : Spaltenbedeutung beim ASCII-Format

Tabelle 13 : Flußdiagramm-Symbole

Tabelle 14 : Datensatzanzahl erstes Testteil

Tabelle 15 : Zuordnungstoleranzen erstes Testteil

Tabelle 16 : Importergebnis erstes Testteil

Tabelle 17 : Datensatzanzahl zweites Testteil

Tabelle 18 : Zuordnungstoleranzen zweites Testteil

Tabelle 19 : Importergebnis zweites Testteil

Tabelle 20 : Test der Meßdatenzuordnung

Symboltabelle

Abbildung in dieser Leseprobe nicht enthalten

1 Einleitung

Heutzutage ist die elektronische Datenverarbeitung in fast alle Gebiete des Arbeitslebens vorgestoßen. So auch hat sie auch Einzug in das Meßwesen gefunden und nimmt mit fortschreitender Zeit immer mehr an Bedeutung zu.

In der modernen Meßtechnik wird mit sehr komplexen Softwareprogrammen gemessen. Durch diese Programme fallen allerdings auch eine Vielzahl von Daten an, welche sorgfältig verwaltet werden müssen.

Das vorrangige Ziel dieser Diplomarbeit wird eigentlich schon durch das Thema beschrieben. Es soll eine Anwendung konzipiert werden, mit der Meßdaten verarbeitet werden. Dabei handelt es sich um Meßdaten, die von einer weiteren Software, einer 3D-Meßsoftware der Firma Metrologic Instruments, geliefert werden. Diese Meßdaten werden aus einer Datei von dem Programm MVS (Meßdaten-Verarbeitungs-System) eingelesen und in einer Datenbank abgelegt.

Da auf dem Markt mittlerweile unzählige Programme zur Datenverwaltung existieren, konnte das Ziel nicht nur darin bestehen, eine Anwendung für die Datenverwaltung zu erstellen. Ein weiterer besonderer Gesichtspunkt der Anwendung sollte sein, die gesammelten Daten in einer vorgegebenen Berichtsform wieder auszugeben.

Durch die vorgegebene Berichtsform wird der Vergleich mehrerer Messungen unterstützt, was von anderen Meßdatenverarbeitungssystemen nicht unbedingt unterstützt wird, und wenn, dann nur durch den Erwerb kostspieliger Zusatzmodule.

Die für das Programm MVS gewählte Programmiersprache ist Visual Basic. Mit Visual Basic ist es möglich, relativ einfach Anwendungen mit Benutzeroberflächen zu entwerfen und die gewünschten Funktionen zu realisieren. Auf eine plattform- und systemabhängige Programmiersprache konnte verzichtet werden, da das Programm MVS nur auf Windows NT/9x - Systemen zum Einsatz kommt.

Nun soll die Aufgabenstellung genauer spezifiziert werden und ein kurzer Ausblick auf die dann folgenden Kapitel gemacht werden.

1.1 Spezifikation der Aufgaben für das Projekt MVS

1.1.1 Zielvorstellung

Mußkriterien

Es soll eine Anwendung entwickelt werden, mit der Meßdaten aus einem gegebenen Dateiformat in einer vorgegebenen Berichtsform wiedergegeben werden können. Ein Muster der Berichtsvorlage ist im Anhang A abgebildet. Neben der Erstellung von Berichten sollen außerdem mehrere Teile mit dem Programm verwaltet werden. Zu jedem Teil wiederum können mehrere "Muster" existieren, die ebenfalls im Programm zu verwaltet sind. Des weiteren kann ein Muster Flächenpunkte und Randpunkte enthalten. Die Bedienung der Anwendung soll über eine grafische Oberfläche erfolgen.

Abgrenzungskriterien

Es wird ausschließlich der Zugriff über die Grafische Oberfläche auf die Datenbank implementiert. Die Erstellung einer Zugriffsoberfläche unter Access ist nicht geplant, kann aber bei einer späteren Fortsetzung des Projektes, z.B. zur Pflege der Datenbank durch einen Administrator, erstellt werden.

1.1.2 Produkteinsatz

Anwendungsbereiche

Die Anwendung soll in erster Linie das einfache Erstellen eines Meßberichtes realisieren um den Zeitaufwand einer manuellen Berichtserstellung zu reduzieren.

Zielgruppe

Das Programm soll im Bereich der Qualitätssicherung Werkzeugbau eingesetzt werden.

Betriebsbedingungen

Für die Anwendung wird keine tägliche Betriebszeit festgesetzt. Ebenso soll eine Beaufsichtigung der Anwendung nicht erforderlich sein. Angewendet wird das System hauptsächlich von den Mitarbeitern der oben genannten Zielgruppe.

1.1.3 Produktumgebung

Software

Das Programm soll auf den Betriebssystemen Windows 95 und Windows NT eingesetzt werden. Implementiert wird die Anwendung mit dem System Visual Basic 6.0 von Microsoft. Weitere Systemspezifikationen sind nicht vorgegeben.

Hardware

Als Hardware werden handelsübliche PC`s eingesetzt.

Middleware

Als Middleware dient das Access-Datenbanksystem. Für die Erstellung der Datenbank (Anzahl Tabellen, Primärschlüssel, usw.) werden keine weiteren Vorgaben gemacht.

1.2 Überblick

Überblick auf die folgenden Kapitel dieser Diplomarbeit:

Kapitel 1 Einleitung

Kapitel 2 Gibt eine kurze Einführung in die Programmiersprache Visual Basic, um den Programmcode besser zu verstehen.

Kapitel 3 Beschreibt den Aufbau der verwendeten Datenbank und stellt die Datenbanktheorie kurz vor.

Kapitel 4 Erläutert die Verbindungstechnik zwischen der Anwendung und der Datenbank. Es wird die Datenzugriffstechnologie ADO etwas genauer dargestellt.

Kapitel 5 Beschäftigt sich mit der Meßsoftware Metrolog II und bringt diese als Datenlieferant hervor. Es wird der Vorgang des Datenexports beschrieben und das Datenformat vorgestellt.

Kapitel 6 Aufbau und Funktion des Programms MVS. Es werden die Funktionen, Module, Oberflächen, Datenstrukturen, usw. vorgestellt.

Kapitel 7 Test des Programms MVS. Es wird die Anwendung mit Testdatensätzen auf Ihre Funktion hin überprüft.

Kapitel 8 Schlußbemerkung

2 Einführung in die Programmiersprache Visual Basic

2.1 Grundlagen

Die folgende Einführung in die Programmiersprache Visual Basic setzt die Kenntnisse einer anderen Programmiersprache und ein gewisses Grundwissen über objektorientierte Programmierung voraus. Sinn und Zweck dieser "Kurzeinführung" ist es, die Programmierung dieser Diplomarbeit nachvollziehen zu können und den Programmcode verständlich zu machen.

Erstellt wurde die Anwendung mit der Entwicklungsumgebung Visual Basic von Microsoft, die alle Möglichkeiten zur Erstellung einer kompletten Windowsanwendung bietet.

Als geistiger Vater von Visual Basic gilt Alan Cooper, der 1987 das Programm "Ruby" entwickelte. Durch Ruby wurde dem durchschnittlichen Programmierer erstmals die visuelle Programmierung zugänglich gemacht. 1990 kombinierte man dann Ruby mit Quick Basic und das erste, speziell auf Windows zugeschnittene Entwicklungssystem war geboren: Visual Basic 1.0. Visual Basic entwickelte sich mit der Zeit zu einer vollwertigen Programmiersprache und wurde, obwohl C zu diesem Zeitpunkt als Standard für die Windowsprogrammierung etabliert war, von der Fachwelt schnell angenommen. Bis zur Version 3.0 wurde nur die Entwicklung von 16-Bit-Applikationen unterstützt, was sich aber ab der Version 4.0 änderte.

Visual Basic liegt heute in der Version 6.0 vor, welche von Microsoft in drei unterschiedlichen Paketen ausgeliefert wird:

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 1 : Visual Basic Editionen

Für die Programmierung dieser Diplomarbeit wurde Visual Basic in der Version 6.0 (Enterprise Edition) verwendet. Als Datenbank wurde Microsofts Datenbanksystem Access 97 verwendet.

Im nachfolgenden Teil dieses Kapitels werden zunächst grundlegende Eigenschaften von Visual Basic dargestellt. Es werden wesentliche Sprachelemente aufgezeigt und einige objektorientierte Elemente von Visual Basic dargestellt.

2.2 Eigenschaften

Es ist von herkömmlichen Programmiertechniken bekannt, daß meist als allererste Aktivität das Erstellen eines Programmablaufplans (PAP) den dann folgenden Programmieraufgaben vorangestellt ist. Diese tiefgründigen Überlegungen zur Reihenfolge von Ein- und Ausgaben oder zur Gestaltung der Benutzerschnittstelle, welche bei größeren Projekten doch sehr langwierig und teilweise auch lästig sind, entfallen in Visual Basic.

Der Gedanke dieser Programmiersprache verfolgt nämlich einen komplett anderen Ansatz, welcher eine systematische Vorgehensweise in folgenden drei Etappen erlaubt:

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 2 : Entwicklungsetappen in VB

Bereits bei der ersten Etappe wird die starke Abweichung zur herkömmlichen Programmierung sichtbar, denn daß der Oberflächenentwurf an erster Stelle steht, ist doch schon etwas ungewöhnlich.

Eine weitere vorteilhafte Eigenschaft ist die Programmierung von Modulen und das separate Speichern der einzelnen Benutzeroberflächen ( in Visual Basic werden Benutzeroberflächen als Formulare bezeichnet). Dadurch wird die Wiederverwendbarkeit des Codes und der Benutzeroberflächen enorm gesteigert, da Module und Oberflächen bei späteren Projekten ohne nennenswerten Aufwand einfach hinzugefügt werden können.

Der Compiler in Visual Basic bietet neben der Möglichkeit, P-Code zu erstellen, auch die Möglichkeit, Native-Code, also echten Maschinencode, zu erzeugen.

2.3 Grundlegende Sprachelemente

In diesem Abschnitt sollen die grundlegenden Befehle von Visual Basic erklärt werden.

Beschrieben wird hier allerdings nur die Standardanwendung der jeweiligen Befehle. Etwaige Ausnahmen und Sonderfälle bleiben hier weitestgehend unbeachtet, da sie für das Verstehen des Programmcodes nicht notwendig sind.

Zu den klassischen Elementen eines BASIC-Programms gehören Schlüsselwörter, Datentypen, Variablen und Konstanten, Operatoren, Prozeduren und Funktionen. Sie sind in ihrer Gesamtheit als Anweisungen (Befehle) organisiert.

2.3.1 Schlüsselwörter und selbstdefinierte Bezeichner

Schlüsselwörter wie z.B. Dim, Sub, Call, If, End, ..,. sind geschützte BASIC-Wörter welche im Editor standardmäßig blau eingefärbt werden. Diese Schlüsselwörter dürfen nicht für selbstdefinierte Bezeichner verwendet werden. Zwischen Groß- und Kleinschreibung wird bei der Vergabe von selbstdefinierten Bezeichnern nicht unterschieden, da der Compiler dies nicht kann. Sie dient lediglich zur besseren Lesbarkeit des Quellcodes.

2.3.2 Kommentare

In Visual Basic werden Kommentare mittels Rem -Anweisung oder mit einem Apostroph (') eingeleitet. Der Text eines Kommentars wird im Editor grün dargestellt. Kommentare sind sehr nützlich zur Erklärung des Programmcodes. Bei Beginn eines neuen Projektes sollte von Anfang an auf eine gute und ausreichende Kommentierung geachtet werden.

Beispiel:

REM Das ist ein Kommentar

' Das ist ebenfalls ein Kommentar

2.3.3 Zeilenumbruch

Im Normalfall wird in einem Programm pro Zeile eine Anweisung stehen. Es kann jedoch vorkommen, daß Anweisungen extrem lang sind und so die Übersichtlichkeit des Programmcodes verloren geht. Solche langen Anweisungen lassen sich mit einem Unterstrich, vorangestellt von einem Leerzeichen (" _"), trennen. Damit ist es dann möglich, eine Anweisung auf mehrere Zeilen aufzuteilen.

Beispiel:

Label1.Caption = "Diese Zeile ist so lang, daß sie sicherlich nicht auf eine " & _ "einzelne Seite passen würde. Deshalb wird sie auf zwei Zeilen aufgeteilt"

Des weiteren können Mehrere Anweisungen in einer Zeile stehen. Diese sind dann durch einen Doppelpunkt voneinander getrennt.

Beispiel:

DIM x AS Integer : DIM y AS double

2.3.4 Operatoren

In Visual Basic werden Operatoren, ähnlich wie in anderen Programmiersprachen, in arithmetische, logische und in Vergleichsoperatoren unterteilt. Die folgende Tabelle stellt die Operatoren dar:

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 3 : Operatoren in VB

2.3.5 Datentypen

Die Datentypen unterscheiden sich kaum von denen in anderen Programmiersprachen. In Visual Basic verwendete Datentypen mit ihren Wertebereichen sind in der nächsten Tabelle aufgelistet:

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 4 : Standarddatentypen in VB

2.3.6 Variablen, Konstanten und Gültigkeitsbereiche

Variablen werden im Programm mit dem Schlüsselwort Dim deklariert. Diesen benannten Speicherstellen wird mit As ein Datentyp zugewiesen. Wird einer Variablen kein Datentyp zugewiesen ist sie automatisch vom Typ Variant. Mehrfachdeklarationen sind möglich, indem die einzelnen Variablen durch Kommata getrennt werden.

Beispiel:

Dim anzahl As Integer ‘ Variable vom Typ Integer

Dim var ‘ Variable vom Typ Variant

Dim a, b, c As Integer ‘ Mehrfachdeklaration

Dim a As Integer, b As Double ‘ Mehrfachdeklaration

Konstanten werden in Visual Basic mit dem Schlüsselwort Const deklariert. Der Wert einer Konstanten bleibt im Programm unverändert.

Beispiel:

Const Pi = 3.1415 ‘ Konstante ohne Typenzuweisung

Const x As Integer = 5 ‘ Konstante mit Integer-Typenzuweisung

Der Gültigkeitsbereich, der einer Variablen oder Konstanten zugewiesen werden kann, unterteilt sich in drei Ebenen:

- Gültig innerhalb der gesamten Applikation (Public)
- Gültig innerhalb des Moduls (Private oder Dim)
- Gültig innerhalb der Funktion/Prozedur (Dim)

Dabei versteht es sich von selbst, daß der Gültigkeitsbereich einer oberen Ebene auch die darunterliegenden Ebenen enthält.

Beispiel:

Abbildung in dieser Leseprobe nicht enthalten

2.3.7 Schleifen

Man unterscheidet grundsätzlich nach zwei unterschiedlichen Schleifentypen. Zum einen wäre da der For-Next -Schleifentyp (Zählschleifen) und zum anderen der Do-Loop -Schleifentyp (Kopf- und Fußgesteuerter Schleifentyp).

“For...Next“-Schleife:

For Zähler = Anfangs To Endwert [Step Schrittweite ]

Anweisungen

[Exit For]

Anweisungen

Next [ Zähler ]

“For...Next“ -Schleifen sind Zählerschleifen und können mit Exit For sofort beendet werden. Die Angabe einer Schrittweite mit Step ist optional.

Syntax “Do While...Loop“-Schleife:

Do [While|Until Bedingung ]

Anweisungen

[Exit Do]

Anweisungen

Loop

Die “Do While...Loop“ -Schleife ist eine kopfgesteuerte Schleife und führt die Anweisungen im Schleifenrumpf aus, solange die Bedingung erfüllt ist oder bis die Schleife mit Exit Do verlassen wird.

Syntax “Do Loop...While“-Schleife

Do

Anweisungen

[Exit Do]

Anweisungen

Loop [While|Until Bedingung ]

Die “Do...Loop While“ -Schleife ist eine fußgesteuerte Schleife und führt die Anweisungen im Schleifenrumpf aus, solange die Bedingung erfüllt ist oder bis die Schleife mit Exit Do verlassen wird.

Syntax “While...Wend“-Schleife:

While Bedingung

Anweisungen

Wend

Die Bedeutung der “While...Wend“ -Schleife ist mit der “Do While...Loop“ gleichzusetzen.

2.3.8 Verzweigungen

1) Bedingte Verzweigungen

Bedingungen und Verzweigungen haben den Sinn, bestimmte Befehle oder Befehlsfolgen nur beim Eintritt eines definierten Ereignisses auszuführen. Die beiden in VB wohl am häufigsten benutzten Möglichkeiten sind die If...Then und die Select Case Bedingungen.

Eine Anwendung der IF -Bedingung kann folgendermaßen aussehen:

If Bedingung Then

Anweisungen

[Else]

Anweisungen

End If

Wenn dabei die gesamte If...Then –Anweisung in einer Zeile steht, kann auf End If verzichtet werden. Ebenso können innerhalb der Bedingung alle in VB erlaubten Operatoren verwendet werden. Mehrere Bedingungen lassen sich auch z.B. über AND oder OR miteinander verknüpfen. Anstatt der Else -Anweisung können auch optional mehrere ElseIf -Blöcke eingefügt werden. Dann würde die IF -Bedingung so aussehen:

If Bedingung1 Then

Anweisungen

[ElseIf Bedingung2 Then]

Anweisungen

[Else]

Anweisungen

End If

Jede Zeile, die eine Bedingung enthält, muß auch mit Then enden!

Im folgenden Beispiel wird der Text „Kleiner“ ausgegeben, wenn x kleiner als fünf ist, „Gleich“, wenn x gleich fünf ist und „Größer“, wenn x größer als fünf ist.

Abbildung in dieser Leseprobe nicht enthalten

Die Select Case -Anweisung ist der zweite gebräuchliche Bedingungstyp, der in Visual Basic verwendet wird. Auch der Select Case -Typ stellt eine Blockstruktur dar, welche allerdings einen anderen Aufbau hat als der If...Then -Typ:

Select Case Ausdruck

Case Ausdruck1

Anweisungen

[Case Ausdruck2

Anweisungen ... ]

[Case Else

Anweisungen ]

End Select

Des weiteren gibt es in VB noch die Verzweigung Choose, Iff und Switch. Da die Iff -Funktion in der vorliegenden Diplomarbeit nicht verwendet wird, wird hier auch nicht näher darauf eingegangen.

Die Choose-Funktion ist genau so wie die Switch-Funktion ein Einzeiler. Bei ihr wird aus einer Liste von Argumenten ein Wert ausgewählt und zurückgegeben. Der Wert wird dabei anhand eines übergebenen Indexes gewählt. Ist dieser Index Kleiner als 1 und größer als die Anzahl der Elemente, wird NULL zurückgegeben.

Beispiel:

Dim tag AS string

Tag = Choose(2,“Montag“,“Dienstag“,“Mittwoch“,...) ‘Gibt Wert Dienstag zurück

Bei der Switch-Funktion wird eine Liste von Ausdrücken ausgewertet und dann ein Wert vom Typ Variant oder ein Ausdruck zurückgegeben. Ist keiner der Ausdrücke Wahr wird NULL zurückgegeben.

Beispiel:

‘ Je nach größe von x wird ein Text zurückgegeben

Abbildung in dieser Leseprobe nicht enthalten

2) Unbedingte Verzweigungen

Es gibt neben den bedingten Verzweigungen auch unbedingte Verzweigungen, welche man auch als Programmsprung bezeichnen kann. Gesprungen werden darf dabei nur innerhalb einer Funktion bzw. Prozedur. Um einen Sprung zu einer Sprungadresse durchführen zu können, wird das Sprungziel mit einer Sprungmarke, welcher ein Doppelpunkt nachgestellt wird, gekennzeichnet.

Beispiel:

Anweisung

GoTo Sprungmarke

Anweisung

Sprungmarke:

Anweisung

2.3.9 Felder (Arrays)

Innerhalb des Programms werden nur statische Felder und keine dynamischen genutzt. Ebenso sind alle Felder eindimensional.

Statischen Feldern kann die Feldgröße zu Beginn einer Funktion bzw. Prozedur mit Hilfe der DIM -Anweisung oder innerhalb des Quellcodes mit dem Schlüsselwort Array zugewiesen werden. Auf ein bestimmtes Element eines Feldes kann wie auf normale Variablen zugegriffen werden, nur daß dem Namen der Feldvariablen der in Klammern stehende Index folgt.

Beispiel:

Abbildung in dieser Leseprobe nicht enthalten

B = Array(„Name1“,“Name2“,“Name3“) ‘ Feld der Größe drei

‚‘ Ausgeben der Elemente a0 und b1

Debug.Print a(0)

Debug.Print b(1)

2.4 Prozeduren und Funktionen

2.4.1 Prozedur oder Funktion?

Die Entscheidung, ob man eine Prozedur oder eine Funktion verwendet, bleibt letztendlich dem Programmierer überlassen. Der einzige Unterschied zwischen einer Funktion und einer Prozedur besteht darin, daß Prozeduren keinen Rückgabewert liefern. Ansonsten haben sie den gleichen Aufbau. Beiden Varianten können Parameter übergeben werden, mit denen dann innerhalb der Prozedur oder Funktion gearbeitet werden kann. Prozeduren können mit Exit Sub und Funktionen mit Exit Function verlassen werden.

Beispiel:

Sub PrintText (msg As String)

Debug.Print msg ' String ausgeben

End Sub

Function Mult (x As Integer, y As Integer) As Integer

Abbildung in dieser Leseprobe nicht enthalten

End Function

Prozeduren und Funktionen können mit Private oder Public bestimmte Gültigkeitsbereiche zugewiesen werden.

2.4.2 Parameterübergabe

Parameter können an Funktionen auf zwei verschiedene Arten übergeben werden:

Als Referenz oder als Wert. Bei der Parameterübergabe als Referenz wird intern nur auf die Adresse der Variablen verwiesen, wodurch das Ändern der Variablen möglich ist. Da in einigen Fällen die Manipulation von Übergabeparametern gar nicht erwünscht ist, bietet VB das Schlüsselwort ByVal an, welches der Variablen voranzustellen ist. Dadurch wird beim Aufrufen der Funktion nicht mit der Variablen selbst, sondern mit einer Kopie gearbeitet.

Beispiel:

Sub PrintText (msg As String) ' Als Referenz

Sub PrintText (ByVal msg As String) ' Als Kopie der Variablen

2.4.3 Aufruf von Prozeduren oder Funktionen

Funktionen und Prozeduren können ganz einfach mit ihrem Namen aufgerufen werden. Zu übergebende Parameter werden dabei getrennt durch Kommata dem Prozedur- oder Funktionsnamen nachgestellt. Prozeduren und Funktionen können auch über das Schlüsselwort Call aufgerufen werden. Dann muß die Parameterliste jedoch in Klammern eingeschlossen werden.

Beispiel:

Abbildung in dieser Leseprobe nicht enthalten

2.5 Datenbankzugriff unter Visual Basic

Um große Datenmengen auf vernünftiger Art und Weise zu verwalten, werden in der professionellen Datenverarbeitung Datenbanken eingesetzt. Visual Basic ermöglicht den Zugriff auf Datenbanken auf mehrere Arten. Da die Zugriffstechnologie DAO eine Art Auslaufmodell darstellt wurde in dieser Arbeit mit dem neuen ADO Datenzugriffsmodell gearbeitet, welches sich mittlerweile auch als Microsoft-Standard für Datenzugriffe herausgestellt hat. Näheres zu ADO wird im Kapitel "Kommunikation zwischen Datenbank und Anwendung" erläutert.

2.5.1 Herstellen einer Datenbankverbindung

Um nun eine Verbindung zur Datenbank herzustellen, muß mittels eines Connection -Objektes eine neue Verbindung definiert werden. Das Connection-Objekt stellt auch Mechanismen zum Ausführen von Befehlen und zum Verwalten von Transaktionen bereit.

Public con As Connection

Mit diesem Connection -Objekt wird nun eine neue Verbindung hergestellt.

Set con = New Connection

Mit der Methode CursorLocation wird die Position des Cursormoduls festgelegt. “adUseServer “ ist ein Cursor-Typ, der vom Datenprovider zur Verfügung gestellt wird. Diese Cursor sind zum Teil sehr flexibel und ermöglichen eine zusätzliche Sensibilität gegenüber Änderungen der Datenquellen.

con.CursorLocation = adUseServer

Die Methode Provider legt den Provider der Datenbank fest.

con.Provider = "Microsoft.Jet.OLEDB.3.51"

Letztlich wird die Verbindung zur Datenbank mit den vorher eingestellten Eigenschaften hergestellt.

con.Open Datenbankname

2.5.2 Zugriff auf Tabellen und Felder einer Datenbank

Der Zugriff auf die Tabellen und Felder einer Datenbank erfolgt nun über Recordsets. Mit hilfe dieser Recordsets können neue Datensätze angelegt, editiert und gelöscht werden. Recordsets lassen sich auch nach belieben zusammenstellen. Diese Art von Recordsets bezeichnet man dann als ‘ungebundene Recordsets‘.

Ein Recordset auf eine Tabelle läßt sich folgendermaßen öffnen:

Um auf eine Tabelle zuzugreifen, muß ein neues Recordset-Objekt erstellt werden.

Dim rst As Recordset

Set rst = New Recordset

Nun wird dem Objekt mitgeteilt, in welcher Datenbank sich die Tabelle befindet. Dies geschieht, indem dem Objekt eine aktive Connection übergeben wird.

Set rst.ActiveConnection = con

Mit der Methode CursorType legt man dann die Art des Datensatzzeigers fest.

rst.CursorType = adOpenKeyset

Die LockType -Methode beschreibt, welchen Sperrtyp der Provider beim Öffnen des Recordset-Objektes verwenden soll.

Abbildung in dieser Leseprobe nicht enthalten

Die Open -Methode öffnet zum Schluß das angelegte Recordset. Dabei gibt es die Möglichkeit, über eine SQL-Anweisung bestimmte Datensätze und Felder aus einer Tabelle herauszufiltern oder ein Recordset auf die gesamte Tabelle zu öffnen.

Abbildung in dieser Leseprobe nicht enthalten

2.5.3 Zugriff auf die Feldinhalte

Auf die Feldinhalte eines Recordsets kann nun folgendermaßen zugegriffen werden:

Abbildung in dieser Leseprobe nicht enthalten

Da sich in einem Recordset meistens mehrere Datensätze befinden, gibt es Funktionen, die das Navigieren durch Recordsets erleichtern. Die wichtigsten Navigationsfunktionen sind in der folgenden Tabelle aufgelistet.

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 5 : Navigationsfunktionen für Recordsets

2.5.4 Schließen von Recordset und Connection

Zum Schluß müssen wie z.B. bei einer Dateibehandlung der Dateizeiger auch das Recordset und die Connection wieder geschlossen werden. Dies geschieht mit der close -Methode.

Abbildung in dieser Leseprobe nicht enthalten

2.6 Definition eigener Datenstrukturen

Dem Anwender wird unter Visual Basic auch, wie in einigen anderen Programmiersprachen, die Möglichkeit gegeben, selber Datentypen und Datenstrukturen zu definieren. Dadurch ist der Programmierer nicht nur auf die herkömmlichen Datentypen wie Single, Double oder String angewiesen, sondern er kann sich selbst seine eigenen, neuen und komplexeren Datenstrukturen zusammenstellen.

In VB wird für dieses Vorhaben die Type -Anweisung verwendet. Mit ihr ist es möglich, ein oder mehrere Elemente oder Datentypen zu einer Datenstruktur zusammenzufassen. Dabei ist darauf zu achten, daß die Verwendung der Type -Anweisung auf Prozedurebene unzulässig ist. Sie kann nur auf der Modulebene verwendet werden.

Der allgemeine Aufbau der Type -Anweisung sieht folgendermaßen aus:

[Private|Public] Type Typenname

variablenname1 As Variablentyp1

variablenname2 As Variablentyp2

End Type

Um nun auf den Wert einer Variablen unserer Datenstruktur zugreifen zu können, müssen Typenname und Variablenname durch einen Punkt (einen sogen. Qualifizierer) voneinander getrennt werden.

x = Typenname.variablenname1

Als Beispiel soll eine Datenstruktur dargestellt werden, die bestimmte Informationen über eine Person beinhaltet:

Public Type Person

name As String

alter As Integer

größe As Double

gewicht As Double

haarfarbe As String

verheiratet As Boolean

End Type

Dim person1 As Person, personenname As String

Abbildung in dieser Leseprobe nicht enthalten

3 Darstellung der Datenbank

3.1 Ein kurzer Überblick

Datenbanken sind heutzutage bei der Verwaltung großer Datenmengen nicht mehr zu umgehen und werden aufgrund ihrer Möglichkeiten und gebotenen Funktionen zur Datenverwaltung und -bearbeitung auch gerne und häufig genutzt.

Es gibt mittlerweile eine Vielzahl von Anbietern, die sich auf diese Gebiete spezialisiert haben (Oracle, Informix, Sybase, Microsoft, uvm.).

Im Rahmen dieser Diplomarbeit wurde eine Datenbank eingesetzt, um die anfallenden Informationen in eine ordentliche Struktur zu bringen und um eine effiziente Speicherung der Daten zu gewährleisten. Ausgewählt wurde für diesen Zweck das Datenbanksystem Access97 von der Firma Microsoft, da sich dieses Datenbanksystem in den letzten Jahren zu einem sehr komplexen Programm entwickelt hat, mit dem auch professionelle Lösungen erstellt werden können.

Aber das war nicht immer der Fall. In den Anfangsjahren von Microsoft sah es eher nicht danach aus, daß Microsoft es schaffen würde, eine vernünftige Datenbankanwendung anzubieten. Mittlerweile hat sich dieses aber geändert, denn die fünfte Version der Microsoft-Datenbank hat sich inzwischen, auch durch die Unterstützung der leistungsstarken Programmiersprache Visual Basic, zum Marktführer in seinem Datenbanksegment entwickelt.

3.2 Aufbau einer Access-Datenbank

Datenbanksysteme sind im Allgemeinen alle auf die gleiche Art und Weise aufgebaut. Die hauptsächlichen Bestandteile sind:

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 6 : Hauptbestandteile einer Datenbank

Die Kunst der Erstellung einer Datenbank liegt jedoch in der richtigen Definition der Daten. Welche Daten sollen gespeichert werden, wie sind die Beziehungen der Daten untereinander und wie kann man die Daten möglichst leicht und schnell wiederfinden. Die Analyse eines Datenbankproblems und das Erstellen einer Datenbank erfordert theoretische Grundkenntnisse und ein wenig Erfahrung, was aber das Arbeiten und der Umgang mit Datenbanken mit der Zeit mit sich bringt.

Auch Access bezieht sich auf diese Komponenten und folglich sieht der Aufbau einer Access-Datenbank nicht anders aus:

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 1 : Aufbau einer Access-Datenbank

Da bei dieser Diplomarbeit mittels der Programmiersprache Visual Basic sämtliche Datenoperationen, sei es einfügen, bearbeiten oder löschen von Daten, durchgeführt werden, entfallen aus der obigen Grafik die unteren drei Bestandteile. Die Aufgaben, die bei einer reinen Access-Anwendung durch Formulare, Abfragen und Berichten erledigt werden, werden hier vom VB-Programm erledigt. Aufgrund dessen wird hier nicht so sehr auf die Datenbankanwendung MS Access 97 eingegangen, sondern es wird hier nur der Aufbau der Datenbank dargestellt.

Trotzdem kommt man um ein klein wenig Datenbanktheorie nicht herum und deshalb sollen hier nun kurz einige “wichtigen“ Begriffe wie

- Relationen
- Normalisierung
- Referentielle Integrität
- Sekundärindex

kurz erläutert werden.

3.2.1 Relationen

Access ist ein relationales Datenbanksystem. Aber was ist überhaupt eine relationale Datenbank? Das Ziel einer relationalen Datenbank ist eine möglichst effiziente Verwaltung einschließlich der Aufnahme, Manipulation und Integritätssicherung der Daten. Es existieren auf dem Markt mehrere unterschiedliche Netzwerkkonzepte von denen sich in den letzten Jahren aber das relationale Modell durchgesetzt hat (Auf großem Vormarsch allerdings befinden sich mittlerweile die objektorientierten Datenbanken).

Zur Verdeutlichung soll nun ein kleines Beispiel herangezogen werden. Man stelle sich einen Aktenschrank vor. Die einzelnen Schubladen für Kunden, Personal, Bestellungen, usw. entsprechen den Tabellen und die einzelnen Karteikarten in den Schubladen den Datensätzen in der Datenbank.

Wenn also von einer Datenbank gesprochen wird, ist im allgemeinen immer die Rede von

- Tabellen
- Datensätzen und
- Feldern

wobei die Tabellen die einzelnen Datensätze enthalten und die Datensätze die einzelnen Felder.

Relationen sind nun Beziehungen zwischen den Tabellen, wobei diese auf drei verschiedene Arten in Beziehung stehen können.

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 7 : Beziehungstypen

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2 : Beispiel für Beziehungen unter Access

In Access wird eine 1:n Beziehung als 1:¥ Beziehung dargestellt. Die obige Grafik verdeutlicht das Beispiel noch einmal. Genau einem Kunden können mehrere Bestellungen in Beziehung stehen und jede Bestellung wird von genau einem Mitarbeiter bearbeitet..

3.2.2 Normalisierung

Die Normalisierung einer Datenbank beschreibt die Aufteilung der Daten in unterschiedliche Tabellen. Durch die Normalisierung der Daten wird eine optimale Struktur erreicht und Redundanzen der Daten vermieden. Dieser Prozess geschieht schrittweise, da er auf den vier Normalformen beruht.

Nehmen wir wieder das Beispiel mit dem Aktenschrank. Wenn nun die Kundenanschrift in der Tabelle Kunde steht und nochmals in der Tabelle Bestellung, dann müßte man bei einer Änderung der Kundenanschrift die Adresse in beiden Tabellen ändern.

Klüger ist es daher, in der Tabelle Bestellung nur eine Kundennummer einzutragen, welche sich auf eine separate Tabelle mit Kundendaten bezieht. Dadurch wird der Aufwand enorm verringert, denn jeder Kunde wird nun durch seine Kundennummer repräsentiert (Primärschlüssel) und in der Tabelle Bestellungen wird nur noch auf die Kundennummer (Fremdschlüssel) verwiesen

3.2.3 Referentielle Integrität

Die referentielle Integrität sorgt dafür, daß die Beziehungen zwischen den einzelnen Tabellen auch ihre Gültigkeit besitzen. D.h., es dürfen keine Daten gelöscht werden, wenn dazu in anderen Tabellen noch abhängige Datensätze existieren. So muß z.B. sichergestellt werden, daß wenn ein Kunde aus der Kundentabelle gelöscht wird, auch alle in Beziehung stehenden Bestellungen gelöscht werden, da sonst die referentielle Integrität zwischen den Tabellen nicht gewährleistet ist.

Unter Access besteht daher auch die Möglichkeit, die referentielle Integrität automatisch sicherzustellen (durch Lösch- und Aktualisierungsweitergabe).

3.2.4 Sekundärindex

Ein Sekundärindex läßt sich für das Sortieren von Tabellen verwenden. Felder, nach denen eine Tabelle häufig sortiert wird, sollten daher einen Index erhalten. Dafür baut Access eine neue Indextabelle auf, die die Feldinhalte des indizierten Feldes enthält. Diese Indextabelle liegt geordnet vor und besitzt einen Querverweis auf die Datensätze der eigentlichen Tabelle.

Durch dieses Vorgehen kann der Suchvorgang drastisch beschleunigt werden. Jedoch bringt die Indizierung einer Tabelle auch mehrere Nachteile mit sich, auf die hier aber nicht weiter eingegangen werden soll.

3.3 Die Datenbank zum Projekt

Wie schon erwähnt wird in dieser Diplomarbeit das Datenbanksystem MS Access 97 verwendet. Durch die Kombination mit Visual Basic enthält die Datenbank aber nur Tabellen und keine Formulare, Abfragen und Berichte. Auf den folgenden Seiten soll der Aufbau der verwendeten Datenbank genauer erklärt werden.

Im ersten Teil werden die Definitionen der Relationen dargestellt und zu jeder Definition auch die Umsetzung in Access. Danach werden die Entity-Types mit ihren Attributen in einem Entity-Relationship-Diagramm dargestellt. Dieses Diagramm verdeutlicht auch gleichzeitig die Beziehungen.

Das Kardinalitätendiagramm definiert anschließend, wie viele konkrete Beziehungen zwischen den Entity-Types bestehen.

Und zum Schluß wird gezeigt, wie die Beziehungen und Kardinalitäten unter Access dargestellt werden.

3.3.1 Relationen

Die Datenbank zum Projekt enthält vier Relationen. Diese Relationen enthalten jeweils mehrere Attribute. Die einzelnen Zeilen einer Relation lassen sich in einer Tabelle anordnen. Dabei ist allerdings darauf zu achten, daß die Zeilen einer Relation paarweise verschieden sein müssen!

Folgend sind die Definitionen der Relationen aufgelistet. Zu jeder Definition ist auch gleich dargestellt, wie diese Umsetzung unter Access aussieht.

3.3.1.1 tbl_Teildaten

Die erste Relation faßt alle Informationen, die zu einem Teil gehören, zusammen. Zu diesen Informationen gehören alle teilbeschreibenden Attribute wie Teilnummer, Auftraggeber, Typ, usw.. Des weiteren beinhaltet diese Relation Attribute, die Daten über die Anzahl der Muster (AnzMuster), wie viele Freiform- und Rand-Meßdatensätze jeweils zu einem Teil existieren( AnzDatensätzeFF, AnzDatensätzeBS) und welches Muster als Referenzmuster für den Meßdatenimport dient (RefMusterFF, RefMusterBS).

Abbildung in dieser Leseprobe nicht enthalten

und als Definition unter Access 97...

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 3 : Definition tbl_Teildaten unter Access

3.3.1.2 tbl_Musterdaten

Die zweite Relation beinhaltet zum einen Attribute, die die allgemeinen Eigenschaften eines Musters beschreiben und zum anderen Attribute, die beschreiben, wie viele Datensätze zu einem Muster importiert wurden(AnzDatensätzeFF, AnzDatensätzeBS) und wieviele von diesen neu hinzugefügt wurden(AnzNeueFF, AnzNeueBS).

Abbildung in dieser Leseprobe nicht enthalten

und als Definition unter Access 97...

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 4 : Definition tbl_Musterdaten unter Access

3.3.1.3 tbl_MP_FlächPkt

Die dritte Relation sammelt alle Daten zu einem Meßpunkt. Dazu gehören Toleranz, Punktnummer, Meßpunktbezeichnung, usw.. Die Attribute X, Y und Z dienen zum Zuordnen späterer Muster, da dies über einen Koordinatenvergleich geschieht.

Abbildung in dieser Leseprobe nicht enthalten

und als Definition unter Access 97...

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 5 : Definition tbl_MP_FlächPkt unter Access

3.3.1.4 tbl_MP_Rand

Die vierte Relation ist identisch mit der Dritten. Daher hätte man sie auch mit der dritten vereinen und die Erkennung eines Flächen- oder Randpunktes über einen Identifier realisieren können. Sie wurde aber als einzelne Relation angelegt, um spätere Erweiterungen oder Änderungen an den einzelnen Relationen zu ermöglichen.

Abbildung in dieser Leseprobe nicht enthalten

und als Definition unter Access 97...

Abbildung 6 : Definition tbl_MP_Rand unter Access

3.3.2 Entity-Relationship-Modell

Nun kann das Entity-Relationship-Modell erstellt werden. Das ERM dient zum Entwurf von Datenbankmodellen und stellt die Beziehungen dar. Das ERM hat eine genaue Symboldefinition, in der vorgeschrieben ist, daß für die Entity-Types Rechtecke und für die Attribute Ovale verwendet werden.

Abbildung 7 : Entity-Relationship-Diagramm

Abbildung in dieser Leseprobe nicht enthalten

3.3.3 Kardinalitäten

Nachdem die Relationen definiert wurden und auch die Umsetzung unter Access erfolgt ist, kann nun die Definition der Kardinalitäten erfolgen. Die Kardinalitäten definieren konkret die Beziehungen zwischen den einzelnen Relationen.

Man hätte das Entity-Relationship-Diagramm und das Kardinalitätendiagramm auch zusammen in eine Grafik bringen können. Aus Gründen der Übersichtlichkeit wurde hier aber darauf verzichtet.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 8 : Kardinalitätendiagramm

Wie in dem Diagramm schon zu erkennen ist, enthält die Datenbank nur Beziehungen des Typs 1:N. Zu einem Teil können mehrere Muster existieren und ein Muster kann wiederum mehrere Datensätze enthalten. Durch die in Access definierten Lösch- und Aktualisierungsweitergaben werden Änderungen oder Löschungen von Datensätzen in tbl_Teildaten auch direkt in tbl_Musterdaten, tbl_MP_FlächPkt und tbl_MP_Rand übernommen.

3.3.4 Beziehungen in Access

In Access ist es sehr einfach, Beziehungen zwischen Relationen herzustellen. Zuerst öffnet man das Fenster, in dem Beziehungen definiert werden können und fügt die Tabellen hinzu, zwischen denen Beziehungen definiert werden sollen.

Danach zieht man eines der Attribute über das Andere (Drag & Drop) und es öffnet sich ein Fenster, in dem man die Beziehung konkretisieren kann.

Access definiert automatisch den Beziehungstyp. In diesem Fenster kann auch die von Access unterstützte Lösch- und Aktualisierungsweitergabe definiert werden. Diese Eigenschaften sind in Access ein Bestandteil der referentiellen Integrität

Folgend sind zwei Screen-Shots abgebildet, die diesen Vorgang wiedergeben.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 9 : Definieren von Beziehungen unter Access

Man sieht oben die hinzugefügten Tabellen. Es wurde in diesem Fall das Attribut Teilnummer der Tabelle tbl_Teildaten per Drag & Drop auf das Attribut Teilnummer der Tabelle tbl_Musterdaten gezogen. Darauf hin öffnete sich das Fenster “Beziehungen“, wo die Beziehung konkretisiert werden kann.

Nachdem alle Beziehungen definiert wurden, sieht die komplette Darstellung unter Access folgendermaßen aus:

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 10 : Darstellung von Beziehungen und Kardinalitäten unter Access

Auch hier werden die 1:N Beziehungen zwischen den Tabellen deutlich (Unter Access wird wie schon erwähnt für N das Zeichen ¥ verwendet).

Nun ist der Aufbau der Datenbank und auch die Umsetzung unter Access fertig. Als Resultat kann man sagen, daß das Access Datenbankprogramm für kleinere Datenbanken auf Einzelrechnern oder in kleineren Netzwerken sehr einfach und unkompliziert zu handhaben ist. Dabei muß der Anwender auf keinerlei Funktionen einer professionellen Datenbankanwendung verzichten.

4 Kommunikation zwischen Datenbank und Anwendung

4.1 Überblick über die Datenzugriffstechniken

Im vorherigen Kapitel wurde die Datenbankstruktur vorgestellt und beschrieben, wie die anfallenden Daten in der Datenbank abgelegt werden. Wie aber kann nun auf diese Daten zugegriffen werden? Microsoft stellt dem Entwickler für dieses Problem eine Vielzahl an Datenzugriffstechnologien zur Verfügung. Jede Technologie für den Datenzugriff ist jedoch für unterschiedliche Aufgabengebiete entwickelt worden und hat somit ihre Vor- und Nachteile.

Die folgende Tabelle listet die z.Zt. verfügbaren Standard-Interfacetechnologien auf:

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 8 : Datenzugriffstechnologien

Die Wichtigsten dieser Technologien wurden von Microsoft zu einem Paket zusammengeschnürt und unter dem Begriff “Universal Data Access“ (UDA) verbreitet. UDA beinhaltet dabei alle nötigen Strategien, um Daten auf unterschiedliche Methoden, sei es übers Internet, als Client-/Server-Anwendung oder von lokalen Datenstrukturen, zu transportieren.

Dabei ist UDA eine weiterentwickelte Technologie der heutigen Standard-Interfaces ODBC, OLE DB, ADO und RDS.

Hinzuzufügen wäre noch, daß DAO der Vorgänger von ADO ist und wohl mit der Zeit auch komplett durch ADO ersetzt wird (die alten Datenzugriffsbibliotheken von DAO werden aus Kompatibilitätsgründen jedoch auch weiterhin mitgeschleppt). Dabei stellte DAO die erste objektorientierte Schnittstelle dar, die das Jet-Datenbankmodul, welches von Microsoft Access verwendet wird, offenlegte. Dadurch wurde dem VB-Entwickler die Möglichkeit geboten, über ODBC eine direkte Verbindung zu Tabellen einer Access-Datenbank sowie zu anderen Datenbanken herzustellen.

Deshalb findet DAO auch heute noch sein Einsatzgebiet, und zwar bei Anwendungen auf einzelnen Systemen und für lokale Entwicklungen. Im Rahmen dieser Diplomarbeit wurde die Zugriffstechnologie ActiveX Data Objects, kurz ADO, verwendet. Auf diese Technologie soll auf den folgenden Seiten näher eingegangen werden.

4.2 Datenzugriff mit Visual Basic

Die unten abgebildete Grafik gibt einen Überblick über die Datenzugriffstechnologie ADO in Visual Basic.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 11 : Datenzugriff mit ADO in VB

In der Grafik ist schon zu erkennen, wie das Grundprinzip des Datenzugriffs bei ADO funktioniert. Eine Anwendung kommuniziert über eine mittlere Ebene mit dem Datenanbieter. Dadurch läßt sich der Datenzugriff auch in drei Abschnitte mit unterschiedlichen Aufgabengebieten unterteilen:

- Anwendungsebene
- Mittlere Ebene und
- Datenebene

4.2.1 Anwendungsebene

Innerhalb der Anwendung wird nochmals unterschieden zwischen Datenquellen und Datennutzer. Dabei wird z.B. ein Recordset als Datenquelle bezeichnet und ein Formular, Report oder VB-Code als Datennutzer. Durch die Aufteilung ist in Visual Basic die Möglichkeit zur dynamischen Datenanbindung gegeben. Daten, welche sich in einem Recordset befinden, können dadurch zur Laufzeit an einen beliebigen Datennutzer gebunden werden. Ebenso kann zur Laufzeit ein Datennutzer auf verschiedene Datenquellen zugreifen.

Zur Repräsentation der Daten beim Endnutzer werden in VB verschiedene funktionsreiche Möglichkeiten (Steuerelemente) angeboten, welche hier nur kurz aufgelistet werden sollen.

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 9 : Repräsentationsmöglichkeiten in VB

4.2.2 Mittlere Ebene

Die primäre Methode zum Datenzugriff auf relationale oder nicht-relationale Datenquellen in Visual Basic stellt das ActiveX Data Object auf der mittleren Ebene dar. Diese ActiveX-Komponente ist quasi die Brücke zwischen Datenanbietern und Datennutzern und kann als Komponente mit in der VB-Anwendung als ActiveX-EXE oder -DLL erstellt werden.

Dabei definiert ADO eine Zusammenstellung von Objekten, die die OLE-Automatisierung und das Component Object Model (COM) unterstützen, um dadurch mit der sehr leistungsstarken Partnertechnologie OLE DB zusammenarbeiten zu können.

4.2.3 Datenebene

In der oben dargestellten Grafik wurde die Datenebene nur durch ein Symbol als Datenkontainer dargestellt. In Wirklichkeit ist dieser Bereich aber noch wesentlich komplizierter und um hier in die Tiefe dieser Technologie einzusteigen würde sicherlich den Rahmen dieser Arbeit sprengen. Daher soll hier nur kurz auf ein Schlagwort eingegangen werden: OLE DB

OLE DB ist für die Datenbereitstellung zuständig. Diese Technik besitzt einen umfangreichen Satz con COM-Schnittstellen, die einen einheitlichen Zugriff auf Daten unterschiedlichster Informationsquellen und Datenspeicher bieten. Der große Vorteil dabei ist, daß die Schnittstellen wiederum so konzipiert wurden, daß sie ausschließlich die Zugriffsfunktionalität unterstützen, die für den jeweiligen Datenspeicher geeignet ist.

OLE DB-Komponenten bestehen aus Datenlieferanten, die ihre Datenquellen offen legen und ermöglichen den Zugriff auf relationale und nicht-relationale Datenbanken.

Da die OLE DB- und ADO-Schnittstellen auf COM basieren, bieten sie eine umfangreiche Menge integrierter Dienste, wie z.B. Transaktionen und Datensicherheit. Auch die Cursormodule, Abfrageverarbeitungen und Unternehmensdienste sind in OLE DB integriert.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 12 : Datenzugriff mit OLE DB und ADO

Im Allgemeinen wird bei der Erstellung von Anwendungen ADO verwendet, um damit über vorhandene OLE DB-Datenprovider die verschiedenen Datenspeicher anzusprechen. Es besteht aber auch die Möglichkeit, die OLE DB-Schnittstelle direkt zu nutzen.

Es sollte jedoch für den Zugriff und die Bearbeitung von OLE DB-Datenspeichern grundsätzlich ActiveX Data Objects verwendet werden.

4.3 Einführung in ADO

ADO wurde, wie oben schon beschrieben, als benutzerfreundliche Schnittstelle auf Anwendungsebene für beliebige OLE DB-Datenbankprovider entwickelt. Da in unserem Fall eine Access-Datenbank verwendet wird, greift OLE über die Jet-Databaseengine auf die Daten zu. Mit Hilfe der ADO-Datenzugriffsmethode kann praktisch auf alle verfügbaren Daten zugegriffen werden.

ADO ist benutzerfreundlich, sprachunabhängig, nahezu aufwandslos zu implementieren und verursacht nur einen sehr geringen Netzwerkverkehr. Ein weiterer Vorteil dieser Methode ist, daß nur wenige Schichten zwischen Clientanwendung und Datenquelle existieren, was einen unkomplizierten Hochleistungsdatenzugriff gewährleistet.

Folgende Eigenschaften zeichnen die ActiveX Data Objects:

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 10 : ADO-Eigenschaften

Die folgenden Abschnitte stellen ADO noch etwas näher vor, um die Zugriffe der Anwendung MVS auf die Datenbank zu verstehen.

4.3.1 Das ADO-Objektmodell

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 13 : Das ADO-Objektmodell

Jedes Connection-, Command-, Recordset- und Field-Objekt ist auch im Besitz der Properties-Auflistung:

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 14 : ADO mit Properties-Auflistung

Die folgende Auflistung soll die sieben Objekte des ADO-Modells vorstellen:

- Das Connection-Objekt verwaltet Verbindungsinformationen, wie z.B. Cursortypen, Verbindungszeichenfolge, Abfragezeichenlimit, Verbindungszeitlimit und Standarddatenbank
- Das Error-Objekt enthält erweiterte Fehlerinformationen zu Fehlerbedingungen, die vom Datenprovider ausgelöst wurden
- Das Command-Objekt verwaltet Informationen zu einem Befehl wie z.B. eine Abfragezeichenfolge oder Parameterinformationen.
- Das Parameter-Objekt ist ein mit einem Befehl verknüpfter Einzelparameter, welcher durch Senden von Abfragen an die Datenbank automatisch erstellt werden können.
- Das Recordset-Objekt ist eine von einer Abfrage zurückgegebene Zeilenmenge inklusive eines Cursors für diese Zeilen. Recordsets können auch ohne Connection-Objekt erstellt werden.

- Das Fields-Objekt enthält Informationen zu einer einzelnen Datenspalte innerhalb eines Recordsets. Zu den Feldinformationen gehören Datentyp, Genauigkeit und numerische Skalierung
- Das Property-Objekt ist ein vom Datenprovider definiertes Merkmal eines ADO-Objektes. Eine Eigenschaft kann z.B. angeben, daß ein Recordset-Objekt Transaktionen oder Aktualisierungen unterstützt.

4.3.2 Zugriff auf Daten mit ADO

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 15 : Zusammenspiel der ADO-Objekte

Eine typische ADO-Anwendung geht folgendermaßen vor, um auf eine Datenquelle zuzugreifen ( Die Verwendung des Command-Objektes ist dabei nicht zwingend erforderlich):

Erstellen eines Connection-Objekts:

Bestimmen einer Verbindungszeichenfolge mit Informationen wie z.B. Benutzeridentifikation, Kennwort, Datenbankname, Cursorposition. Dieses Connection-Objekt ist auch in der Lage, Transaktionen durchzuführen

Öffnen der Verbindung:

Öffnen der ADO-Verbindung mit der Datenquelle

Ausführen einer SQL-Anweisung:

Nach dem Öffnen der Verbindung kann eine Abfrage ausgeführt werden. Dabei weist ADO den Cursortreiber an, die Ergebnismenge im Hintergrund aufzufüllen, damit die Anwendung andere Prozesse ohne Wartezeiten ausführen kann.

Verwenden der Ergebnismenge:

Die Ergebnismenge kann je nach Cursortyp auf der Client- oder Serverseite durchsucht und bearbeitet werden

Beenden der Verbindung:

Beenden der Verbindung mit der Datenquelle

Ein kleines Beispiel soll diesen Ablauf verdeutlichen:

DIM con As Connection

DIM rst As Recordset

' Herstellen eines Connection-Objektes

Set con = New Connection

con.CursorLocation = adUseServer

con.Provider = "Microsoft.Jet.OLEDB.3.51"

' Öffnen der Verbindung

con.Open Datenbankname

' Ausführen einer SQL-Anweisung

Set rst = New Recordset

Set rst.ActiveConnection = con

rst.CursorType = adOpenKeyset

rst.LockType = adLockOptimistic

rst.Open "SELECT Feld1, Feld2 FROM Tabelle", , , , adCmdText

' Verwenden der Ergebnismenge

rst.Fields(“Feld1“) = “Text1“

rst.Fields(1) = “Text2“

rst!Feld2 = “Text3“

' Beenden der Verbindung

rst.Close

con.Close

4.3.3 Einsatzmöglichkeiten von ADO

ADO ist mittlerweile die wichtigste Datenzugriffstechnologie von Microsoft und bildet die empfohlene Lösung für sämtliche Datenzugriffe. ADO sollte aufgrund seiner Leistungsstärke für Neuentwicklungen unbedingt verwendet werden. Auf sämtliche Funktionen und Einsatzmöglichkeiten von ADO konnte hier allerdings nicht eingegangen werden und es wird daher auf tiefgreifendere Literatur verwiesen.

5 Das Meßsystem als Datenlieferant

5.1 Allgemeines zum Meßsystem

Das Programm MVS verarbeitet Meßdaten, die von einem Meßsystem in einem bestimmten Datenformat geliefert werden. Ein Meßsystem setzt sich zusammen aus Meßmaschine und Meßsoftware. Die Meßmaschine ist innerhalb dieses Systems Datenlieferant für die Meßsoftware, welche die gemessenen Daten verarbeitet. Eingesetzt werden Meßmaschinen der Firma Stiefelmayer und Mora. Dabei handelt es sich um sogenannte Koordinatenmeßmaschinen, bei denen ein Punkt in einem dreidimensionalen Raum gemessen wird. Ansonsten wird hier aber nicht näher auf die Meßmaschinen eingegangen.

[...]

Details

Seiten
251
Erscheinungsform
Originalausgabe
Jahr
2000
ISBN (eBook)
9783832443924
ISBN (Buch)
9783838643922
Dateigröße
1.8 MB
Sprache
Deutsch
Katalognummer
v220001
Institution / Hochschule
Katholische Fachhochschule Norddeutschland Osnabrück – Elektrotechnik und Informatik
Note
1,0
Schlagworte
access datenbanken meßdaten meßdatenverwaltung odbc visual basic

Autor

Zurück

Titel: Konzeption und Umsetzung einer durchgängigen Meßdatenverarbeitung am Beispiel eines Bemusterungsberichtes