Discussion:
Sonntage herausrechnen
(zu alt für eine Antwort)
j***@googlemail.com
2007-03-26 08:55:05 UTC
Permalink
Liebe Access-Eidgenossen!

Ich stehe vor folgendem Problem:

In einer Tabelle werden Zeiten für einen bestimmten Vorgang hinterlegt
(Startdatum, Enddatum, Beginnuhrzeit, Enduhrzeit).

Bei diesem Zeitangaben kann es vorkommen, dass ein Sonntag innerhalb
des Zeitintervalls liegt. Nun möchte ich gerne mit einer Abfrage
realisieren, dass angezeigt wird, ob sich ein Sonntag in diesem
Intervall befindet, damit ich ihn aus der Zeitberechnung herausnehmen
kann.

Vielleicht hat jemand eine Idee?

Vielen Dank im Voraus!

Gruß

Jörg Beutel
Jens Schilling
2007-03-26 09:22:38 UTC
Permalink
Hallo, Jörg
Post by j***@googlemail.com
Liebe Access-Eidgenossen!
Hmm - ich hab doch gar keinen Eid abgelegt ;-)
Post by j***@googlemail.com
In einer Tabelle werden Zeiten für einen bestimmten Vorgang hinterlegt
(Startdatum, Enddatum, Beginnuhrzeit, Enduhrzeit).
Bei diesem Zeitangaben kann es vorkommen, dass ein Sonntag innerhalb
des Zeitintervalls liegt. Nun möchte ich gerne mit einer Abfrage
realisieren, dass angezeigt wird, ob sich ein Sonntag in diesem
Intervall befindet, damit ich ihn aus der Zeitberechnung herausnehmen
kann.
Schau mal in der (VBA-) Hilfe nach dem Stichwort Weekday ...
--
Gruss
Jens
______________________________
1. SEK (SQL Server-Entwickler-Konferenz)
Nürnberg, Sa/So 21./22.4.2007 (ausgebucht)
FAQ: http://www.donkarl.com
j***@googlemail.com
2007-03-26 11:01:51 UTC
Permalink
On 26 Mrz., 11:22, "Jens Schilling"
Post by Jens Schilling
Hallo, Jörg
Post by j***@googlemail.com
Liebe Access-Eidgenossen!
Hmm - ich hab doch gar keinen Eid abgelegt ;-)
Post by j***@googlemail.com
In einer Tabelle werden Zeiten für einen bestimmten Vorgang hinterlegt
(Startdatum, Enddatum, Beginnuhrzeit, Enduhrzeit).
Bei diesem Zeitangaben kann es vorkommen, dass ein Sonntag innerhalb
des Zeitintervalls liegt. Nun möchte ich gerne mit einer Abfrage
realisieren, dass angezeigt wird, ob sich ein Sonntag in diesem
Intervall befindet, damit ich ihn aus der Zeitberechnung herausnehmen
kann.
Schau mal in der (VBA-) Hilfe nach dem Stichwort Weekday ...
--
Gruss
Jens
______________________________
1. SEK (SQL Server-Entwickler-Konferenz)
Nürnberg, Sa/So 21./22.4.2007 (ausgebucht)
FAQ:http://www.donkarl.com
Hallo Jens,

danke für den Tipp! Habe auch schon an die Weekday-Funktion gedacht.
Wusste nur nicht genau wie das Umsetzten sollte. Meine Lösung sieht
wie folgt aus:

Wenn("1" Zwischen Wochentag(Startdatum) und Wochentag(Enddatum);
24*60;0)

Damit klappts!

Danke nochmal

Gruß

Jörg
Peter Doering
2007-03-26 12:01:08 UTC
Permalink
Hallo,
Post by j***@googlemail.com
Post by Jens Schilling
Post by j***@googlemail.com
In einer Tabelle werden Zeiten für einen bestimmten Vorgang hinterlegt
(Startdatum, Enddatum, Beginnuhrzeit, Enduhrzeit).
Bei diesem Zeitangaben kann es vorkommen, dass ein Sonntag innerhalb
des Zeitintervalls liegt. Nun möchte ich gerne mit einer Abfrage
realisieren, dass angezeigt wird, ob sich ein Sonntag in diesem
Intervall befindet, damit ich ihn aus der Zeitberechnung herausnehmen
kann.
Schau mal in der (VBA-) Hilfe nach dem Stichwort Weekday ...
Wenn("1" Zwischen Wochentag(Startdatum) und Wochentag(Enddatum);
24*60;0)
Du solltest den ersten Wochentag angeben, weil der ansonsten von den
Regionaleinstellungen abhaengig geaendert werden koennte und somit deine
Berechnung nicht mehr stimmt. Also: Wochentag(Startdatum, 1)

Ausserdem wirst du mit Zwischen ... und kein befriedigendes Ergebnis
erreichen, wie du selbst schon gemerkt hast. Zwischen 6 und 2 stellt nun
mal die Reihe 2,3,4,5,6 dar, und nicht 6,7,1,2. Da muss ein anderer Ansatz
her. Was konkret soll denn am Ende herauskommen?

Gruss -Peter
--
Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
j***@googlemail.com
2007-03-26 12:12:11 UTC
Permalink
Post by Jens Schilling
Hallo,
Post by j***@googlemail.com
Post by Jens Schilling
Post by j***@googlemail.com
In einer Tabelle werden Zeiten für einen bestimmten Vorgang hinterlegt
(Startdatum, Enddatum, Beginnuhrzeit, Enduhrzeit).
Bei diesem Zeitangaben kann es vorkommen, dass ein Sonntag innerhalb
des Zeitintervalls liegt. Nun möchte ich gerne mit einer Abfrage
realisieren, dass angezeigt wird, ob sich ein Sonntag in diesem
Intervall befindet, damit ich ihn aus der Zeitberechnung herausnehmen
kann.
Schau mal in der (VBA-) Hilfe nach dem Stichwort Weekday ...
Wenn("1" Zwischen Wochentag(Startdatum) und Wochentag(Enddatum);
24*60;0)
Du solltest den ersten Wochentag angeben, weil der ansonsten von den
Regionaleinstellungen abhaengig geaendert werden koennte und somit deine
Berechnung nicht mehr stimmt. Also: Wochentag(Startdatum, 1)
Ausserdem wirst du mit Zwischen ... und kein befriedigendes Ergebnis
erreichen, wie du selbst schon gemerkt hast. Zwischen 6 und 2 stellt nun
mal die Reihe 2,3,4,5,6 dar, und nicht 6,7,1,2. Da muss ein anderer Ansatz
her. Was konkret soll denn am Ende herauskommen?
Gruss -Peter
--
Ich beantworte keine Fragen per Email.
Mitglied imhttp://www.dbdev.org
FAQ:http://www.donkarl.com- Zitierten Text ausblenden -
- Zitierten Text anzeigen -
Hallo Peter,

auch Dir vielen Dank für die Antwort. Stimmt, das Ergebnis ist
wirklich nicht befriedigend! habe auch schon den ersten Wert auf
Donnerstag gelegt, so dass zwischen Donnerstag und Mittwoch eine
aufsteigende Reihenfolge vorliegt. Auch wenn das Ergebnis somit passt,
ist es nicht wirklich eine elegante Lösung.

Ich möchte damit eigentlich nur erreichen, dass wenn ein Vorgang z. B.
am Freitag startet, jedoch erst am Montag beendet werden kann, dass
die Zeit für den Sonntag herausgerechnet wird. Nun kann es jedoch
evtl. auch sein, dass ein Vorgang erst Dienstag oder Mittwoch oder wie
auch immer abgeschlossen ist (kommt jedoch eher selten vor) - deswegen
ist die Lösung nicht wirklich ... sexy.

Trotzdem danke erstmal!

Gruß

Jörg
Jens Schilling
2007-03-26 12:28:34 UTC
Permalink
Hallo, Jörg
Post by j***@googlemail.com
Post by j***@googlemail.com
In einer Tabelle werden Zeiten für einen bestimmten Vorgang
hinterlegt (Startdatum, Enddatum, Beginnuhrzeit, Enduhrzeit).
Bei diesem Zeitangaben kann es vorkommen, dass ein Sonntag
innerhalb des Zeitintervalls liegt. Nun möchte ich gerne mit
einer Abfrage realisieren, dass angezeigt wird, ob sich ein
Sonntag in diesem Intervall befindet, damit ich ihn aus der
Zeitberechnung herausnehmen kann.
Ich möchte damit eigentlich nur erreichen, dass wenn ein Vorgang z. B.
am Freitag startet, jedoch erst am Montag beendet werden kann, dass
die Zeit für den Sonntag herausgerechnet wird. Nun kann es jedoch
evtl. auch sein, dass ein Vorgang erst Dienstag oder Mittwoch oder wie
auch immer abgeschlossen ist (kommt jedoch eher selten vor) - deswegen
ist die Lösung nicht wirklich ... sexy.
Ermittele die Anzahl der Sonntage ( interessieren eigentlich auch Feiertage
? ) innerhalb Deines Zeitraumes, und ziehe diese ab. Eine entsprechende
Funktion findest Du z.B: in diesem Thread :

http://groups.google.de/group/microsoft.public.de.access/browse_frm/thread/a0e583b4068ea335
--
Gruss
Jens
______________________________
1. SEK (SQL Server-Entwickler-Konferenz)
Nürnberg, Sa/So 21./22.4.2007 (ausgebucht)
FAQ: http://www.donkarl.com
j***@googlemail.com
2007-03-26 11:07:50 UTC
Permalink
On 26 Mrz., 11:22, "Jens Schilling"
Post by Jens Schilling
Hallo, Jörg
Post by j***@googlemail.com
Liebe Access-Eidgenossen!
Hmm - ich hab doch gar keinen Eid abgelegt ;-)
Post by j***@googlemail.com
In einer Tabelle werden Zeiten für einen bestimmten Vorgang hinterlegt
(Startdatum, Enddatum, Beginnuhrzeit, Enduhrzeit).
Bei diesem Zeitangaben kann es vorkommen, dass ein Sonntag innerhalb
des Zeitintervalls liegt. Nun möchte ich gerne mit einer Abfrage
realisieren, dass angezeigt wird, ob sich ein Sonntag in diesem
Intervall befindet, damit ich ihn aus der Zeitberechnung herausnehmen
kann.
Schau mal in der (VBA-) Hilfe nach dem Stichwort Weekday ...
--
Gruss
Jens
______________________________
1. SEK (SQL Server-Entwickler-Konferenz)
Nürnberg, Sa/So 21./22.4.2007 (ausgebucht)
FAQ:http://www.donkarl.com
Mist, klappt doch nicht ganz!

Wenn das Startdatum z. B. ein Freitag und das Enddatum ein Montag ist,
dann findet er den Sonntag dazwischen nicht...

evtl. noch eine Idee?

Gruß

Jörg
Michael Franke
2007-03-28 18:42:57 UTC
Permalink
On 26 Mrz., 13:07, ***@googlemail.com wrote:

Hallo Jörg,
Post by j***@googlemail.com
Mist, klappt doch nicht ganz!
Wenn das Startdatum z. B. ein Freitag und das Enddatum ein Montag ist,
dann findet er den Sonntag dazwischen nicht...
evtl. noch eine Idee?
Gruß
Jörg
der folgende SQL-Code liefert Dir die gewünschten Datensätze (ich
unterstelle, dass der Starttermin und der Endtermin nicht auf einen
Sonntag fallen können):

SELECT Starttermin, Endtermin, Weekday([Starttermin],2)+
(CDbl([Endtermin])-CDbl([Starttermin])) FROM DeineTabelle
WHERE (((Weekday([Starttermin],2)+(CDbl([Endtermin])-
CDbl([Starttermin])))>7));

Gruß + gutes Gelingen
Michael

Lesen Sie weiter auf narkive:
Loading...