2016-05-06 5 views
0

In meinem Access iv'e habe ich ein Formular, in dem ich mehrere tabellengebundene (record source) Felder als Currency mit ihrer Tabelle anzeigen möchte Datentyp ist Text.Wie man ein Feld als Währung zeigt, aber mit dem Datentyp Text - Access 2013

Ich kann nicht scheint, dies zu tun. Was ich bisher versucht, dies zu erreichen:

  • ein Format im Control des Feldes Verwenden Sie so (in der Control des Feldes): =Format(MyTextNumber; "Currency") - Ergebnisse in #TYPE Fehlern (Circular reference)
  • Verwendung CCur in der Steuerquelle des Feldes: =CCur(MyTextNumber) - Dies gibt alle 0,00 Beträge (mit dem Währungssymbol obwohl) und auch eine zirkuläre Referenz Fehler im Design.
  • Statt die table als Record in Form ich mit einer Abfrage als Record verwendet, in dem ich ein anderes Feld auf dem Feld erstellt basierend Ich versuche zu ändern: SELECT *, Format(MyTextNumber, "Currency") as MyTextNumberWithFormat FROM SomeTable habe ich dann die MyTextNumberWithFormat als Control, gibt diese gute Werte, aber ich kann Bearbeiten Sie diese Werte nicht direkt, da sie auf einem Ausdruck basieren.
  • Auch versucht, ein verstecktes Feld mit der Steuerelementsource zu erstellen und ein 'leeres Steuerquellenfeld' zu erstellen, das das versteckte Feld als Wert verwendet und dann meine eigene UPDATE-Anweisung schreibt, wenn das Feld geändert wird (konnte dies jedoch nicht erreichen) Arbeit entweder).

Irgendwelche anderen Vorschläge?

Zusätzliche Informationen:

Ich habe auch versucht das Format/Notation auf Währung/Euro in der Registerkarte Formatierung des Feldes gesetzt, aber dies hat auch keine Wirkung, obwohl das, was irgendwie interessant ist das ist Tatsache, dass, wenn ich =Sum(MyField) als Recordsource verwenden, dann funktioniert die Format/Notation Währung funktioniert.

+0

Ja, tat ich. Währung in der Format - Eigenschaft und der Kontrollquelle nur für das Tabellenfeld (tut mir leid, übrigens, dass Recordsource dort Controlsource sein sollte, konnte ich nicht das Wort beim Schreiben der post - adjusted recordsource zu controlsource in der Hauptpost, wo erforderlich) – Nicolas

+2

Text ist Text und Zahlen sind Zahlen. Das Formatieren von 'Sum()' funktioniert, weil es zu einer Zahl führt. Die einzige Sache, die 'Format: Currency' für eine Textspalte tut, ist das Feld rechts auszurichten. Der beste Weg wäre, Ihren Datentyp zu reparieren. Wenn das Feld einen Währungswert enthält, warum nicht in Währung ändern? Alle '= ... Ausdrücke sind immer schreibgeschützt. – Andre

+0

Ah gut zu wissen über die = Ausdruck verwandelt es immer in schreibgeschützt! Leider kann ich das Format nicht in Währung oder irgendeine Zahl für die Angelegenheit ändern. – Nicolas

Antwort

0
SELECT Table1.Test, Format([test],"Currency") AS Expr1 
FROM Table1; 

dies für mich gearbeitet, ich habe Einträge von „£ 123.45“ und „123.45“ und wurden in der Währung dargestellt. Sie hatten ; in Ihrem

+0

Wie gesagt, ich habe das schon getestet (und nicht mit dem; aber mit dem, wie gut) siehe Punkt 3, es ist auch mit dem Komma da. Und obwohl der Wert im Währungsformat korrekt ist, kann ich den Datensatz nicht bearbeiten, weil der Wert "auf einem Ausdruck basiert" ist. Ich möchte die gute Formatierung (Währung) zeigen, aber auch den Wert ändern können. – Nicolas

+0

Könnten Sie einen einmaligen Durchlauf machen, indem Sie dem existierenden Text in der Tabelle das Währungsformat hinzufügen, dann einen Code vor dem Update in das Textfeld einfügen und ihn hinzufügen, wenn er nicht vorhanden ist? wenn mid (textbox1.value, 1,1) <> "£" dann .... –

+0

Danke für den Input Nathan! Nicht ganz sicher, was Sie mit der Before_Update-Anweisung meinen. Könnten Sie ein Beispiel geben? Ich habe versucht, es selbst zu tun, indem ich das Format für den Textbox-Wert (im Form_beforeUpdate-Ereignis) tat, wenn es nicht das Währungssymbol (verwendet den von Ihnen bereitgestellten Mid-Code) hatte, aber das schien nicht zu funktionieren. Private Sub Form_BeforeUpdate (Cancel As Integer) 'Wenn Mid (Me.MyTextBox.Value, 1, 1) <> "€" Dann Me.CorEenheidPrijs.Value = Format (Me.MyTextBox.Value, "Währung") Ende Wenn End Sub' – Nicolas

0

Ergebnissen in #TYPE Fehlern (Circular Referenz)

Dann wird Ihr Textbox, um etwas anderes als MyTextNumber umbenennen.

Verwandte Themen