Access 2007 Wie den richtigen Preis mit wenn-Formel ermitteln?
Hey..
Vorab möchte ich sagen, das ich kein Access-Profi bin. ;o)
Ich habe ein Problem mit der richtigen Formel. Vielleicht könnt
ihr mir ja helfen?
Ich habe eine "Gebühren"-Tabelle mit den Preisen 40EUR als
Normalpreis und 20EUR für Kinder.
Desweiteren habe ich eine "Teilnehmer"-Tabelle mit einen
Ja/Nein-Feld zum anklicken, ob es ein Normalpreis ist oder der
für Kinder.
Nun möchte ich ein "Teilnehmer"-Formular erstellen, wo
automatisch der richtige Preis angezeigt wird.
Mir ist nur folgende Formel eingefallen:
=wenn([Kind];20;40)
Ich möchte aber in der Formel keinen Preis festlegen, falls
Preiserhöhungen entstehen könnten.
Wie kann ich sagen, das er die jeweiligen Preise aus meinen
Tabellen entnehmen soll?
Könnt ihr mir helfen?
Antwort schreiben
Antwort 1 von rolandaa vom 18.09.2020, 22:59 Options
hallo,
du musst entweder in eimen textfeld oder in einer seperaten tabelle die beiden preise hinterlegen.
z.b. zwei textfelder im formular, name textfeld1 = npreis, standardwert =40, name textfeld2 = kpreis, standardwert =20, name des ja/nein feld = preis
dannn würde die formel im anzeigetextfeld folgendemaßen aussehen:
=wenn([preis]=ja;[npreis];[kpreis])
gruß rolandaa
Antwort 2 von coyote vom 19.09.2020, 12:07 Options
Vielen Dank für die schnelle Antwort. ;o)
Wenn ich jetzt aber Standardwerte vorgebe, denn nimmt er
auch im Falle einer Preiserhöhung nur diese Werte, richtig?
Ich würde gerne das er immer nur die Werte nimmt die ich in
das Formular eingebe. Da ich auch verschiedene Kurse gebe.
Ich habe noch mal versucht eine Wenn-Formel zu nehmen.
Aber er schreibt immer etwas von >>Ausdr<<
=Wenn([Kind]; «Ausdr» [Gebühren]![Kursgebühr K] ; «Ausdr»
[Gebühren]![Kursgebühr N] )
Muss ich da für >>Ausdr<< etwas einsetzen??
Antwort 3 von rolandaa vom 19.09.2020, 23:20 Options
hallo,
vorab, das feld muss nicht mit einem standartwert belegt werden, sondern kann auch leer bleiben, dann muss (ich denke wie du willst) immer ein wert zum berechnen eingegeben werden.
dann zu dem >>Ausdr<<
das ding kann gelöscht werden, weist nur darauf hin das ein ausdruck eingegeben werden muss. passiert immer nur dann denn die formel über den assistent erstellt wird.
allerdings wird (so wie es aussieht) deine formel nicht funktionieren, denn es fehlt tatsächlich der ausdruck.
folgende logik der wenn formel:
=wenn([Kind]=ja;[Gebühren]![Kursgebühr K] ;[Gebühren]![Kursgebühr N])
diese formel lautet als text in etwa: wenn (das ja/nein feld [Kind] = ja; dann nimm den wert aus dem textfeld [Gebühren]![Kursgebühr K]; sonnst nimm den wert aus dem textfeld [Gebühren]![Kursgebühr N])
gruß rolandaa
Antwort 4 von coyote vom 20.09.2020, 01:18 Options
Hey.. ich noch mal...
Danke schön für die super Erklärung. So langsam fange ich an
Access zu verstehen. ;o)
=wenn([Kind]=ja;[Gebühren]![Kursgebühr K]
;[Gebühren]![Kursgebühr N])
Diese Formel habe die Formel habe ich jetzt so eingegeben,
aber leider schreibt er mir immer "#Name?".
Ich habe folgendes probiert:
Bei Steuerelementinhalt -> die Formel eingegeben;
Bei Steuerelementinhalt -> "Kursgebühr" angeklickt;
Bei Gültigkeitsregel -> die Formel eingegeben;
Bei der Formel habe ich die Gebühren mal aus der Tabelle
"Gebühren", mal aus der Abfrage "Teilnehmer" und mal aus
dem Formular "Teilnehmer" berechnen lassen.
Ich weiß echt nicht mehr weiter.. -.-
LG Coyote
Antwort 5 von rolandaa vom 20.09.2020, 15:36 Options
hallo,
wenn im textfeld die meldung "#Name" erscheint liegt es im normalfall daran das ein oder mehrere zur formel verwendeten textfelder nicht den richtigen namen haben.
d.h. das ja/nein feld muss den namen "Kind" haben, die herkunft des steuerelementinhaltes ist egal.
das textfeld aus dem formular "Gebühren" muss "Kursgebühr K" heißen usw.
daten können grundsätzlich nur von formularen oder einem unterformular oder einem kombinationsfeld übernommen werde. mein fehler, mir ist nicht aufgefallen das du die werte direkt aus abfragen übernommen hast.
erstelle ein formular name "Gebühren" mit datenherkunft aus deiner abfrage, und im hauptformular bzw. in der formel verwendest du dann [Formulare]![Gebühren]![Kursgebühr K] usw.
sende mir doch mal die db zu.
rolandaa
Antwort 6 von coyote vom 20.09.2020, 17:34 Options
Hey..
oh man du hast echt schwer mit mir. Tut mir echt leid.
Aber es funktioniert immer noch nicht. Ich würde dir gerne mal
die db schicken, aber ich habe dich nicht gefunden.
An welche Adresse soll ich sie schicken? Ich habe auch meine
ICQ-Nummer angegeben, falls ich es darüber schicken soll..
Nochmals vielen vielen Dank für deine Mühen!!!
LG Coyote
Antwort 7 von rolandaa vom 20.09.2020, 20:16 Options
schick es an
rolandaa@gmx.de
Antwort 8 von coyote vom 22.09.2020, 13:46 Options
Hey..
Ich habe es geschafft, das die richtigen Gebühren
(Kind/Normalpreis) aus dem Gebühren-Formular genommen
werden.
Aber nur, wenn das Formular "Gebühren" auch geöffnet ist,
ansonsten steht nur "#Name?" da..
Wie kann ich das richtig einstellen?
LG Coyote
Antwort 9 von rolandaa vom 22.09.2020, 14:51 Options
Hallo,
entweder du öffnest das formular gebühren immer als erstes (kann auch ausgeblendet sein) oder es gäb da noch eine möglichkeit:
erstelle ein kombinationsfeld (bzw. zwei "KursE")
daten:
name -> KursK
herkunftstyp -> tabelle/abrage
datensatzherkunft -> inhalt deines formulars gebühren (sprich die abfage)
standartwert -> =[KursK].[ItemData] (0)
das ding macht folgendes, es enthält den inhalt deiner abrage, wie ein endlosformular (dateninhalt kann auch inhalt einer tabelle sein).
durch den zusatz ItemData wird die entsprechende zeile in dem fall die erste (access beginnt das zählen mit 0) angezeigt.
das ganze kann auch noch erweitert werden wenn die abrage z.b. drei spalten enthält durch :
format:
spaltenzahl -> 3
spaltenbreite -> 2cm;2cm;2cm
listenbreite -> 6cm
jetzt werden im kombinationsfeld 3 spalten angezeigt.
mit einem erstellten textfeld (bzw. zwei) kann der inhalt der z.b. 3 spalte angezeigt werde:
steuerelementinhalt -> =[KursK].[Column](2)
gruß
rolandaa