Datentypen

Variablen sind Platzhalter, die zum Speichern von Werten verwendet werden; sie haben Namen und Datentypen. Durch den Datentyp einer Variablen wird festgelegt, wie die Bits, die die Werte repräsentieren, im Speicher des Computers gespeichert werden. Wenn Sie eine Variable deklarieren, können Sie auch einen Datentyp für sie definieren. Alle Variablen haben einen Datentyp, der bestimmt, welche Art von Daten sie speichern können.

Standardmäßig wird einer Variablen der Datentyp Variant zugewiesen, wenn Sie keinen Datentyp angeben. Der Datentyp Variant verhält sich wie ein Chamäleon - er kann für viele verschiedene Datentypen in unterschiedlichen Situation stehen. Sie müssen diese verschiedenen Arten von Daten nicht umwandeln, wenn Sie sie einer Variant-Variablen zuweisen. Visual Basic führt dann automatisch alle notwendigen Umwandlungen aus.

Wenn Sie wissen, dass eine Variable immer Daten eines bestimmten Typs speichert, ist es jedoch sinnvoll, eine Variable dieses Typs zu deklarieren, da Visual Basic die Daten dann effizienter handhaben kann. Bei einer Variablen zum Speichern des Namens einer Person ist es z.B. am besten, sie als Datentyp String zu definieren, da ein Name immer aus Zeichen besteht. Datentypen spielen auch noch bei anderen Elementen eine Rolle. Wenn Sie einer Eigenschaft einen Wert zuweisen, ist dieser Wert von einem bestimmten Datentyp. Argumente zu Funktionen gehören ebenfalls bestimmten Datentypen an.

Deklarieren von Variablen mit Datentypen

Bevor Sie eine Variable verwenden, die nicht vom Datentyp Variant ist, müssen Sie sie mit der Private-, Public-, Dim- oder Static-Anweisung deklarieren und mit As Typ einen Typ festlegen. Die folgenden Anweisungen deklarieren z.B. Werte vom Typ Integer, Double, String und Currency:

Private I As Integer

Dim Amt As Double

Static YourName As String

Public BillsPaid As Currency

Eine Deklarationsanweisung kann mehrere Deklarationen enthalten, wie in den folgenden Beispielen:

Private I As Integer, Amt As Double

Private YourName As String, BillsPaid As Currency

Private Test, Amount, J As Integer

Anmerkung   Wenn Sie keinen Datentyp angeben, wird der Variablen der Standarddatentyp zugewiesen. Im obigen Beispiel haben die Variablen Test und Amount den Datentyp Variant. Dies überrascht Sie vielleicht, wenn Sie Erfahrungen mit anderen Programmiersprachen gesammelt haben. In anderen Sprachen erhalten meist alle Variablen in einer Deklarations­anweisung denselben Typ (in diesem Fall Integer).

Numerische Datentypen

Visual Basic stellt mehrere numerische Datentypen bereit:

·     Integer (Ganzzahl),

·     Long (lange Ganzzahl),

·     Currency (Währung),

·     Single (Gleitkommazahl einfacher Genauigkeit),

·     Double (Gleitkommazahl doppelter Genauigkeit).

Bei Verwendung eines numerischen Datentyps wird im allgemeinen weniger Speicherplatz benötigt als beim Datentyp Variant.

Wenn Ihnen bekannt ist, daß eine Variable immer nur Ganzzahlen (z.B. 12) und keine Zahlen mit Nachkommastellen (z.B. 3,57) enthält, sollten Sie sie mit dem Typ Integer oder Long deklarieren. Dadurch werden die Operationen mit diesen Variablen schneller ausgeführt, und sie benötigen weniger Arbeitsspeicher als der Datentyp Variant. Besonders hilfreich sind die Ganzzahltypen als Zählervariablen in For...Next-Schleifen.

Wenn die Variable Nachkommastellen enthält, sollten Sie sie als Single-, Double-, oder Currency-Variable deklarieren. Der Datentyp Currency unterstützt bis zu vier Nachkommastellen und 15 Vorkommastellen. Dieser Typ ist ein schneller und genauer Festkomma-Datentyp, der besonders für Berechnungen mit Geldbeträgen geeignet ist. Die Gleitkommatypen Single and Double haben zwar größere Wertebereiche als Currency, können aber zu kleinen Rundungsfehlern führen.

Anmerkung Der größte positive Wert des Datentyps Single ist 3,4 mal 10 hoch 38; der größte positive Wert des Datentyps Double ist 1,8 mal 10 hoch 308.

Der Datentyp Byte

Wenn die Variable binäre Daten (z.B. 010) enthält, können Sie sie als Datenfeld des Datentyps Byte deklarieren.

Der Datentyp String

Wenn eine Variable immer nur Zeichenfolgen und niemals numerische Werte enthält, können Sie sie mit dem Datentyp String deklarieren:

Private S As String

Sie können der Variablen dann Zeichenfolgen zuweisen und sie mit den Textfunktionen (S.140) verarbeiten:

S = "Database"

S = Left(S, 4)

Eine Zeichenfolgenvariable oder ein Zeichenfolgenargument hat standardmäßig eine variable Länge: Die Zeichenfolge wird größer oder kleiner, wenn Sie ihr neue Daten zuweisen. Sie können aber auch Zeichenfolgen deklarieren, die eine feste Länge haben. Eine Zeichenfolge fester Länge können Sie mit folgender Syntax deklarieren:

String * Länge

Eine Zeichenfolge, die immer 50 Zeichen lang ist, können Sie z.B. mit dem folgenden Code deklarieren:

Dim EmpName As String * 50

Wenn Sie eine Zeichenfolge mit weniger als 50 Zeichen zuweisen, wird EmpName mit nachfolgenden Leerzeichen bis zum 50. Zeichen aufgefüllt. Weisen Sie dagegen eine zu lange Zeichenfolge zu, so werden die überzähligen Zeichen einfach abgeschnitten.

Da Zeichenfolgen fester Länge mit nachfolgenden Leerzeichen aufgefüllt werden, könnten die Funktionen Trim und RTrim bei der Arbeit mit solchen Zeichenfolgen hilfreich sein.

Zeichenfolgen fester Länge können in Standardmodulen als Public oder Private deklariert werden. In Formularen und Klassenmodulen müssen Zeichenfolgen fester Länge als Private deklariert werden.

Weitere Informationen   Weitere Informationen hierzu finden Sie im Sprachverzeichnis der Online-Dokumentation unter Ltrim, Rtrim oder Trim. (zum Abschneiden von Textteilen)

Austauschen von Zeichenfolgen und Zahlen

Sie können eine Zeichenfolge einer numerischen Variablen zuweisen, wenn die Zeichenfolge einen numerischen Wert darstellt. Sie können auch einen numerischen Wert einer Zeichenfolgenvariablen zuweisen. Positionieren Sie beispielsweise eine Befehlsschaltfläche, ein Textfeld und ein Listenfeld in einem Formular. Geben Sie den folgenden Code in der Click-Ereignisprozedur der Befehlsschaltfläche ein. Starten Sie die Anwendung, und klicken Sie auf die Befehlsschaltfläche.

Private Sub Command1_Click()

   Dim intX As Integer

   Dim strY As String

   strY = "123"

   intX = strY           ' Zeichenfolge an numerische Variable übergeben.

   List1.AddItem Cos(strY) ' Kosinus der Zahl in der Zeichenfolge dem Listenfeld hinzufügen.

   strY = Cos(strY)     ' Kosinus an die Zeichenfolgenvariable übergeben.

   Text1.Text = strY    ' Zeichenfolgenvariable im Textfeld ausgeben.

End Sub

Visual Basic weist den Variablen automatisch den geeigneten Datentyp zu. Sie sollten beim Austauschen von Zeichenfolgen und Zahlen vorsichtig sein; wenn Sie einen nicht-numerischen Wert in der Zeichenfolge übergeben, wird ein Laufzeitfehler ausgelöst.

Der Datentyp Boolean

Wenn Sie über eine Variable verfügen, die einfache Ja (True)/Nein (False)-Informationen enthält, können Sie sie mit dem Typ Boolean deklarieren. Der Standardwert eines Wertes vom Typ Boolean ist False. Im folgenden Beispiel ist blnRunning eine Boolean-Variable, die eine einfache Ja/Nein-Einstellung speichert.

Dim blnRunning As Boolean

   ' Überprüfen, ob das Band läuft.

   If Recorder.Direction = 1 Then

   blnRunning = True

End if

Der Datentyp Date

Werte für Datums- und Zeitangaben können in Variablen mit dem Typ Date und in Variant-Variablen gespeichert werden. Die Datumsangaben haben in beiden Typen die gleichen allgemeinen Merkmale.

Wenn andere numerische Datentypen in den Typ Date umgewandelt werden, stellen die Werte links vom Dezimalzeichen Informationen zum Datum dar, während die Werte rechts vom Dezimalzeichen Zeitwerte darstellen. Mitternacht ist x,0 und Mittag ist x,5. Negative ganze Zahlen stellen Datumsangaben vor dem 30. Dezember 1899 dar.

Der Datentyp Object

Objektvariablen werden als 32‑Bit-Adressen (4-Bytes) gespeichert, die auf Objekte innerhalb einer Anwendung oder in einer anderen Anwendung verweisen. Einer als Object deklarierten Variablen kann anschließend (mit der Set-Anweisung) ein Wert zugewiesen werden, der auf ein tatsächlich vorhandenes Objekt verweist, das von der Anwendung erkannt wird.

Dim objDb As Object

Set objDb = OpenDatabase("c:\vb5\biblio.mdb")

Der Datentyp Variant

Der Datentyp Variant kann alle systemdefinierten Arten von Daten speichern.
Sie müssen diese Typen nicht umwandeln, wenn Sie sie einer Variant-Variablen zuweisen. Visual Basic führt automatisch alle nötigen Umwandlungen durch. Beispiel:

Dim EinWert               ' Variant durch Voreinstellung.

EinWert = "17"           ' EinWert auf "17" (Zeichenfolge mit zwei Zeichen) setzen.

EinWert = EinWert - 15   ' EinWert enthält nun den numerischen Wert 2.

EinWert = "U" & EinWert  ' EinWert enthält nun "U2" Zeichenfolge mit zwei Zeichen).

Obwohl Sie bei Operationen mit Variant-Variablen nicht besonders darauf achten müssen, welche Arten von Daten sie tatsächlich enthalten, sollten Sie doch einige Dinge beachten.

·     Wenn Sie arithmetische Operationen oder Funktionen mit einer Variant-Variablen ausführen, muß sie eine gültige Zahl enthalten. Genaue Informationen hierzu finden Sie im Abschnitt "Numerische Werte in Variant-Variablen" unter "Weiterführende Informationen zum Datentyp Variant" (nur in der Online-Dokumentation).

·     Zum Verketten von Zeichenfolgen müssen Sie den &-Operator anstelle des +-Operators verwenden. Ausführliche Informationen hierzu finden Sie unter "Zeichenfolgen in Variant-Variablen" in "Weiterführende Informationen zum Datentyp Variant" (nur in der Online-Hilfe von Visual Basic).

Variant-Variablen können nicht nur wie andere Standarddatentypen funktionieren, sondern enthalten zusätzlich drei spezielle Werte: Empty, Null und Error.

Der Wert Empty

Manchmal müssen Sie bestimmen, ob einer Variablen überhaupt ein Wert zugewiesen wurde. Eine Variant-Variable hat den Wert Empty, solange ihr noch kein Wert zugewiesen wurde. Der Wert Empty ist ein besonderer Wert und unterscheidet sich von 0, einer Nullzeichenfolge ("") und dem Wert Null. Mit der IsEmpty-Funktion können Sie überprüfen, ob der Wert Empty vorliegt:

If IsEmpty(Z) Then Z = 0

Wenn eine Variant-Variable den Wert Empty enthält, können Sie sie in Ausdrücken verwenden. Visual Basic setzt dann (je nach Ausdruck) 0 oder eine Nullzeichenfolge ein.

Der Wert Empty wird ersetzt, sobald der Variant-Variablen ein beliebiger Wert (auch eine Nullzeichenfolge, der Wert 0 oder der Wert Null) zugewiesen wird. Sie können eine Variant-Variable auf den Wert Empty zurücksetzen, indem Sie ihr das Schlüssel­wort Empty zuweisen.

Der Wert Null

Der Datentyp Variant kann einen weiteren besonderen Wert enthalten: den Wert Null. Der Wert Null wird gewöhnlich in Datenbankanwendungen verwendet, um unbekannte oder fehlende Daten anzuzeigen. Aufgrund dieser Verwendung hat der Wert Null einige einzigartige Merkmale (hier nicht weiter beschrieben).

Der Wert Error

In einer Variant-Variablen ist Error ein spezieller Wert, der eine aufgetretene Fehlerbedingung anzeigt. Im Unterschied zu anderen Arten von Fehlern fällt die übliche Fehlerbehandlung auf Anwendungsebene jedoch weg. So ist es Ihnen oder der Anwendung selbst möglich, anhand des Fehlerwertes alternative Lösungswege zu suchen. Fehlerwerte werden erstellt, indem reelle Zahlen mit Hilfe der CVErr-Funktion umgewandelt werden.

Umwandeln von Datentypen

In Visual Basic ist eine Reihe von Umwandlungsfunktionen verfügbar, mit denen Sie Werte in einen bestimmten Datentyp umwandeln können. Sie können zum Beispiel einen Wert in den Typ Currency umwandeln, indem Sie die CCur-Funktion verwenden:

Wochensatz = CCur(Stunden * Stundensatz)

Umwandlungs-
funktion

Umwandlung eines Ausdrucks
in den Typ

Umwandlungs-
funktion

Umwandlung eines Ausdrucks
in den Typ

CInt

Integer

CBool

Boolean

CDbl

Double

CByte

Byte

CLng

Long

CCur

Currency

CSng

Single

CDate

Date

CStr

String

CVErr

Error

CVar

Variant

 

 

Anmerkung   An eine Umwandlungsfunktion übergebene Werte müssen für den Zieldatentyp zulässig sein, sonst tritt ein Fehler auf. Wenn Sie z.B. versuchen, den Datentyp Long in den Datentyp Integer umzuwandeln, muß der Wert von Long innerhalb des für den Datentyp Integer zulässigen Bereichs liegen.

Umwandlung von Text in Zahlen und umgekehrt

Mit der Funktion Str$ wandelt man eine Zahl in einen Text um:

   Textvariable = Str$(Zahlenausdruck) siehe Anhang.

Mit der Funktion Val wandelt man einen Text in eine Zahl um:

   Zahlenvariable = Val(Textausdruck) siehe Anhang.