Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
lfd. Arbeitstag des Jahres bestimmen
zurück: Datensatz klonen bei Primärschlüssel => Fehler 7951 weiter: Daten werden nicht mit ins neue Formular übergeben Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
stan_1958
Im Profil kannst Du frei den Rang ändern


Verfasst am:
07. Feb 2012, 21:53
Rufname:

lfd. Arbeitstag des Jahres bestimmen - lfd. Arbeitstag des Jahres bestimmen

Nach oben
       Version: Office 2003

Hallo zusammen,
folgendes Problem. Ich muß für das jeweilige Tagesdatum den lfd. Arbeitstag des Jahres bestimmen. Die Arbeitswoche geht von Montag bis Freitag. Feiertage sind hierbei unkritisch und können als Arbeitstag mitgezählt werden.
Beispiel: Der erste Arbeitstag des Jahres 2012 war der 2.1. Das war ein Montag. Dieser Tag bekommt dann die 1. Der letzte Arbeitstag in dieser Woche war der 6.1.2012 (Freitag). Der würde dann die lfd.Nr. 5 erhalten. Heute ist der 7.2.2012 (Dienstag). Der 7.2.2012 wäre damit der 27. Arbeitstag des Jahres.
Ich hatte schon einmal die Idee eine Hilfstabelle zu erstellen, wo ich die gewünschte Information eintrage.
Vielleicht gibt´s aber auch eine elegantere Lösung?!

Danke für eure Anregungen
MfG
MiLie
kein Office- VBA- Programmierer


Verfasst am:
07. Feb 2012, 22:59
Rufname: Micha
Wohnort: Chemnitz


AW: lfd. Arbeitstag des Jahres bestimmen - AW: lfd. Arbeitstag des Jahres bestimmen

Nach oben
       Version: Office 2003

Hallo,

Stellt sich die Frage was angezeigt werden soll wenn Samstag oder Sonntag ist , eine 0 oder die Zahl des letzten Arbeitstages oder garnichts?

_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
JMalberg
Es wird so langsam sinnig ...


Verfasst am:
07. Feb 2012, 23:15
Rufname:
Wohnort: Saarbrücken

AW: lfd. Arbeitstag des Jahres bestimmen - AW: lfd. Arbeitstag des Jahres bestimmen

Nach oben
       Version: Office 2003

... und auch alle Feiertage abziehen.


Schau mal hier rein http://www.office-loesung.de/fpost2142201.php#2142201
Mit eine Hilfstabelle tblKalender ist die Berechnung via SQL sehr schnell: Einfaches SELECT mit Ausschluss von Feiertag und Wochenenden.

_________________
Gruß
Jürgen

Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie!
MiLie
kein Office- VBA- Programmierer


Verfasst am:
07. Feb 2012, 23:20
Rufname: Micha
Wohnort: Chemnitz

AW: lfd. Arbeitstag des Jahres bestimmen - AW: lfd. Arbeitstag des Jahres bestimmen

Nach oben
       Version: Office 2003

Hallo,

die einfache und schnelle Variante ohne Hilfstabelle als Funktion, kann von überall aufgerufen werden
Code:
Function fncArbeitstag(DatDatum As Date) As Integer
Dim I As Integer

If Weekday(DatDatum, vbMonday) < 6 Then
    For I = 0 To DateDiff("d", DateSerial(Year(DatDatum), 1, 1), DatDatum)
        If Weekday(DateSerial(Year(DatDatum), 1, 1) + I, vbMonday) < 6 Then fncArbeitstag = fncArbeitstag + 1
    Next I
End If
End Function
Funktion in ein Modul kopieren , aufruf mit
Code:
= fncArbeitstag("02.02.2012")
oder z.B. in einer Abfrage mit
Code:
SELECT Datumfeld, fncArbeitstag([Datumfeld]) AS Arbeitstag
FROM Tabelle


willst du es genauer hilft auch meine an Jens seine Funktion angelehnte Arbeistagsfunktion, die berücksichtigt auch Feiertage und auf Wunsch Brückentage oder Weihnachtswochen. Auch ohne Hilfstabelle.

Hilftsbellen mit Datum müssen immer gepflegt werden, Feiertage lassen sich aber bis über das Jahr 2235 einfach berechnen. Wochenenden sowieso.

_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
stan_1958
Im Profil kannst Du frei den Rang ändern


Verfasst am:
07. Feb 2012, 23:44
Rufname:


Re: AW: lfd. Arbeitstag des Jahres bestimmen - Re: AW: lfd. Arbeitstag des Jahres bestimmen

Nach oben
       Version: Office 2003

MiLie - 07. Feb 2012, 21:59 hat folgendes geschrieben:
Hallo,

Stellt sich die Frage was angezeigt werden soll wenn Samstag oder Sonntag ist , eine 0 oder die Zahl des letzten Arbeitstages oder garnichts?


Hallo MiLie,

ich hatte ja geschrieben, dass die Arbeitswoche von Montag - Freitag läuft. Samstage und Sonntage sind keine Arbeitstage (zumindestens nicht für meinen Zweck). Insofern müssten dann der Samstag und Sonntag auch nicht als Arbeitstag gezählt werden.

Grüße
MiLie
kein Office- VBA- Programmierer


Verfasst am:
07. Feb 2012, 23:57
Rufname: Micha
Wohnort: Chemnitz

AW: lfd. Arbeitstag des Jahres bestimmen - AW: lfd. Arbeitstag des Jahres bestimmen

Nach oben
       Version: Office 2003

Hallo,

das war nicht die Frage, die Frage war was angezeigt werden soll, wenn dein Abfragedatum ein Sonntag oder Samstag ist.
Was willst du also beim 5.2.12 als Ergebnis sehen?
Ungeachtet habe ich einen Vorschlag gemacht.

_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
Gast



Verfasst am:
08. Feb 2012, 00:11
Rufname:

AW: lfd. Arbeitstag des Jahres bestimmen - AW: lfd. Arbeitstag des Jahres bestimmen

Nach oben
       Version: Office 2003

Zitat:
Hilftsbellen mit Datum müssen immer gepflegt werden
Nö. Kalender sind so stabil, dass man sogar welche auf Papier drucken und verkaufen kann, bei Bedarf auch auf einige Jahre im Voraus.

Falls dann über eine wichtige Reform eine Woche plötzlich 8 Tage bekommt, ist eine einmalige Neuberechnung einer Kalendertabelle sicher nicht das große Problem.

Bei der Berechnung eines Wertes ist es sicherlich egal, ob man über eine VBA-Funktion oder über eine Hilfstabelle geht. Da wirkt eher eine Hilfstabelle (zumal wenn man keine hat) etwas overdressed.
Hat man 1.000 Berechnungen, könnte man schon überlegen, ob es ideal ist, 1.000-mal zu berechnen, dass der 05.02.2012 ein Sonntag ist. Für andere Tage gilt das analog.
Führt man dann weitere Datenbankoperationen wie Filtern, Gruppieren, Aggregieren und Sortieren mit solchen berechneten Werten aus, ist dort eine Indexnutzung gestorben. In einer Hilfstabelle kann man die Felder indizieren und so die benötigten Werte in performante Abfragen einbeziehen.

Also sollte der TE definieren, was er unter einer eleganten Lösung versteht:
Eine Dame kann sicher in High Heels elegant spazieren. Bei einem 5.000-Meter-Lauf der sportlichen Art geht diese Eleganz allerdings mit großer Wahrscheinlichkeit verloren ...
stan_1958
Im Profil kannst Du frei den Rang ändern


Verfasst am:
08. Feb 2012, 10:04
Rufname:

Re: AW: lfd. Arbeitstag des Jahres bestimmen - Re: AW: lfd. Arbeitstag des Jahres bestimmen

Nach oben
       Version: Office 2003

Hallo MiLie,

funktionert tadellos. Das ist genau das, was ich brauche!

vielen Dank!


MiLie - 07. Feb 2012, 22:20 hat folgendes geschrieben:
Hallo,

die einfache und schnelle Variante ohne Hilfstabelle als Funktion, kann von überall aufgerufen werden
Code:
Function fncArbeitstag(DatDatum As Date) As Integer
Dim I As Integer

If Weekday(DatDatum, vbMonday) < 6 Then
    For I = 0 To DateDiff("d", DateSerial(Year(DatDatum), 1, 1), DatDatum)
        If Weekday(DateSerial(Year(DatDatum), 1, 1) + I, vbMonday) < 6 Then fncArbeitstag = fncArbeitstag + 1
    Next I
End If
End Function
Funktion in ein Modul kopieren , aufruf mit
Code:
= fncArbeitstag("02.02.2012")
oder z.B. in einer Abfrage mit
Code:
SELECT Datumfeld, fncArbeitstag([Datumfeld]) AS Arbeitstag
FROM Tabelle


willst du es genauer hilft auch meine an Jens seine Funktion angelehnte Arbeistagsfunktion, die berücksichtigt auch Feiertage und auf Wunsch Brückentage oder Weihnachtswochen. Auch ohne Hilfstabelle.

Hilftsbellen mit Datum müssen immer gepflegt werden, Feiertage lassen sich aber bis über das Jahr 2235 einfach berechnen. Wochenenden sowieso.
JMalberg
Es wird so langsam sinnig ...


Verfasst am:
08. Feb 2012, 11:04
Rufname:
Wohnort: Saarbrücken

AW: lfd. Arbeitstag des Jahres bestimmen - AW: lfd. Arbeitstag des Jahres bestimmen

Nach oben
       Version: Office 2003

Nochmal die Frage:

Was ist mit den Feiertagen?

_________________
Gruß
Jürgen

Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie!
KlausMz
Moderator Access


Verfasst am:
08. Feb 2012, 11:11
Rufname:
Wohnort: Irgendwo in der Pfalz


Re: lfd. Arbeitstag des Jahres bestimmen - Re: lfd. Arbeitstag des Jahres bestimmen

Nach oben
       Version: Office 2003

@Jürgen
hat er doch schon geschrieben:
stan_1958 - 07. Feb 2012, 20:53 hat folgendes geschrieben:
Feiertage sind hierbei unkritisch und können als Arbeitstag mitgezählt werden.

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Kündigszeiträume bestimmen / abfragen 4 Marco_K 107 25. Sep 2013, 12:24
Marco_K Kündigszeiträume bestimmen / abfragen
Keine neuen Beiträge Access Berichte: Etiketten drucken, Anzahl per Parameter bestimmen 1 DA42 225 25. Mai 2013, 16:06
DA42 Etiketten drucken, Anzahl per Parameter bestimmen
Keine neuen Beiträge Access Tabellen & Abfragen: den nächstgrößeren Wert innerhalb einer Gruppe bestimmen 4 Thibor 214 16. Mai 2013, 11:11
Thibor den nächstgrößeren Wert innerhalb einer Gruppe bestimmen
Keine neuen Beiträge Access Formulare: oberste Drittel meiner Forderungen (lfd. Summe) 2 MichasErsteSchritte 91 26. Feb 2013, 19:11
MichasErsteSchritte oberste Drittel meiner Forderungen (lfd. Summe)
Keine neuen Beiträge Access Formulare: Drop1 -> Datenquelle bestimmen, Drop2 Datensätze filtern 2 Mike_CGN 193 18. Jun 2011, 10:12
Mike_CGN Drop1 -> Datenquelle bestimmen, Drop2 Datensätze filtern
Keine neuen Beiträge Access Tabellen & Abfragen: mehreren Schlüsselnummern jeden Tag eines Jahres hinzufügen 11 lurot 391 12. Mai 2011, 21:03
lurot mehreren Schlüsselnummern jeden Tag eines Jahres hinzufügen
Keine neuen Beiträge Access Formulare: Summe von vorherigen Datensätze bestimmen. 20 Bukso 1135 23. Aug 2010, 17:27
Bukso Summe von vorherigen Datensätze bestimmen.
Keine neuen Beiträge Access Tabellen & Abfragen: Mindest Datensatzanzahl in einer Abfrage bestimmen 1 tuetederpirat 295 04. Feb 2010, 17:59
Sinister Mindest Datensatzanzahl in einer Abfrage bestimmen
Keine neuen Beiträge Access Tabellen & Abfragen: Bei Erfassung in Tabelle letzten Arbeitstag vorschlagen 2 andreas k 505 09. Dez 2008, 01:17
andreas k Bei Erfassung in Tabelle letzten Arbeitstag vorschlagen
Keine neuen Beiträge Access Tabellen & Abfragen: Quartal bestimmen über Tages/Monatsangabe + Jahr??? 2 Gast 1617 16. Jun 2008, 10:33
Gast Quartal bestimmen über Tages/Monatsangabe + Jahr???
Keine neuen Beiträge Access Formulare: Monat aus einem Datum bestimmen und vergleichen 2 Conrad 3138 31. März 2008, 13:34
Conrad Monat aus einem Datum bestimmen und vergleichen
Keine neuen Beiträge Access Formulare: Datenherkunft in Eigenschaftenfenster bestimmen 3 Cruzano 399 25. Apr 2007, 16:53
rita2008 Datenherkunft in Eigenschaftenfenster bestimmen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: PHP JavaScript