Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Wahl der Datentypen in Access: Integer, Double oder Currency
zurück: Datenpflege von m:n Datensätze über Kontrollkästchen weiter: MiniChart mit Access Bordmitteln Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Information Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
JMalberg
Es wird so langsam sinnig ...


Verfasst am:
22. Jan 2013, 15:50
Rufname:
Wohnort: Saarbrücken

Wahl der Datentypen in Access: Integer, Double oder Currency - Wahl der Datentypen in Access: Integer, Double oder Currency

Nach oben
       Version: (keine Angabe möglich)

Gerade beim Aufbau des Datenmodells steht man vor der Frage "Welcher Datentyp ist denn jetzt der passende?"

Für IDs, Nummern aus Ziffern, Anzahlen von etwas ist "Long Integer" die erste Wahl. Ausgenommen für IDs als Schlüsselwert für die "Long Integer" ein Muss ist, kann in manchen Fällen noch "Integer" eingesetzt werden. "Byte" lohnt sich nur in den Fällen, die eine klar begrenzte Obergrenze von 255 haben, wie zB für Kalenderwochennummer oder Monatsnummer; für Kalendertagnummer ist dann aber schon Integer nötig.

Wann aber muss Single, Double und wann Currency sein?
Der Datentyp Currency unterstützt bis zu 15 Vorkommastellen und 4/vier Nachkommastellen. Da die Nachkomma fixiert sind, kommt es zu geringeren Rundungsfehlern. Quelle: Interne Format der Währung-Datentyp in Grunderzeugnisse
Er 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.

@Mod: Wenn schon vorhanden, dort bitte anfügen.

_________________
Gruß
Jürgen

Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie!
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
25. Jan 2013, 14:02
Rufname:


AW: Wahl der Datentypen in Access: Integer, Double oder Curr - AW: Wahl der Datentypen in Access: Integer, Double oder Curr

Nach oben
       Version: (keine Angabe möglich)

Hallo Jürgen,

für Pauschalaussagen ist doch sonst Klaus zuständig... Razz

Spaß beiseite, ganz so einfach, wie Du es schreibst, ist es nicht.
Erst mal zu "Muß" und "Long Integer" - man kann sagen, daß es im Allgemeinen die beste Wahl ist, aber weder ein Muß noch immer die beste Wahl. In einer Replikations-Umgebung ist u.U. die GUID ("Replikations-ID" in Access) besser geeignet, wenn auch nicht performanter. Ebenso kann es manchmal sinnvoller und performanter sein, statt einer Long Integer ID einen zusammengesetzten Schlüssel aus anderen Feldern zu erzeugen.

Zu Currency muß ich dann auch noch einhaken: Du sprichst einerseits vom Datenmodell und andererseits verlinkst Du einen Artikel zum Currency-Datentyp in VBA - beides hat miteinander nichts zu tun. Das wäre Dir aufgefallen, wenn Du den englischen Originaltitel gelesen hättest, der da lautet "Internal Format of CURRENCY Data Type in Basic products", was der dämliche Übersetzer von MS in "Standardprodukte" übersetzt...

Auf Tabellenebene verwendet man für genaue Dezimalzahlen am sinnvollsten den Datentyp "Decimal" (zumindest seit A2007), der wie SQL Server eine Eigenschaft für die Gesamtanzahl Stellen und eine Eigenschaft für die Anzahl Nachkommastellen aus der Gesamtanzahl Stellen besitzt. Den KANN man als Currency formatieren, das ist aber nur die Formatierung bei der Anzeige - wenn man also lediglich Dezimalzahlen benötigt, muß man nicht zwangsläufig auch Währung verwenden.
Bei der Zuweisung zu einer VBA-Variablen ist es dann meistens am sinnvollsten, auch den Datentyp Currency zu verwenden, allerdings sagt Dein Artikel auch ganz deutlich "no more than 4 digits" zu der Anzahl der Nachkommastellen - mit dem Decimal-Datentyp kann man aber auch z.B. 8 Nachkommastellen verwenden und da hört es mit Currency dann wieder auf und man muß dann doch Double verwenden.

Da die Genauigkeit bei SQL Decimal aber sehr gut ist, muß man dann Berechnungen am besten schon vorab in SQL ausführen, so daß nur noch eine Zuweisung an VBA-Double-Variablen erfolgt (wenn benötigt). Hierbei muß man in Access allerdings auch wieder berücksichtigen, daß man natürlich dann nicht mit CCur oder CDbl arbeiten darf in der SQL-Anweisung, ebensowenig mit Nz, da ansonsten wieder eine Umwandlung in VBA-Datentypen erfolgt.

Man kann also festhalten, daß man im Datenmodell für exakte Dezimalzahlen am besten den Datentyp Decimal wählt, und am besten mit maximal 4 Nachkommastellen, wenn man sich späteren Ärger bei der Zuweisung zu VBA Currency ersparen will. Benötigt man aber mehr als 4 Nachkommastellen, gibt es in VBA KEINEN adäquaten Datentyp, der genauso exakt ist. Man muß also sehr genau aufpassen, welcher Datentyp für eine gegebene Situation genau richtig ist. Auch sollte man dabei im Hinterkopf behalten, daß man die Datenbank vielleicht mal auf einen SQL Server oder anderen Datenbankserver upsizen muß und dann sollten die Datentypen möglichst gut zu übernehmen sein.

Nachschlagefelder und mehrwertige Felder sollten daher im Normalfall ein No-Go sein, aber wenn man die Neuigkeiten zu A2013 liest, sieht MS es genau andersherum: Da man hier hauptsächlich Sharepoint und Makros propagiert und auch eine automatische Umwandlung vorsieht (A2013 arbeitet jetzt mit SQL Server als Backend bei Webdatenbanken), funktioniert die automatische Umwandlung nur noch dann, wenn man als Datentyp Nachschlagefelder verwendet hat statt einer ordentlichen Lookup-Table... Original von einem MS-Mitarbeiter im Access-Blog zum Thema A2013.

Wie immer beim Thema Entwicklung kann man also keine Pauschalaussagen treffen, man muß immer die für die Situation richtige Entscheidung treffen - und man muß damit leben, daß man u.U. erst viel später feststellt, daß es nicht die richtige war und dann einiges neu überdenken. Gute Planung ist also immer eine gute Idee, aber keiner kann sagen, daß nur die Lösung x die richtige ist.

Gruß

Christian
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Verknüpfen von Datum: Datentypen unverträglich 2 fragme 95 10. Dez 2013, 17:29
Gast Verknüpfen von Datum: Datentypen unverträglich
Keine neuen Beiträge Access Tabellen & Abfragen: SELECT als Double und Prozent 6 NoFriendOfSQL 397 27. Jul 2011, 08:52
NoFriendOfSQL SELECT als Double und Prozent
Keine neuen Beiträge Access Berichte: Beziehungen mit Datentypen 0 Gast 179 12. Jul 2011, 13:49
Gast Beziehungen mit Datentypen
Keine neuen Beiträge Access Tabellen & Abfragen: Daten aus einem "Integer"-Typ auf ein "String 1 RIGA1 181 25. Mai 2010, 17:40
KlausMz Daten aus einem "Integer"-Typ auf ein "String
Keine neuen Beiträge Access Formulare: Radio Buttons, wer die Wahl hat, hat die Qual 4 Mar_Co 597 29. Okt 2009, 23:00
Mar_Co Radio Buttons, wer die Wahl hat, hat die Qual
Keine neuen Beiträge Access Tabellen & Abfragen: Datentypen in Kriterienausdruck unverträglich 2 flx4000 792 23. Jul 2009, 13:34
flx4000 Datentypen in Kriterienausdruck unverträglich
Keine neuen Beiträge Access Tabellen & Abfragen: Beziehung zwischen Datenbanken, unterschiedliche Datentypen 0 Apocalyptica666 1009 28. Nov 2008, 10:32
Apocalyptica666 Beziehung zwischen Datenbanken, unterschiedliche Datentypen
Keine neuen Beiträge Access Tabellen & Abfragen: Datentypen in Kriterienausdruck unverträglich 3 Gast 1607 14. Dez 2007, 13:35
Gast Datentypen in Kriterienausdruck unverträglich
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten. Access Formulare: suche nach zwei unterschiedlichen Datentypen 1 pezi4u 393 18. Sep 2007, 11:31
KlausMz suche nach zwei unterschiedlichen Datentypen
Keine neuen Beiträge Access Tabellen & Abfragen: Zwei verschiedene Datentypen Joinen 3 DaGunMan 1010 30. Aug 2006, 08:08
lothi Zwei verschiedene Datentypen Joinen
Keine neuen Beiträge Access Tabellen & Abfragen: Datentypen beim Import aus Exceldatei 1 Gast1 812 21. März 2006, 15:43
stpimi Datentypen beim Import aus Exceldatei
Keine neuen Beiträge Access Tabellen & Abfragen: Integer Variabel as Wildcard ? 7 magnum 912 04. Feb 2006, 20:54
jens05 Integer Variabel as Wildcard ?
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Excel Tricks