Office: (Office 2003) Dezimalstellen per VBA ändern

Helfe beim Thema Dezimalstellen per VBA ändern in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Leute. Ich lege über VBA eine neue Tabelle an: Code: SQL = "CREATE TABLE tblTest1 (Zahl1 DOUBLE, Text1 CHAR(22));" CurrentDb.Execute SQL Wie... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von duke666, 5. März 2011.

  1. Dezimalstellen per VBA ändern


    Hallo Leute.

    Ich lege über VBA eine neue Tabelle an:

    Code:
    Wie kann ich anschließend über VBA (oder SQL) die Dezimalstellenanzeige des Feldes "Zahl1" von "automatisch" auf "2" umstellen?

    :)
     
    duke666, 5. März 2011
    #1
  2. Wenn du nur 2 Dezimalstellen in der Tabelle haben willst, könntest du Decimal(18, 2) als Datentyp verwenden. Die Anzahl der Dezimalstellen bei Double ist nur eine Layout-Spielerei, die in einer Tabelle eigentlich egal ist. (Ein Tabelle ist normalerweise nicht für die Formatierung zuständig.)
    Du solltest diese Einstellung aber über DAO.TableDef und Dao.Field-Eigenschaften einstellen könnten. Wie die Eigenschaft heißt, weiß ich nicht auswendig (ich tippe auf "Format"). Wenn du per VBA die Feld-Properties durchläufst, wird dir aber bestimmt ein passender Name auffallen.
    Anm.: beim Durchlaufen der Properties darauf achten, dass du ein Tabellenfeld mit dieser Einstellung betrachtest, da das eventuell eine Property ist, die erst bei Bedarf erzeugt wird.

    BTW: "CHAR(22)" .. willst du sicher char und nicht varchar?

    mfg
    Josef
     
    Josef P., 7. März 2011
    #2
  3. Hi.

    Danke für die schnelle Antwort.

    Wenn ich "DECIMAL(18, 2)" angebe, bekomme ich einen "Syntaxfehler in der Felddefinition".
    Die Nachkommastellen sollen für spätere Berechnungen auch erhalten bleiben, nur die Ansicht der Zahl soll auf 2 Stellen gerundet angezeigt werden.

    CHAR oder VARCHAR...
    Was ist da nochmal der Unterschied?
     
    duke666, 7. März 2011
    #3
  4. Dezimalstellen per VBA ändern

    Hallo
    meinst du nicht
    CHR(22)
    anstelle von CHAR(22) *confused.gif* ich weiss zwar auch nicht was für ein (Steuer-)Zeichen chr(22) ist? sein soll.


    SORRY ich bin total daneben *frown.gif*
     
    Lanz Rudolf, 7. März 2011
    #4
  5. Grob gesagt:
    • CHAR-Felder nehmen immer die komplette Breite ein (werden ggf. mit 21 Leerzeichen aufgefüllt, wenn nur ein "A" erfasst wurde).
    • VARCHAR-Felder brauchen wirklich nur den Platz der eingegebenen Zeichenlänge, also entweder 1 oder 22 Bytes.
     
    Arne Dieckmann, 7. März 2011
    #5
  6. \@Arne
    Danke für die Info.
    Irgendwo hatte ich das auch mal ganz weit hinten im Hinterkopf...

    Trotzdem ist mein eigentliches Problem, die Dezimalstellenanzeige eines über "CREATE TABLE" angelegten Tabellenfeldes zu ändern noch ungelöst. Und ich war diesbezüglich auch bei Google erfolglos.

    DECIMAL funktioniert nicht und wäre auch keine Lösung, weil ich über Google auf einen Artikel gestoßen bin, der aussagt, dass es mit solchen Feldern Probleme bei der Sortierung gibt. Und eine Sortierung brauche ich später auch.
     
    duke666, 7. März 2011
    #6
  7. Hi,

    hast du Josefs Tipp mal ausprobiert:
     
    Atrus2711, 7. März 2011
    #7
  8. Dezimalstellen per VBA ändern

    Ups, das hatte ich vollkommen übersehen. Sorry.

    Mal sehen, ob ich das hin bekomme, so wie der Josef das geschrieben hat...
     
    duke666, 7. März 2011
    #8
  9. Oh Mann......

    Solange die Eigenschaft Dezimalstellenanzeige auf automatisch steht, taucht diese in der Eigenschafts-Auflistung nicht auf.
    Stellt man diese z.B. auf "4", dann taucht die Dezimalstellenanzeige als "DecimalPlaces = 4" in der Auflistung auf. Wenn das der Fall ist, kann man sie mit Code:
    auch auf "2" ändern.

    Solange die Eigenschaft aber nicht da ist, kann man ihr auch keinen Wert zuweisen.
    Mit nachfolgendem Code und der Hilfe habe ich versucht die Eigenschaft anzulegen. Das klappt aber nicht bzw. kommt ein Fehler.
    Code:
    Ich wäre dankbar, wenn mir hier jemand weiterhelfen könnte.
     
    duke666, 8. März 2011
    #9
  10. Hi,

    die Property sollte auch den richtigen Typ haben. den hast du nicht angegeben.

    Code:
     
    Atrus2711, 8. März 2011
    #10
  11. Kann man auch direkt in eine zeile packen...

    Code:
     
    Scorefun, 8. März 2011
    #11
  12. Sorry, entweder mache ich etwas falsch oder in deinem Code ist ein Fehler...

    Code:
    Wenn ich den Code mit "Resume Next" laufen lasse, passiert weiter nix, aber die Dezimalstellenanzeige steht danach immer noch auf "automatisch".
    Wenn ich das "Resume Next" auskommentiere, kommt ein Laufzeitfehler, obwohl die Eigenschaft noch nicht existiert.
     
    duke666, 8. März 2011
    #12
  13. Dezimalstellen per VBA ändern

    \@Scorefun
    Damit läuft mein oberer Code. Super.

    In der Hilfe steht, dass die Angabe von Typ und Wert optional ist. deshalb hatte ich sie weggelassen.

    @all
    Was bedeutet Typ "2" ?
     
    duke666, 8. März 2011
    #13
  14. Doch das klappt. Anbei der Beweis.
    Hast du bei dir denn auch ein Doublefeld in Arbeit?
    Hast du die Tabelle im Entwurf danach neu geöffnet?
     
    Atrus2711, 8. März 2011
    #14
  15. Dann gelten aber Standardwerte.


    Dafür habe ich die Props ja aufzählen lassen, damit du die Bedeutung erahnen kannst. Die 2 steht für Byte, da der Property-Type einen der DataTypeEnum-Aufzählungswerte erfordert. SIehe Anhang.
     
    Atrus2711, 8. März 2011
    #15
Thema:

Dezimalstellen per VBA ändern

Die Seite wird geladen...
  1. Dezimalstellen per VBA ändern - Similar Threads - Dezimalstellen VBA ändern

  2. Auf- oder Abrunden einer Zahl auf die gewünschten Dezimalstellen

    in Microsoft Excel Tutorials
    Auf- oder Abrunden einer Zahl auf die gewünschten Dezimalstellen: Auf- oder Abrunden einer Zahl auf die gewünschten Dezimalstellen Excel für Microsoft 365 Excel für Microsoft 365 für Mac Excel für das Web Excel 2019 Excel 2016...
  3. Ändern des Zeichens, das zum Trennen von Tausenden oder Dezimalstellen verwendet wird

    in Microsoft Excel Tutorials
    Ändern des Zeichens, das zum Trennen von Tausenden oder Dezimalstellen verwendet wird: Ändern des Zeichens, das zum Trennen von Tausenden oder Dezimalstellen verwendet wird Excel für Microsoft 365 Excel 2019 Excel 2016 Excel 2013 Excel 2010...
  4. Mergefield Zahl ohne Dezimalstellen ausdrücken

    in Microsoft Word Hilfe
    Mergefield Zahl ohne Dezimalstellen ausdrücken: Hallo, kann mir jmd. erklären, wie ich bei der Serienbrieffunktion in Word den von Excel einzufügenden Datensatz - wenn es eine Zahl ist - so in Word einstelle, dass eine ganze Zahl und nicht...
  5. Code für Ermittlung der Anzahl der Dezimalstellen?

    in Microsoft Excel Hilfe
    Code für Ermittlung der Anzahl der Dezimalstellen?: Ich möchte innerhalb von VBA den Maximalwert der Anzahl der Dezimalstellen > 0 von verschiedenen Zahlen in Zellen ermitteln. Beispiel: Zelle 1: 100,35 -(Ergebnis 2) Zelle 2: 3,01 - (Ergebnis 2)...
  6. [Word 2010] Bei Summenformel wird der Punkt als zweite Zahl betrachtet

    in Microsoft Word Hilfe
    [Word 2010] Bei Summenformel wird der Punkt als zweite Zahl betrachtet: Ich möchte eine Rechnung mit englischen Beträgen schreiben. Der Dezimaltrenner ist als ein Punkt. Wenn ich diese Zahlen nun eingebe und in meiner Tabelle am Schluss mit der Summenformel zusammen...
  7. Dezimalstellen falsch Importiert; Kommastelle als 1000er Trennpunkt

    in Microsoft Excel Hilfe
    Dezimalstellen falsch Importiert; Kommastelle als 1000er Trennpunkt: Hallo, ich habe eine Datei in Excel Importiert, dort wurden die Dezimalstellen nicht richtig erkannt. Teilweise wurde das Komma durch ein "Tausender Trennpunkt" ersetz. zb.: 38,533 = 38.000...
  8. Problem mit ZÄHLENWENN Funktion mit Zahlen mit Dezimalstelle

    in Microsoft Excel Hilfe
    Problem mit ZÄHLENWENN Funktion mit Zahlen mit Dezimalstelle: Hallo, ich weiß nicht mehr weiter :-) Ich versuche aus einer Spalte mit einigen Hundert Zahlenwerten zwischen 0 und 9 herauszufinden wie oft der Wert 2 vorkommt. Mit ZÄHLENWENN eigentlich kein...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden