Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Zellenwert im Formularfeld begrenzen

Begonnen von Chris777777, Dezember 19, 2017, 13:56:46

⏪ vorheriges - nächstes ⏩

Chris777777

Hallo zusammen,

ich habe ein Formular erstellt, indem u. a. das Feld "Kapazität" existiert. Die Kapazität reicht bis max. 100. Ein Benutzer trägt z.B. 60 in das Feld ein. Somit bleibt eine Restkapazität von 40 über. Wenn nun ein anderer Benutzer versucht 50 einzutragen, soll eine Fehlermeldung erscheinen, da die Kapazität überschritten wird. Ist sowas möglich?
Kann zudem die Restkapazität angezeigt werden, sodass die Benutzer wissen, wie viel Kapazität noch zur Verfügung steht?
VG
Chris

Beaker s.a.

Hallo Chris,
1. Gültigkeitsregel auf Tabellen-/Feld-Ebene
<=100
2.
Me.DeinRestFeld = 100 - Me.DeinBelegtFeld

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Chris777777

Hallo,
1. klappt super. Jedoch kann ich nun unendlich viele verschiedene Datensätze mit einer Kapazität von bis zu 100 speichern. Jeder Datensatz wird doch in einer Tabelle gespeichert. Wenn ich nun verschiedene Datensätze eingebe, z.B. Datensatz1=20, Datensatz2=50, Datensatz3=10, dann soll der Eintrag beim 4. Datensatz auf max. 20 beschränkt sein, da die Gesamtkapazität bei 100 liegt. Somit müsste das Formularfeld schon beim Eintrag auf die gespeicherten Einträge in der Tabelle zugreifen. Das das auch möglich?
VG,
Chris

Beaker s.a.

Hallo Chris,
Me.DeinBelegtFeld muss natürlich die Summe aus den DS beinhalten.
Luftcode ohne Kenntnis der Objektnamen und Zusammenhänge
=DomSumme("belegt";"DeineTabelle";"Bedingung")
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Chris777777

Hi,

das Feld in der die Kapazitäten eingetragen werden heißt "Paletten", z.B. 50
die dazugehörige Tabelle heißt "tblkapazität"
die Bedingung <=100
Somit:
=DomSumme("Paletten";"tblkapazität";"<=100"). Dies habe ich unter Gültigkeitsregel eingetragen.
Allerdings erhalte ich nun die Fehlermeldung: Syntaxfehler, fehlender Operator.
Was mache ich falsch?
Gruß,
Chris

steffen0815

Hallo,
du musst das Feld noch aufführen für welches die Bedingung gilt.=DomSumme("Paletten";"tblkapazität";"Paletten<=100")
Gruß Steffen

Chris777777

Bekomme immer noch die gleiche Fehlermeldung. Ich gebe den Code unter Gültigkeitsregel im Feld "Paletten"
Muss ich das irgendwo anders eintragen?
Gruß,
Christoph


Chris777777

Das funktioniert auch nicht...
Nun erhalte ich die Fehlermeldung, dass "der von Ihnen eingegebene Wert nicht der Gültigkeitsprüfungsregel genügt, die für das Feld bzw. Steuerelement definiert ist.
Gruß,
Christoph

steffen0815

#9
Hallo,
auf Tabellenebene funktioniert das nicht, weil da die Domänen-Funktionen nicht zur Verfügung stehen.

Gib in das Formularfeld "Gültigkeit" folgendes ein:DomSumme("Paletten";"tblkapazität";"[id]<>" & [id])+[paletten]<=100

Das Feld "ID" ist dein eindeutiger Datensatzkenner.
Gruß Steffen

Chris777777

Nun erhalte ich die Fehlermeldung "Typenkonflikt".
Da ich Access Anfänger bin, liste ich jetzt nochmal detailliert auf, was ich gemacht habe. Vielleicht habe ich irgendwo einen Anfängerfehler gemacht.

Ich habe zunächst eine Tabelle erstellt. Das Feld "Paletten" habe ich als Felddatentyp "Zahl" hinterlegt, da hier nur Zahlen eingetragen werden müssen. Danach habe ich in der Kategorie Feldüberprüfung über das Dropdown-Menü "Überprüfung" bei "Feldüberprüfungsregel" <=100 eingegeben, damit in diesem Feld nicht mehr als eine Kapazität 100 eingetragen werden kann.
Danach habe ich aus der Tabelle ein gebundenes Formular erstellt. Im Formularfeld "Paletten" unter Gültigkeitsprüfungsregel habe ich die von Euch genannten Codes eingestellt, jedoch ohne Erfolg. (Unterschiedliche Fehlermeldungen: Syntax-Fehler, Typenfehler, etc.)
Ziel soll es sein auch die Gesamtkapazität auf 100 zu begrenzen. Bsp.: 1. Datensatz = Eintrag von einer Palettenanzahl von 20. Dieser Datensatz wird dann in der Tabelle gespeichert. Somit ergibt sich eine Restkapazität von 80 Paletten. Der nächste Eintrag erfolgt beispielsweise über 70 Paletten. Somit ist nur noch eine Restkapazität von 10 übrig. Im nächsten Datensatz dürfen also nur noch bis zu 10 Paletten eingetragen werden. Sobald 11 oder mehr Paletten eingetragen werden, muss eine Fehlermeldung erscheinen.
Vielen Dank für Eure Geduld.
VG,
Chris

steffen0815

Hallo,
lade am besten mal deine BeispielDB hoch.
Gruß Steffen


steffen0815

#13
Hallo,
also Fotos von deiner DB helfen nicht weiter. Lade die DB selbst als *.zip (evtl. mit "Spieldatensätzen") hoch.
Gruß Steffen

Lachtaube

Der Speicherplatzverbrauch Deiner 3 Bilder entspricht ca. 10 Beispieldatenbanken mit einer handvoll Formularen und Tabellen.

PS: wenn schon Screenshots hochgeladen werden, verwende doch bitte das png-Format - jpg-Bilder sollten man für Fotografien reservieren.
Grüße von der (⌒▽⌒)