Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Access 2007 Wie den richtigen Preis mit wenn-Formel ermitteln?





Frage

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 1 von rolandaa

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

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

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

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

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

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

schick es an

rolandaa@gmx.de

Antwort 8 von coyote

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

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

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: