Datentypen: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Pwania (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Dynamische Datentypen == Dynamische Datentypen können nicht nur einen Wert aufnehmen, sondern eine Liste von Werten (Collections), oder sogar eine beliebi…“) |
Pwania (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Category:vba-wiki]] | |||
== Natürliche Datentypen == | |||
Als natürliche Datentypen bezeichnen wir solche Datentypen, die einen eindeutigen Wert entgegennehmen, im Gegensatz zu [[#Dynamische Datentypen|dynamischen Datentypen]], welche mehrere Werte aufnehmen können, oder [[#Objekte|(Klassen-)Objekten]], die nicht nur Werte, sondern auch Prozeduren enthalten können. | |||
{| class="wikitable" | |||
! style="text-align:left;" | Familie | |||
! style="text-align:left;" | Unterfamilie | |||
! style="text-align:left;" | Datentyp | |||
! style="text-align:left;" | Beschreibung | |||
! style="text-align:left;" | Präfix | |||
! style="text-align:left;" | Bereich | |||
! style="text-align:left;" | Initialwert | |||
! style="text-align:left;" | Speicherbedarf | |||
! style="text-align:left;" | Anmerkungen | |||
|- style="vertical-align:top;" | |||
| Zeichen | |||
| [[Zeichenketten]] | |||
| String | |||
| Zeichenkette | |||
| str | |||
| Variabel bis 2^31 (2 Mia) Zeichen | |||
| "" (Leerstring) | |||
| Wie benötigt | |||
| Ein Datentyp für einzelne Zeichen existiert in VB(A) nicht | |||
|- style="vertical-align:top;" | |||
| Numerische Werte | |||
| [[Ganzzahlen]] | |||
| Byte | |||
| Binärdaten | |||
| bte | |||
| 0 – 255 | |||
| 0 | |||
| 1 Byte | |||
| | |||
|- style="vertical-align:top;" | |||
| | |||
| | |||
| Integer | |||
| Einfache Ganzzahl | |||
| int | |||
| -32.768 bis 32.767 (2^16) | |||
| 0 | |||
| 2 Byte | |||
| | |||
|- style="vertical-align:top;" | |||
| | |||
| | |||
| Long | |||
| Lange Ganzzahl | |||
| lng | |||
| -2.147.483.648 bis 2.147.483.647 (2^32) | |||
| 0 | |||
| 4 Byte | |||
| Bevorzugter Datentyp für Ganzzahlen | |||
|- style="vertical-align:top;" | |||
| | |||
| [[Gleitkommazahlen]] | |||
| Single | |||
| Gleitkommazahl einfacher Genauigkeit | |||
| sng | |||
| Insgesamt 8 Stellen inkl. Komma<br>123,4568<br>-123456,8 | |||
| 0.0 | |||
| 4 Byte | |||
| Tatsächlich abbildbarer Bereich durch Exponente deutlich größer, aber Genauigkeit auf insgesamt 8 Stellen beschränkt: 1,234568E+38 | |||
|- style="vertical-align:top;" | |||
| | |||
| | |||
| Double | |||
| Gleitkommazahl doppelter Genauigkeit | |||
| dbl | |||
| Insgesamt 16 Stellen inkl. Komma<br>123,456789012346<br>-123456789012,346 | |||
| 0.0 | |||
| 8 Byte | |||
| Siehe Single, auf 16 Stellen beschränkt | |||
|- style="vertical-align:top;" | |||
| | |||
| | |||
| Currency | |||
| Währung | |||
| cur | |||
| Maximal 15 Stellen vor, immer 4 Stellen nach Komma | |||
| 0.0 | |||
| 8 Byte | |||
| Muss nicht zwingend für Währung eingesetzt werden | |||
|- style="vertical-align:top;" | |||
| Zeit | |||
| [[Datum und Uhrzeit]] | |||
| Date | |||
| Datum und Uhrzeit | |||
| dte | |||
| 01. Januar 100 bis zum 31. Dezember 9999 | |||
| 00:00:00 | |||
| 8 Byte | |||
| Wird als Double gespeichert. Kann nur Datum, nur Uhrzeit oder Datum und Uhrzeit enthalten. Vorkommastellen repräsentieren die Anzahl Tage vor bzw. nach dem 30. Dezember 1899, Nachkommastellen die Uhrzeit. Mitternacht entspricht dem Wert 0, und 12:00 Mittag entspricht dem Nachkommawert 0,5. | |||
|- style="vertical-align:top;" | |||
| Boolesche | |||
| [[Boolesche Werte]] | |||
| Boolean | |||
| Boolescher Wert | |||
| bln | |||
| True, False | |||
| False (0) | |||
| 2 Byte | |||
| Setzen: 0 ist False, <> 0 True<br>Abfragen: False 0, True -1 | |||
|- style="vertical-align:top;" | |||
| Unbestimmt | |||
| [[Variant|Unbestimmt]] | |||
| Variant | |||
| Kann alle Datenypen aufnehmen | |||
| var | |||
| Abhängig von Originaldatentyp | |||
| Abhängig von Originaldatentyp | |||
| Abhängig von Originaldatentyp | |||
| Sollte nur wenn absolut nötig verwendet werden. | |||
|- style="vertical-align:top;" | |||
| | |||
| [[Type|Benutzerdefiniert]] | |||
| Type | |||
| Kann ein oder mehrere Elemente enthalten | |||
| tpe | |||
| Abhängig von Originaldatentyp(en) | |||
| Abhängig von Originaldatentyp(en) | |||
| Abhängig von Originaldatentyp(en) | |||
| Kann als Gruppe von Werten verstanden werden (Typ Person enthält Name, Vorname, Geburtsdatum, ...) | |||
|} | |||
== Dynamische Datentypen == | == Dynamische Datentypen == | ||
Dynamische Datentypen können nicht nur einen Wert aufnehmen, sondern eine Liste von Werten (Collections), oder sogar eine beliebig dimensionierte Sammlung von zusammenhängenden Werten (Arrays). | Dynamische Datentypen können nicht nur einen Wert aufnehmen, sondern eine Liste von Werten (Collections), oder sogar eine beliebig dimensionierte Sammlung von zusammenhängenden Werten (Arrays). | ||
{| class="wikitable" | |||
! style="text-align:left;" | Familie | |||
! style="text-align:left;" | Unterfamilie | |||
! style="text-align:left;" | Datentyp | |||
! style="text-align:left;" | Beschreibung | |||
! style="text-align:left;" | Präfix | |||
! style="text-align:left;" | Bereich | |||
! style="text-align:left;" | Initialwert | |||
! style="text-align:left;" | Speicherbedarf | |||
! style="text-align:left;" | Anmerkungen | |||
|- style="vertical-align:top;" | |||
| Dynamische Datentypen | |||
| [[Collection|Eindimensionale Listen]] | |||
| Collection | |||
| Eindimensionale Liste | |||
| col | |||
| | |||
| Nothing | |||
| Wie benötigt | |||
| Kann eine Liste von Werten mit beliebigen Datentypen entgegennehmen. Neue Elemente können beliebig in der vorhandenen Liste eingeschoben werden. | |||
|- style="vertical-align:top;" | |||
| | |||
| [[Array|Datenfelder]] | |||
| Array | |||
| Liste / Tabelle | |||
| Abhängig von Datentyp | |||
| | |||
| Keiner bzw. Abhängig von Datentyp | |||
| Wie benötigt | |||
| Kann eine ein- oder mehrdimensionale Liste von Werten mit einem vorgegebenen Datentypen entgegennehmen. Alle Elemente haben einen festen Platz. | |||
|} | |||
=== | == Objekte == | ||
{| class="wikitable" | |||
! style="text-align:left;" | Familie | |||
! style="text-align:left;" | Unterfamilie | |||
! style="text-align:left;" | Datentyp | |||
! style="text-align:left;" | Beschreibung | |||
! style="text-align:left;" | Präfix | |||
! style="text-align:left;" | Bereich | |||
! style="text-align:left;" | Initialwert | |||
! style="text-align:left;" | Speicherbedarf | |||
! style="text-align:left;" | Anmerkungen | |||
|- style="vertical-align:top;" | |||
| Objekte | |||
| [[Generelle Objekte]] | |||
| Object | |||
| Objektreferenz | |||
| obj | |||
| 32-Bit-Adressen | |||
| Nothing | |||
| 4 Byte | |||
| Enthält einen Verweis auf das Original-Objekt, welches ein beliebiges Anwendungs- oder Klassenobjekt sein kann | |||
|- style="vertical-align:top;" | |||
| | |||
| [[Anwendungsobjekte]] | |||
| Object | |||
| Klassenreferenz auf Anwendungsobjekt | |||
| | |||
| 32-Bit-Adressen | |||
| Nothing | |||
| 4 Byte | |||
| Nimmt eine Instanz eines Anwendungsobjektes entgegen | |||
|- style="vertical-align:top;" | |||
| | |||
| [[Klassenobjekte]] | |||
| Object | |||
| Klassenreferenz | |||
| | |||
| 32-Bit-Adressen | |||
| Nothing | |||
| 4 Byte | |||
| Nimmt eine Instanz einer Klasse aus dem gleichen VBA-Projekt entgegen | |||
|} |
Aktuelle Version vom 28. Januar 2023, 00:34 Uhr
Natürliche Datentypen
Als natürliche Datentypen bezeichnen wir solche Datentypen, die einen eindeutigen Wert entgegennehmen, im Gegensatz zu dynamischen Datentypen, welche mehrere Werte aufnehmen können, oder (Klassen-)Objekten, die nicht nur Werte, sondern auch Prozeduren enthalten können.
Familie | Unterfamilie | Datentyp | Beschreibung | Präfix | Bereich | Initialwert | Speicherbedarf | Anmerkungen |
---|---|---|---|---|---|---|---|---|
Zeichen | Zeichenketten | String | Zeichenkette | str | Variabel bis 2^31 (2 Mia) Zeichen | "" (Leerstring) | Wie benötigt | Ein Datentyp für einzelne Zeichen existiert in VB(A) nicht |
Numerische Werte | Ganzzahlen | Byte | Binärdaten | bte | 0 – 255 | 0 | 1 Byte | |
Integer | Einfache Ganzzahl | int | -32.768 bis 32.767 (2^16) | 0 | 2 Byte | |||
Long | Lange Ganzzahl | lng | -2.147.483.648 bis 2.147.483.647 (2^32) | 0 | 4 Byte | Bevorzugter Datentyp für Ganzzahlen | ||
Gleitkommazahlen | Single | Gleitkommazahl einfacher Genauigkeit | sng | Insgesamt 8 Stellen inkl. Komma 123,4568 -123456,8 |
0.0 | 4 Byte | Tatsächlich abbildbarer Bereich durch Exponente deutlich größer, aber Genauigkeit auf insgesamt 8 Stellen beschränkt: 1,234568E+38 | |
Double | Gleitkommazahl doppelter Genauigkeit | dbl | Insgesamt 16 Stellen inkl. Komma 123,456789012346 -123456789012,346 |
0.0 | 8 Byte | Siehe Single, auf 16 Stellen beschränkt | ||
Currency | Währung | cur | Maximal 15 Stellen vor, immer 4 Stellen nach Komma | 0.0 | 8 Byte | Muss nicht zwingend für Währung eingesetzt werden | ||
Zeit | Datum und Uhrzeit | Date | Datum und Uhrzeit | dte | 01. Januar 100 bis zum 31. Dezember 9999 | 00:00:00 | 8 Byte | Wird als Double gespeichert. Kann nur Datum, nur Uhrzeit oder Datum und Uhrzeit enthalten. Vorkommastellen repräsentieren die Anzahl Tage vor bzw. nach dem 30. Dezember 1899, Nachkommastellen die Uhrzeit. Mitternacht entspricht dem Wert 0, und 12:00 Mittag entspricht dem Nachkommawert 0,5. |
Boolesche | Boolesche Werte | Boolean | Boolescher Wert | bln | True, False | False (0) | 2 Byte | Setzen: 0 ist False, <> 0 True Abfragen: False 0, True -1 |
Unbestimmt | Unbestimmt | Variant | Kann alle Datenypen aufnehmen | var | Abhängig von Originaldatentyp | Abhängig von Originaldatentyp | Abhängig von Originaldatentyp | Sollte nur wenn absolut nötig verwendet werden. |
Benutzerdefiniert | Type | Kann ein oder mehrere Elemente enthalten | tpe | Abhängig von Originaldatentyp(en) | Abhängig von Originaldatentyp(en) | Abhängig von Originaldatentyp(en) | Kann als Gruppe von Werten verstanden werden (Typ Person enthält Name, Vorname, Geburtsdatum, ...) |
Dynamische Datentypen
Dynamische Datentypen können nicht nur einen Wert aufnehmen, sondern eine Liste von Werten (Collections), oder sogar eine beliebig dimensionierte Sammlung von zusammenhängenden Werten (Arrays).
Familie | Unterfamilie | Datentyp | Beschreibung | Präfix | Bereich | Initialwert | Speicherbedarf | Anmerkungen |
---|---|---|---|---|---|---|---|---|
Dynamische Datentypen | Eindimensionale Listen | Collection | Eindimensionale Liste | col | Nothing | Wie benötigt | Kann eine Liste von Werten mit beliebigen Datentypen entgegennehmen. Neue Elemente können beliebig in der vorhandenen Liste eingeschoben werden. | |
Datenfelder | Array | Liste / Tabelle | Abhängig von Datentyp | Keiner bzw. Abhängig von Datentyp | Wie benötigt | Kann eine ein- oder mehrdimensionale Liste von Werten mit einem vorgegebenen Datentypen entgegennehmen. Alle Elemente haben einen festen Platz. |
Objekte
Familie | Unterfamilie | Datentyp | Beschreibung | Präfix | Bereich | Initialwert | Speicherbedarf | Anmerkungen |
---|---|---|---|---|---|---|---|---|
Objekte | Generelle Objekte | Object | Objektreferenz | obj | 32-Bit-Adressen | Nothing | 4 Byte | Enthält einen Verweis auf das Original-Objekt, welches ein beliebiges Anwendungs- oder Klassenobjekt sein kann |
Anwendungsobjekte | Object | Klassenreferenz auf Anwendungsobjekt | 32-Bit-Adressen | Nothing | 4 Byte | Nimmt eine Instanz eines Anwendungsobjektes entgegen | ||
Klassenobjekte | Object | Klassenreferenz | 32-Bit-Adressen | Nothing | 4 Byte | Nimmt eine Instanz einer Klasse aus dem gleichen VBA-Projekt entgegen |