der unwissende: SQL-Select Anweisung mit Dezimalstellenangabe

SELECT DISTINCT tblAdressen.ID, tblAdressen.Nachname,tblAdressen.Vorname, tblSpracheFachgebiet.Wortpreis, tblSpracheFachgebiet.Preis FROM ((((tblAdressen LEFT JOIN tblÜbersetzerEditor ON tblAdressen.ID = tblÜbersetzerEditor.ÜSID) LEFT JOIN tblÜbersetzerPlattform ON tblAdressen.ID = tblÜbersetzerPlattform.ÜSID) LEFT JOIN tblÜbersetzerTool ON tblAdressen.ID = tblÜbersetzerTool.ÜSID) INNER JOIN tblÜbersetzerSprache ON tblAdressen.ID = tblÜbersetzerSprache.ÜbersetzerID) INNER JOIN tblSpracheFachgebiet ON tblÜbersetzerSprache.ID = tblSpracheFachgebiet.SprachkombinationID GROUP BY tblAdressen.ID, tblAdressen.Nachname, tblAdressen.Vorname ORDER BY tblSpracheFachgebiet.Preis;

Hallo zusammen, ich hab folgendes Problem:
In einer Access-DB in der Tabelle tblSpracheFachgebiet gibt es u.a. ein Feld namens Preis und Wortpreis. Der Feldtyp ist auf Währung und 4 Dezimalstellen eingestellt, z.B 0,0421Euro. Im Frontend der Datenbank kann man jetzt in einem Formular eine Sprachkombination und ein Fachgebiet auswählen und bekommt in einem neuen Formular eine Liste mit passenden Übersetzern und deren Preisen angezeigt(Wortpreis und Preis). Aber was ich auch mache, es werden immer nur 2 Dezimalstellen angezeigt, anstatt der benötigten 4 und zwar gerundet, z.B. 0,05Euro statt 0,0453Euro. Die Formularanzeige beruht auf obiger Abfrage. Weiss jemand wie ich diese Umformulieren muss um die 4 Dezimalstellen angezeigt zu bekommen? Oder gibt es eine andere Lösung? Ich bin für jeden Tip sehr dankbar weil ich schon viel zu lange daran rumbaue.

  1. Hallo,

    In einer Access-DB in der Tabelle tblSpracheFachgebiet gibt es u.a. ein Feld namens Preis und Wortpreis. Der Feldtyp ist auf Währung und 4 Dezimalstellen eingestellt, z.B 0,0421Euro. Im Frontend der Datenbank kann man jetzt in einem Formular eine Sprachkombination und ein Fachgebiet auswählen und bekommt in einem neuen Formular eine Liste mit passenden Übersetzern und deren Preisen angezeigt(Wortpreis und Preis). Aber was ich auch mache, es werden immer nur 2 Dezimalstellen angezeigt, anstatt der benötigten 4 und zwar gerundet, z.B. 0,05Euro statt 0,0453Euro.

    Was ist das für ein Formular? In einem Access-Formular kann man die Formularelemnte auch nochmal formatieren. Schau in den Entwurf des Formulars bei den Eigenschaften des Formularelements, welches die Zahl anzeigt, ob dort auch 4 Nachkommastellen eingestellt sind.

    Es ist allerdings eine _sehr_ schlechte Idee, den Felddatentyp "Währung" zu benutzen. Er ist in keinem Standard definiert, bringt also spätestens beim Datenaustausch mit anderen DBMS Probleme. Benutze den Datentyp Zahl in der Feldlänge double. Benutze maximal das _Format_ Währung. Diese Formatierung würde ich allerdings auch _nicht_ auf die Tabelle anwenden, sondern _nur_ dort, wo es auf die Ausgabe ankommt, frühestens also in Abfragen, am häufigsten in Formularen und Berichten.

    viele Grüße

    Axel

    1. Vielen Dank für deine Antwort Axel,
      so leicht ists aber leider nicht. Das Formular ist ein ungebundenes Listenfeld, in der Entwurfsansicht einfach nur eine weisse Fläche, in die mittels der oben geposteten Abfrage die Daten gelistet werden. In den Eigenschaften lassen sich dort keine Dezimalstellen angeben, auf diese Art habe ich schon andere Felder formatiert, hier gibt es diese Option leider nicht. Dieses Formular besteht einzig auch nur aus diesem ungebundenen Listenfeld und öffnet sich beim Klick auf einen Such-Button ein Formular davor. Mittels VBA wird beim Öffnen die SQL-Anweisung ausgeführt, deshalb dachte ich ich muss vielleicht diese Select-Anweisung so ändern, dass sie die Daten mit 4 Dezimalstellen anstatt 2 ausgibt(falls dies mit einem format-Befehl in SQL überhaupt möglich ist). Ich bin hier Praktikant und habe leider keinen Ansprechpartner hier wenn ich mal an nem Problem hänge so wie jetzt, deshalb bin ich auch weiterhin für alle Hilfen sehr dankbar.
      grüsse

      1. Hallo,

        so leicht ists aber leider nicht. Das Formular ist ein ungebundenes Listenfeld,

        Aha. Die Items in Listenfeldern sind Texte. Diese kannst Du im SELECT vorformatieren. Etwa:
        SELECT ... Format([tblSpracheFachgebiet.Preis],"0.0000 \E\U\R") AS Preisformatiert ...

        Das Preisformatiert bindest Du dann an das Listenfeld.

        viele Grüße

        Axel