PDA

Vollständige Version anzeigen : Euro-Formatierung (mal wieder)


gladwig
20.09.2001, 13:43
Mal ne (dumme) Frage:
Ich bin Access-Neuling, hab nur mit MySQL und C, Delphi, PHP, etc. gearbeitet...nun denn, ich hab hier auch ne Anwendung rumliegen, die mal eben auf Euro umgestellt werden soll.
Ok, da die Systemeinstellung noch auf DM steht, muss ich ja ein Format angeben, also z.B. "#.##0,00 €". So, muss ich das sowohl in der Tabelle als auch im Textfeld im Formular angeben? Und was geb ich als Typ in der Tabelle an? Nur Zahl oder gar Währung?
Ich hab alles mögliche an Formaten und Kombinationen ausprobiert...teilweise sieht es ganz gut aus, doch wenn ich in das Feld klicke, um was zu editieren kommen da lauter Unterstriche, wo ich dann die Zahl eingeben soll...oder aus den zwei Nachkommastellen werden beim Editieren vier...

Ich weiss net mehr weiter...dieses Access macht mir zu schaffen :-)

Hilfe! :D

Danke im voraus!

Neumi
20.09.2001, 14:21
Dann solltest du beim Eingabeformat nichts eingeben.
Da werden diese Striche erstellt.

Die Zahl kann Zahl oder Wärung sein, das ist egal.
Die Anzeige kannst du ja auch im Formular formatieren.

Xspire
20.09.2001, 14:28
...oder aus den zwei Nachkommastellen werden beim Editieren vier.

--> Das kommt sehr wahrscheinlich daher, dass die Formatierung in der Tabelle nicht mit der im Formular übereinstimmt.
Check das mal!

gladwig
21.09.2001, 09:39
Gut, danke für die Hilfe, das mit der Formatierung scheint nun endlich zu klappen...es gab noch ein Paar Probleme mit den Nachkommastellen, die immer 00 waren, aber das lag dadran, daß ich als Feldtyp Long Integer eingestellt hatte :o

Aber ich hätte da noch ne Frage:
Und zwar hab ich in einem Formular zwei Felder (DM und Euro) und ich will nun, daß nach dem Eingeben in das DM Feld der entsprechende Betrag im Eurofeld erscheint. Ich hab ne Funktion gemacht, die "beim Verlassen" des DM Feldes aufgerufen wird. Wie greife ich in dieser Funktion auf die Werte in den beiden Feldern zu. "gutEuro = gut / 1.95583" z.B. funktioniert nicht, wobei gut und gutEuro die Namen der Eingabefelder sind. Da kommt dann immer "Variable" nicht definiert...ich kenn mich mit VBA und Access nicht aus und hab im Moment auch nicht so die Zeit ein ganzes Buch durchzulesen...

Kann mir jemand helfen?

Danke im voraus!

MMS
21.09.2001, 15:56
Hi
Private Sub gut_Exit(Cancel As Integer)
Me.gutEuro = Me.gut / 1.95583
End Sub

Me.gutEuro = Euro-Ausgabefeld auf dem Formular

Me.gut = DM-Eingabefeld

Beim Feld gutEuro mußt du "Bei Verlassen" die Eregnisprozedur erstellen. Inhalt von oben

Gruß
MMS

Eic56
21.09.2001, 20:26
'Ich berechne in einer Projektverwaltung den DM-->Euro so
'Nach aktualisierung:
Private Sub EPDM_AfterUpdate()
GP_Pos = Menge * EPDM
GPE = Menge * EPDM / 1.95583

'dabei steht GP_Pos für Eingabefeld Gesamtpreis der Position inDM
'EPDM für den Einzelpreis in DM
'GPE für Gesamtpreis Position in EURO
' die Euro-Eingabefelder sind auch in der Eigenschaft Format auch als EURO formatiert(A2k)

gladwig
25.09.2001, 09:50
Vielen Dank erstmal für die Hilfe! Inzwischen hab ich das hingekriegt und es funktioniert auch alles soweit. Nur ein Problem gibt es noch:

Wie ich schon oben mal gesagt hatte, werden zwar schön zwei Nachkommastellen angezeigt, doch sobald ich in das Feld klicke um eine Eingabe zu machen werden teilweise drei oder mehr Nachkommastellen draus (aber nicht immer). Dasselbe passiert auch, wenn ich der Tabelle was ändere. Ich denke, daß durch den krummen Umrechnungswert (1.95583) halt diese zusätzlichen Nachkommastellen erzeugt wurden und nur durch das Format bei der Anzeige unterdrückt werden. Wie kriege ich es nun hin, daß auch in den Tabellen alle Stellen nach der 2. Nachkommastelle abgeschnitten werden? Ich hab leider noch keine Übersicht über die von Access unterstützen SQL-Befehle gefunden, ROUND() geht jedenfalls nicht.

Weiss da jemand Bescheid?

Squirli
25.09.2001, 11:23
Hallo Gladwig,

ich benutze folgende Funktion um auf 2 Stellen zu runden:

RundenZweiStellen = (Int((Wert * 100) + 0.5)) / 100

Grüße
Squirli

gladwig
27.09.2001, 07:56
Vielen Dank erstmal, das hat bestens funktioniert (wobei ich mich immer noch wundere, daß es dafür keine Funktion in Access gibt...)

Nun denn, zu meinem nächsten Problem im Zuge der Euro-Umstellung:
Und zwar haben wir hier ein Produkt, dessen Preis mit der Euroumstellung geändert wird (abgerundet auf runden Betrag (z.B. 6,50 € statt 6,54 €)). Die Tarife (das Produkt wird sowohl an Endkunden als auch Händler verkauft, daher verschiedene Preise) sind in einer Tabelle gespeichert, der ich jetzt eine neue Spalte mit den neuen Tarifen hinzugefügt habe.
Das Problem dabei ist, daß die alten Verkäufe vor der Umstellund noch mit dem alten Preis berechnet und angezeigt werden sollen, während die Verkäufe nach der Umstellung mit dem neuen Preis berechnet werden sollen. Wenn ein Stück verkauft wird, dann wird nur die Anzahl und der Tarif abgespeichert...
Wie kriege ich es in einem Eingabefeld nun hin, abhängig vom Datum (der Umstellung) entweder den einen oder den anderen Tarif zu benutzen? In dem Formular wird der Tarif und die Stückzahl angegeben und daraus der Preis berechnet und angezeigt...
Ich weiss im Moment nicht, ob es irgendwelche Funktionen gibt, mit denen ich im Eingabefeld eine Art if-Abfrage formulieren kann oder sowas. Gibt es das? Oder irgendeinen anderen Weg?

Danke im voraus!

Squirli
30.09.2001, 16:13
Hallo Gladwig,

ich weiß nicht genau, wo das Problem liegt, ich könnte mir folgende Funktion vorstellen:

If DatSeriell(1;1;2002) > Date() then
Ergebnis = Int((Wert * 10) ) / 10
else
Ergebnis = (Int((Wert * 100) + 0.5)) / 100
end if
Für den 1.1.2002 muss das Umstelldatum eingetragen werden.

Grüße
Squirli