PDA

Vollständige Version anzeigen : Problem mit Zahlenformat


marvin von traal
23.03.2004, 13:00
Hallo Leute,

habe folgendes Problem:

Ich habe eine MDB in die Daten aus einem Textfile importiert werden (Felder durch semikolon getrennt). In einer Spalte befinden sich Zahlenwerte, die standardmäßig als Dezimaltrenner einen Punkt haben. In der Import Spec. habe ich das auch so definiert. Jetzt kann es aber sein, dass ein negativer Wert mit dem - nach der Zahl geliefert wird. Dies wird von Access dann nicht verarbeitet, wenn ich in der Spec. das Feld als double definiere. definiere ich es aber als text - um manuel das - nach vorne zu holen - und will es dann in die Tabelle als Zahl schreiben und habe in meiner Systemeinstellung ein Komma als Dezimaltrennzeichen definiert, wird aus bspweise 123.45 12345,00. Mein Problem ist jetzt, dass verschiedene Anwender natürlich verschiedene Einstellungen in den Regional Options haben.
Wie bekomme ich Access dazu, mir diese Zahl - am besten unabhängig der Systemeinstellung - richtig zu formatieren? Ich habe bereits versucht den String auseinander zu nehemen und wieder zusammen zu setzten. hat leider auch nicht geklappt.

Wer kann mir helfen?

Paul.Ostermeier
23.03.2004, 14:24
es ist nicht unbedingt üblich, dass das Vorzeichen einer Zahl hinter der eigentlichen Zahl geliefert wird - insofern wirst Du Dir mit dem Import-Assistenten alleine schwer tun - die Schuld dafür trägt Deine CSV -Datei.....

vermutlich wäre es am "saubersten", wenn Du Deine CSV Datei "vorbehandelst

um dazu einen funktionierenden Vorschlag zu machen, wäre es hilfreich die CSV-Datei in ihrer bisherigen Form zumindest auszugsweise zu kennen ......

ansonsten sind die Stichworte für Forum oder Onlinehilfe

"Open ... For Input As" "Line Input" ; "Replace"

reinir
23.03.2004, 15:06
Function CnvZahl(DZahl As String) As Double
If DZahl = "" Then Exit Function
Select Case Right(DZahl, 1)
' Minus vorhanden
Case "-"
CnvZahl = Replace(Left$(DZahl, Len(DZahl) - 1), ".", ",")
CnvZahl = CnvZahl * -1
' positive Zahl
Case Else
CnvZahl = Replace(DZahl, ".", ",")
End Select
End Function<hr>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)


nach meinen Tests hier ergab
123.45 nach Aufruf der Function 123,45
123.45- nach Aufruf der Function -123,45