Neuigkeiten:

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

Mobiles Hauptmenü

Zählen wenn Zelle gefüllt ist +1

Begonnen von DaKain, Mai 02, 2018, 21:19:40

⏪ vorheriges - nächstes ⏩

DaKain

Hallo zusammen,

ich baue zur an einem Schichtbuch und würde gerne die Schichtstärke berechnen lassen in Access. Das bedeutet das ich ein gebundenes Formular habe, welches diverse Einsatzorte zeigt und per Kombinationsfeld kann ich unter die besagten Einsatzorte dann die Namen der Mitarbeiter hinzufügen. Da ja auch mal ein Mitarbeiter krank wird oder Urlaub hat, möchte ich gerne Die Anzahl der gefüllten Felder zählen. So das ich im Formular auf einen Blick im Formular sehe wie viel Mitarbeiter an einem bestimmten Datum anwesend sind. 

Ich bekomme es nicht rund dachte erst an die Anzahlfunktion in der Entwurfsansicht oder an eine Zählewennformel.

Nunja ich bekomme beides nicht hin :-(

Könnt ihr mir helfen?

Gruß Kain

MzKlMu

Hallo,
Zitatmöchte ich gerne Die Anzahl der gefüllten Felder zählen.
wieso gefüllte Felder ?
Jeder anwesende Mitarbeiter sollte in einem Datensatz stehen.

Und dann sollte ein Hauptformular verwendet werden und darin ein Unterformular für die Mitarbeiter.
Im Formularkopf des Ufos dann einfach ein Textfeld mit folgender Formel:
=Anzahl(*)

Zeige mal ein Bild des Beziehungsfensters.
Gruß Klaus

DaKain

Danke für deine Antwort aber das ist leider nicht das was ich möchte.

Ist das was ich möchte nicht möglich?  :-X
Ich möchte Tatsächlich nur die Zelle zählen wo etwas drin steht.
Die Lösung mit Ufo etc ist für mich nicht praktikabel.

Es sind 28 Spalten in der Tabelle mit jeweils unterschiedlichem Namen Mitarbeiter_1, Mitarbeiter 2, Mitarbeiter 3...  etc. Die Sache ist das das nicht jede Spalte gefüllt wird, da an Feiertagen Wochenende etc. weniger Personal benötigt wird als innerhalb der Woche.

Für jeden Kalendertag wird mithilfe eines Eingabeformular ein neuer Datensatz erzeugt... Dann werden die verschiedenen  Mitarbeiter (Namen) per "gebundenem" Kombinationsfeld dem jeweiligen Einsatzort zugewiesen. Hier sollen aus dem Formular oder der Tabelle die anwesenden Mitarbeiter gezählt werden.

Noch zur Info: Das Eingabeformular dient gleichzeitig als Ansichtsseite für die Mitarbeiter, damit sie wissen wo sie Eingesetzt sind.

Ich hoffe ich konnte euch/dir vermitteln was ich meine...

Grüße Kain

MzKlMu

Hallo,
ZitatIch möchte Tatsächlich nur die Zelle zählen wo etwas drin steht.
Dazu gibt es bei Access keine Formel, Du musst jedes einzelne Feld (Access hat keine Zellen) auf Inhalt prüfen.
ZitatMitarbeiter_1, Mitarbeiter 2, Mitarbeiter 3...  etc.
Das ist Excelaufbau, aber für eine Datenbank völlig ungeeignet. Hier fehlt einfach eine weitere Tabelle in der die Mitarbeiter als Datensätze erfasst werden.
Zeige mal ein Bild des Beziehungsfensters.
Gruß Klaus

DaKain

Es gibt eine Tabelle, wo die an diesem Tag eingesetzten Mitarbeiter nach Datum als Datensatz weggeschrieben werden. Nun Muss ich ja trotzdem irgendwie die Ausgefüllten "Felder" in der Tabelle zählen.

Wir Prüfe ich denn das Feld auf Inhalt? Dann muss ich diesen weg gehen auch wenn es kompliziert ist...

Was meinst du mit Beziehungsfenster...? Ich habe keine Beziehungen zwischen einzelnen Tabellen hergestellt. :-)

MzKlMu

#5
Hallo,
um das datenbankkonform aufzubauen, sind 3 Tabellen notwendig.

- Einsatzort
- Mitarbeiter
- MitarbeiterEinsatzort

In der 3. Tabelle wird die MitarbeiterID, die EinsatzortID und das Datum gespeichert, je Ort und Mitarbeiter und Datum ein Datensatz. Die 28 Felder entfallen ersatzlos, es entstehen in der 3.Tabelle maximal 28 Datensätze je Datum.
ZitatIch habe keine Beziehungen zwischen einzelnen Tabellen hergestellt. :-
Eine Datenbank ohne Beziehungen ist keine Datenbank. Beziehungen sind das A+O einer Datenbank und unbedingt erforderlich.
Du solltest Dich mit den Grundlagen zu Access beschäftigen. Du hast noch Exceldenkweisen, die für eine Datenbank unbrauchbar sind.
Accesstabellen und Exceltabellen erfordern einen völlig anderen Aufbau.

Der Aufwand zum Berechnen bei Deiner Version ist beträchtlich und wird zu einer lahmen Ente.
=Abs((Mitarbeiter_1 Ist Nicht Null) + (Mitarbeiter_2 Ist Nicht Null) + (Mitarbeiter_3 Ist Nicht Null) + ..... bis 28))
Das ist Krampf, sonst nix.

Zu den Grundlagen:
https://www.access-tutorial.de/
Gruß Klaus

DaKain

In der Tat bin ich Access-Neuling habe mehrere Access Schulungen besucht und lerne noch, nicht zuletzt durch euer Forum. Was mir bisher wirklich immer super geholfen hat.
Auch in diesem Fall wurde ich nicht enttäuscht. Deine Formel tut genau das was ich wollte. Es ist zwar äußerst Aufwändig aber es funktioniert! Also vielen Dank dafür!!!

Die Komplexität von Access ist mir bewusst und das Exceldenken legt man glaube ich nie so richtig ab. Ich denke ich weiß aber was du meinst was Access betrifft. Ich beschäftige mich erst seit März mit Access, hab also Nachsicht mit mir.

Trotzdem vielen vielen Dank! Du hast mir sehr geholfen! :)

MzKlMu

#7
Hallo,
Zitathabe mehrere Access Schulungen besucht
das waren keine guten Schulungen, ehrlich.
Wenn die Schulung gut gewesen wäre, würdest Du einen Tabellenaufbau mit Aufzählungsfeldern mit einer Zahl als Unterscheidungsmerkmal (...1, ...2, ...3) erst gar nicht anlegen. Das verstößt bereits gegen die 1. Normalform. Und dass in der Schulung Access Tabellen ohne Beziehung angelegt werden, kann ich fast nicht glauben.
Mit korrektem Aufbau der DB bräuchtest Du einfach nur eine über den Mitarbeiter gruppierte Abfrage und hättest zu jedem Datum die anwesenden Personen, auf einen Blick. Ohne Formel und ohne etwas programmieren zu müssen.
Und dann noch ein Kreutztabellenabfrage aufgesetzt und Du hättest einen Überblick, von dem Du jetzt nur träumen kannst.

Mit einem solchen Aufbau kann man auch nicht Access lernen, das ist schlicht und ergreifend Murks (sorry) und hat mit einer Datenbank wenig zu tun.
Gruß Klaus

Beaker s.a.

Hallo,
Zitatdas waren keine guten Schulungen, ehrlich.
Dem kann ich nur beipflichten, um nicht sogar zu sagen "Lass dir dein
Geld zurück geben"; - was haben sie euch den gelehrt? Oder ging es
dabei nur um VBA?
Zitatdas Exceldenken legt man glaube ich nie so richtig ab
Muss man aber für Access von Anfang an. Eine Darstellung wie in
Exel ist dann (mir korrektem Datenmodell) gar kein Problem mehr, -
siehe Klaus' Hinweise u.a. zu Kreuztabellenabfrage.
Wie willst du denn jetzt die Mitarbeiterfluktuation abbilden? Jedesmal
wenn jemand dazu kommt oder ausscheidet must du deine Abfragen
und Formulare ändern; - viel Spass.  ;)
Ausserdem, - für jede Stunde, die du in den Aufbau des DM investierst
bekommst du später beim gestallten von Abfragen, Formularen und
Berichten 2 Stunden zurück.
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)