collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 79
  • Punkt Versteckte: 2
  • Punkt Mitglieder: 3
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 14063
  • stats Beiträge insgesamt: 67494
  • stats Themen insgesamt: 9097
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Zellenwert im Formularfeld begrenzen  (Gelesen 3926 mal)

Offline Chris777777

  • Newbie
  • Beiträge: 42
Re: Zellenwert im Formularfeld begrenzen
« Antwort #15 am: Dezember 22, 2017, 13:48:11 »
Ok. Wusste ich nicht.
Ich weiß allerdings auch nicht, wie ich eine ZIP-Datei erstelle bzw. wie die Access-Datei als ZIP speichere...
 

Offline steffen0815

  • Access-Profi
  • **
  • Beiträge: 131
Re: Zellenwert im Formularfeld begrenzen
« Antwort #16 am: Dezember 22, 2017, 13:54:55 »
Hallo,
Windows-Explorer -> Rechte Maustaste auf die DB-Datei -> Senden an -> ZIP-komprimierter Ordner
Gruß Steffen
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7420
Re: Zellenwert im Formularfeld begrenzen
« Antwort #17 am: Dezember 22, 2017, 13:56:05 »
Hallo,
zippen ist eine Windowsfunktion. Rechtsklick auf die Datei > Senden > an Zip komprimierten Ordner.

Vorher das Access Dienstprogramm "komprimieren reparieren" anwenden. Findest Du bei den Tools.
Gruß
Klaus
 

Offline Chris777777

  • Newbie
  • Beiträge: 42
Re: Zellenwert im Formularfeld begrenzen
« Antwort #18 am: Dezember 22, 2017, 14:03:44 »
Ich hoffe so klappt.
Vielen Dank für Eure Geduld
VG,
Chris
 

Offline steffen0815

  • Access-Profi
  • **
  • Beiträge: 131
Re: Zellenwert im Formularfeld begrenzen
« Antwort #19 am: Dezember 22, 2017, 14:08:22 »
Hallo,
hmm, auf einen ersten Blick scheint deine DB zu funktionieren.
Wo ist genau das Problem?

Btw:
Die Gültigkeitsregel aus der Tabelle kann raus - hilft ohnehin nicht weiter.
Gruß Steffen
 

Offline Chris777777

  • Newbie
  • Beiträge: 42
Re: Zellenwert im Formularfeld begrenzen
« Antwort #20 am: Dezember 22, 2017, 14:41:04 »
Sobald ich im Formular das Feld "Paletten" füllen möchte, erhalte ich die Fehlermeldung, dass der eingegebene Wert nicht der Gültigkeitsprüfungsregel entspricht. Ich kann also in dem Feld nichts eintragen.
VG,
Chris
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1329
Re: Zellenwert im Formularfeld begrenzen
« Antwort #21 am: Dezember 22, 2017, 15:52:06 »
Es gilt immer zwei Möglichkeiten zu betrachten. Beim Ändern des Palettenwerts darf der alte Wert nicht berücksichtigt werden, wovon DSum aber noch gar nichts weiß. Beim Hinzufügen eines neuen Datensatzes wäre die Prüfung mit DSum ausreichend.

Ansonsten ist die Gültigkeitsregel auf Feldebene immer eine gute Sache, um z. Bsp. auch Werte <= 0 zu verhindern und bei externem Zugriff ohne Foermular wirksam zu werden. Nebenbei kann man auch noch ein Datenmakro mit der Überwachung der Gesamtmenge beauftragen, welches auch unabhängig von Formularen wirkt.
Grüße von der (⌒▽⌒)
 

Offline PhilS

  • Administrator
  • Access-Profi
  • *****
  • Beiträge: 360
    • Tipps zu Access, VBA, SQL und Co.
Re: Zellenwert im Formularfeld begrenzen
« Antwort #22 am: Dezember 27, 2017, 00:17:24 »
Nebenbei kann man auch noch ein Datenmakro mit der Überwachung der Gesamtmenge beauftragen, welches auch unabhängig von Formularen wirkt.
Daten auch unabhängig von Formularen auf ihre Integrität zu prüfen, finde ich immer eine gute Sache.

Das sollte sich in diesem Fall auch ohne Datenmakro machen lassen. Mit den relativ unbekannten CHECK CONSTRAINTS als Gültigkeitsregel wäre das wohl möglich. Diese lassen sich allerdings nur über ADO erstellen.

With CurrentProject.Connection
    .Execute "ALTER TABLE tblkapazität " & _
                " ADD CONSTRAINT chkPalettenSumme " & _
                " CHECK (100 >= (SELECT SUM(Paletten) FROM tblkapazität ));"
End With

Weil dies Thema eher etwas untergegangen ist, habe ich mal einen Text zur Gültigkeitsregeln geschrieben, der auch die CHECK CONSTRAINTS behandelt.
Neues Access 2019 Feature angekündigt: Modern Charts
 

Offline Chris777777

  • Newbie
  • Beiträge: 42
Re: Zellenwert im Formularfeld begrenzen
« Antwort #23 am: Januar 09, 2018, 10:22:05 »
Hallo zusammen,

es ist nun schon eine Weile her, allerdings besteht mein Problem immer noch.
Ich habe mir die Datei von Lachtaube angeschaut. Allerdings funktioniert die Berechnung der Kapazität dort auch nicht richtig. Im ersten Datensatz müsste die Begrenzung ja noch bei 100 liegen. Im Bsp. liegt sie bei 33, obwohl davor noch kein Datensatz eingegeben wurde...
Zum Kommentar von PhilS: Wo muss ich denn den Code/Ausdruck eingeben. Bei der Gültigkeitsregel passt der Ausdruck ja nicht oder kann ich da auch i-wie den VBA öffnen?

Gruß,
Chris
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23443
Re: Zellenwert im Formularfeld begrenzen
« Antwort #24 am: Januar 09, 2018, 10:36:13 »
Hallo,

lad mal deine DB (datenreduziert,  komprimiert/repariert und gezippt) hier hoch, damit man sieht, was Sache ist...

Offline Chris777777

  • Newbie
  • Beiträge: 42
Re: Zellenwert im Formularfeld begrenzen
« Antwort #25 am: Januar 09, 2018, 11:30:49 »
Hallo,
zudem kommt noch die Problematik hinzu, dass die Kapazität von 100 für jeden neuen Tag gilt, also bspw. am 09.01. habe ich zunächst 100 Paletten zur Verfügung. Nun werden 40 Paletten aufgeschrieben, somit bleibt für diesen Tag eine Restkapazität von 60 übrig. Sobald ich einen Datensatz für ein anderes Datum hinzufüge, z.B. den 10.01. muss wieder die volle Kapazität von 100 zur Verfügung stehen.
Gruß,
Christoph
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1329
Re: Zellenwert im Formularfeld begrenzen
« Antwort #26 am: Januar 09, 2018, 11:56:40 »
Die Logik ist ganz einfach anhand der 3 Datensätze erklärt.
 
tblkapazitaet 
IDKundePalettenMitarbeiterKalendertag
24
Müller
1
Meier
03.01.2018
25
Schulze
65
Schmidt
03.01.2018
26
Meier
2
Kenn
22.12.2017
Ist der Datensatzzeiger auf dem ersten Datensatz, so wird 65 für Schmidt und 2 für Kenn aufaddiert. Die bisherige 1 kannst Du in Werte zwischen 2..33 ändern, um die 100 vollzumachen. Im Schmidt'schen Datensatz, wären Werte zwischen 1 und 97 zulässig, weil ja bereits 3 Plätze vergeben wurden.

Wenn Deine Vorstellung der Prüfung eine andere ist (ist sie vermutlich), so lasse uns das wissen, und erkläre bitte anhand weniger Beispieldaten, wie Prüfung und Ablauf miteinander einhergehen.

@Phil,

wenn Constraints in der von Dir vorgestellten Weise implementiert werden, so wirken diese zwar zuverlässig, erfordern aber bei einer Verletzung der Bedingung den Neustart eines gebundenen Formulars, weil das ADO Error-Objekt sich nach meiner Erfahrung nicht resetten lässt.

Und ohne die Dinger aufschiebbar (deferrable) machen zu können, was jeder gute Datenbankserver beherrscht (SQLite3 kann's leider auch nicht), ist ihre Verwendung doch sehr stark einschränkend. Man kann z. Bsp. keinen Key-Count > 1 vergeben, weil schon bei jeder Datensatzeingabe (auch via Append Query) die Bedingung sofort wirksam wird und einen Fehler auslöst.
Grüße von der (⌒▽⌒)
 

Offline Chris777777

  • Newbie
  • Beiträge: 42
Re: Zellenwert im Formularfeld begrenzen
« Antwort #27 am: Januar 09, 2018, 12:25:41 »
Ok. Nun habe ich die Logik verstanden, habe es mir jedoch etwas anders gedacht:

ID  Kunde    Paletten    Mitarbeiter    Kalendertag
24  Müller    1              Meier            03.01.2018 <=100
25  Schulze  65            Schmidt        03.01.2018 <=99
26  Meier     2              Kenn            22.12.2017  <=100
27 Schmidt  14            Mayer           03.01.2018  <=34

Sobald der erste Datensatz eingetragen wird, in diesem Fall 24 Müller, soll die volle Kapazität von 100 zur Verfügung stehen. Da hier nun 1 Palette eingegeben wurde, soll sich die verfügbare Kapazität für 25 Schulze um 1 Palette verringern, sodass maximal 99 Paletten eingegeben werden können. 26 Meier ist ein anderes Datum. Für jeden neuen Tag sollen wieder die vollen 100 Paletten zur Verfügung stehen. 27 Schmidt bezieht sich wieder auf den 03.01.2018 sodass unter Abzug Müller und Schulze (100-1-65) noch 34 Palettenplätze verfügbar sind.
Gruß,
Christoph
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1329
Re: Zellenwert im Formularfeld begrenzen
« Antwort #28 am: Januar 09, 2018, 12:41:36 »
Zusammengefasst: an jedem Kalendertag dürfen maximal 100 Paletten eingelagert werden, egal von welchem Kunden - richtig?
Grüße von der (⌒▽⌒)
 

Offline Chris777777

  • Newbie
  • Beiträge: 42
Re: Zellenwert im Formularfeld begrenzen
« Antwort #29 am: Januar 09, 2018, 13:22:47 »
Jop genau