Ich habe ein Problem in einem Formular.
Es soll dort normalerweise immer der Nettobetrag eingegeben werden. Der
Bruttobetrag wird dann errechnet.
Falls jetzt einer einmal einen "runden" Bruttobetrag als Ergebnis will, habe
ich ein ungebundenes Feld eingefügt, in dem er das gewünschte Ergebnis
eintragen kann. Sagen wir 12.000 DM.
Daneben ist eine Schaltfläche, die den Netto-Wert mit Hilfe eines Makros
berechnet und in das Feld "NettoBetrag" einträgt.
Dazu verwende ich den Makro-Befehl "SetzenWert" und den Ausdruck
"[Brutto]/(1-[MwStSatz])"
Das Makro errechnet auch den richtigen Betrag. Aber bei der Übergabe an das
Feld "NettoBetrag" erhalte ich dann eine Fehlermeldung:
"Der von Ihnen eingegebene Ausdruck ist syntaktisch falsch oder Sie müssen
ihn in Anführungszeichen setzen"
Tippe ich den gleichen (bei "Halt" angezeigten) Ausdruck manuell in das Feld
also z.B. "10475,236589" so ist alles ok.
Lasse ich den Wert ohne Kommastellen errechnen
"INT("[Brutto]/(1-[MwStSatz]))", so wird er auch problemlos verarbeitet.
Alle Felder sind als Währung formatiert.
Weiß jemand wo das Problem liegt? - So wie es im Moment läuft, krieg ich als
Ergebnis nicht 12.000DM sondern 11.999,94DM und das ist nicht so optimal.
Danke
Stefan
Wohl ein Problem mit "Komma" und "Punkt"?
oder fehlt das "="?
Gebundenes Control oder ungebundenes?
wohin willst du denn schreiben?
oder versuchst du eine Formel zu speichern?
oder änderst du die falsche Eigenschaft?
oder ...
Was machst du denn, wo und wie?
Erklär mal genauer.
Petra
--
Hilfreich sind oft die FaQs von http://www.donkarl.com/
Ich hab ein Feld in einem Formular das heißt [BetragSchätzung]
In dieses Feld soll ein von einem Makro errechneter Betrag eingetragen
werden. Dieser Betrag errechnet sich aus zwei anderen Feldern im gleichen
Formular:
Die Formel dafür wäre: [BetragSchätzung]=[Bruttowunsch]/(1+[MwSt])
Das Makro für die Berechnung lautet:
Makroname: Bruttorechner
Aktion: SetzenWert
-> Feld: [BetragSchätzung]
Ausdruck:
=([Formulare]![E_Kostenschätzung]![Bruttowunsch]/(1+[Formulare]![E_Kostensch
ätzung]![MwSt]))
Gebe ich jetzt in das Feld [Bruttowunsch] "1.000 DM" ein, so kommt die
Fehlermeldung:
"Der von Ihnen eingegebene Ausdruck ist syntaktisch falsch, oder Sie müssen
den Text zwischen Anführungszeichen setzen.
..."
Makroname: Formulare.Bruttorechner
Bedingung: Wahr
Aktionsname: SetzenWert
Argumente: [BetragSchätzung];862,068968174999 (Beispiel)
Irgendwie ist das ein Fehler mit dem Komma. Wenn ich nämlich die Formel mit
INT(....) so ändere, dass nur ganze Zahlen als Ergebnis kommen, dann
funktioniert das Makro und trägt den gerundeten Wert auch in das richtige
Feld ein.
Weißt du, was ich da vergessen habe?
Danke
Stefan
Genau da seh ich auch den Fehler: Access (Eigentlich das VBA dahinter) ist
manchmal bei Punkt und Komma sehr sensibel.
Da ich allerdings mit Makros nie einen Wert belegt habe, sondern nur
Formulare, Berichte und Abfragen starte, ist folgendes nur ein Versuch:
(Weiter unten kommt dann ein besserer Vorschlag!)
Falls du es unbedingt über ein Makro lösen möchtest gehts (vielleicht) so:
Du brauchst ein weiteres Feld [BetragSchätzungString] (als Text)
Zuerst setzt du
Aktion: SetzenWert [BetragSchätzungString]
Ausdruck: =([Formulare]![E_Kostenschätzung]![Bruttowunsch]
/(1+[Formulare]![E_Kostenschätzung]![MwSt]))
und dann:
Aktion: SetzenWert [BetragSchätzung]
Ausdruck:
=replace([Formulare]![E_Kostenschätzung]![BetragSchätzungString];
"," ; "." )
Könnte sein, dass das ganze auch als 1 Ausdruck funktionieren würde, und die
Funktion heißt vielleicht replaceStr. Und außerdem handelst du dir eine
Menge Probleme ein, falls mal das Ergebnis ohne Komma ausfallen würde (z.B.
bei 118 DM) oder falls sich die Windows Standard-Ländereinstellung des
Zahlenformats mal ändert, ...
Also ich würde nie zu so einer Lösung greifen.
[ ... Denkpause ... ]
Viel einfacher und eleganter könntest du das über VBA lösen:
Beim Button [BetragBerechnen] die Eigenschaft "Beim Klicken" auf
[Ereignisprozedur] stellen, und den Code (über [ooo]) eingeben:
Public Sub BetragBerechnen_Click()
[BetragSchätzung]=[Bruttowunsch]/(1+[MwSt])
End Sub
Das wäre alles.
Da ich vermute, dass du mit VBA noch nicht viel auf dem Hut hast ist das
natürlich ein Einstieg in eine neue Dimension, und ich wünsch dir viel Spaß
dabei. Am anfang mags recht verwirrend sein, aber mit meiner exakte
Anleitung schaffst du das sicher.
:-)
Liebe Grüße
Petra
PS: Fast alles [außer globale Keys und autoexec] was du mit Makros machen
kannst kannst du VIEL besser, einfacher, eleganter und kontrollierbarer über
VBA im Formular lösen.
Ich halte Makros für sehr selten sinvoll.
In article <Ozqc5vRhAHA.2104@tkmsftngp05>,
"Stefan Dötschel" <hueppe....@t-online.de> wrote:
> Hallo Petra, danke erstmal für die Nachfrage.
> Also, dann versuch ichs nochmal:
>
> Ich hab ein Feld in einem Formular das heißt [BetragSchätzung]
>
> In dieses Feld soll ein von einem Makro errechneter Betrag eingetragen
> werden. Dieser Betrag errechnet sich aus zwei anderen Feldern im
gleichen
> Formular:
>
> Die Formel dafür wäre: [BetragSchätzung]=[Bruttowunsch]/(1+[MwSt])
>
> Das Makro für die Berechnung lautet:
>
> Makroname: Bruttorechner
> Aktion: SetzenWert
> -> Feld: [BetragSchätzung]
Wenn etwas in ein Formularfeld eingetragen werden soll, dann muss hier,
wie im Ausdruck auch der Bezug auf das Formular stehen, also:
[Formulare]![E_Kostenschätzung]![BetragSchätzung]
> Ausdruck:
> =([Formulare]![E_Kostenschätzung]![Bruttowunsch]/(1+[Formulare]!
[E_Kostensch
> ätzung]![MwSt]))
>
> Gebe ich jetzt in das Feld [Bruttowunsch] "1.000 DM" ein, so kommt die
> Fehlermeldung:
> "Der von Ihnen eingegebene Ausdruck ist syntaktisch falsch, oder Sie
müssen
> den Text zwischen Anführungszeichen setzen.
> ..."
>
[...]
Sind die Textfelder alle als Waehrung bzw. Prozentzahl formatiert?
Wieso traegst Du die Formel nicht direkt in den Steuerelementinhalt
Deines Feldes [BetragSchaetzung] ein? Dann brauchst Du die ganze Makro-
Aktion auch nicht mehr. (BTW Makro:Igitt;-))
Uebrigens wirst Du immer Rundungsdifferenzen haben, da Acc mit Runden
so seine Probleme hat. Siehe dazu auch die FAQ unter
http://www.donkarl.com
HTH
Eric
Sent via Deja.com
http://www.deja.com/
Ich kann das nicht direkt ins Steuerfeld eintragen, da ich normalerweise
dort den Nettobetrag eintrage und das Berechnen nur dann brauche, wenn ich
ausnahmsweise mal einen Bruttobetrag vorgegeben bekomme.
Das andere probiere ich mal aus, oder ich machs über VB, wie Petra es unten
erklärt hat
Stefan
Ich werde das mit VB mal ausprobieren. Makros sind ja wie es scheint nur
eine Zwischenlösung. Ich hab mich bislang um VB noch rumgedrückt, weil ich
kein Programmierer bin und diese Erstellung von Anwendungen in ACCESS
nebenbei mache (weils nichts vernünftiges zu kaufen gibt - entweder zu
einfach oder viel zu kompliziert die Programme).
Bislang konnte ich auch alles mit Makros machen.
Aber vielleicht sollte ich mich jetzt darauf stürzen und mit deiner
Anleitung scheint es ja auch einfach zu sein. :)
Gruß
Stefan
dass mit VBA wuerde ich Dir auch empfehlen, deshalb ja auch meine
spontane Unmutsaeusserung: Makros, Igitt! ;-))
Bei Problemen mit der Umsetzung meldest Du Dich ja sicherlich nochmal,
deshalb erstmal keine direkten Loesungsversuche von mir :-))
Gruss,
klappt wunderbar mit VBA.
danke nochmal
Stefan
"Petra Bridarolli" <nob...@nowhere.nw> schrieb im Newsbeitrag
news:us5HokShAHA.2104@tkmsftngp05...
Petra