Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Einsatztage von Monteuren aus Tabelle ermitteln

Begonnen von Matthias_001, April 23, 2024, 12:02:07

⏪ vorheriges - nächstes ⏩

Matthias_001

Liebe Community,

ich habe eine wohl eher einfache Fragestellung:

Die Arbeitsstunden unser Monteure werden mit Access erfasst - die Tabelle soll hier mal "T_Zeiterfassung" heissen.
An manchen Tagen arbeitet nur 1 Kollege auf Baustelle x, an anderen Tagen auch mehrere.
So gibt es an einigen Tagen mehrere Einträge, an anderen evtl. auch nur einen Eintrag für diese Baustelle.
Wie kann ich in VBA die Anzahl der Einsatztage dieser Baustelle ermitteln?

In meinem Beispiel liefert:
Anzahl = Nz(DCount("Datum_Einsatz", "T_Zeiterfassung", "ID_Auftrag= " & ID_Auftrag))
die Gesamtanzahl der Einträge.

Ziel: Der Kunde bekommt je Einsatztag eine Anfahrtpauschale berechnet, diese ist aber unabhängig davon welcher Monteur bzw. wie viele Monteure auf der baustelle waren...

Könnt und mögt ihr helfen ?!

LG Matthias

Beaker s.a.

Hallo Matthias,

Musst du in einer richtigen Abfrage zählen, wobei du nach dem Datums-Feld
gruppierst.
Luftcode
PARAMETERS AuftragsID As Long:
SELECT Count(Datum_Einsatz) AS Tage
FROM T_Zeiterfassung
WHERE ID_Auftrag = AuftragsID
GROUP BY Datum_Einsatz

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)

Matthias_001

Hallo Ekkehard,

hab Vielen Dank.
Der Weg ist also in diesem Fall grundsätzlich nicht ohne "zwischengeschaltete" Abfrage möglich.
Das heisst:
1. Abfrage erstellen mit Gruppierung
2. Zählen der Datensätze in der Abfrage
   Anzahl = Nz(DCount("Datum_Einsatz", "_erstellte_Abfrage", "ID_Auftrag= " & ID_Auftrag))
... so klappt es jedenfalls.

Mit Deinem "Luftcode" konnte ich so direkt nichts anfangen... das sollte der sql-code der Abfrage sein?!

Beaker s.a.

Zitatdas sollte der sql-code der Abfrage sein?!
Genau. Schalte deine Abfrage in die SQL-Ansicht, - die sollte so
ähnlich ausschauen.
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)

MzKlMu

Hallo,
kleine Anmerkung:
Nz braucht es hier nicht. DCount kann nicht Null (Nix) liefern. Wenn es nichts zu zählen gibt wird eine 0 (die Zahl) angezeigt.
Gruß Klaus

Matthias_001