Fehler bei Datumsberechnung

23/04/2010 - 09:11 von Gerd Haseloff | Report spam
Hallo,

ich habe in einem Formular 2 Textfelder, welche mit Datumswerten
befüllt werden.
Daraus resultierend möchte ich die Anzahl der Wochentage ermitteln,
welche nicht auf einem Samstag. Sonntag oder Feiertag fallen. Als
Hilfstabelle benutze ich dazu die Tabelle Jahr, welche folgende Felder
enthàlt:

Datum Typ: Datum
Wochentag Typ: Zahl (1-7)
Feiertag ja/nein

Dim a As String
Dim b As String
a = Me.txtub
b = Me.txtue


sql3 = "SELECT Count(JAHR.WT) AS ANZWT FROM JAHR WHERE
Format(JAHR.Datum,'tt.mm.yyyy')

= '" & a & "' And


Format(JAHR.Datum,'tt.mm.yyyy')<='" & b & "'
AND JAHR.WT Not In (6,7) AND JAHR.FT=0"

Set db = CurrentDb
Set rs3 = db.OpenRecordset(sql3)
Debug.Print ; rs3!anzwt -> liefert Wert : 0
Stop

Ich habe schon ein wenig gesucht, konnte aber bisher nichts
verwertbares finden. Sicher ist die Formatdefinition nich korrekt.
Wer kann mir helfen?

Gruß Gerd
 

Lesen sie die antworten

#1 Karl Donaubauer
23/04/2010 - 11:40 | Warnen spam
Gerd Haseloff wrote:
ich habe in einem Formular 2 Textfelder, welche mit Datumswerten
befüllt werden.
Daraus resultierend möchte ich die Anzahl der Wochentage ermitteln,
welche nicht auf einem Samstag. Sonntag oder Feiertag fallen. Als
Hilfstabelle benutze ich dazu die Tabelle Jahr, welche folgende Felder
enthàlt:

Datum Typ: Datum
Wochentag Typ: Zahl (1-7)
Feiertag ja/nein

Dim a As String
Dim b As String
a = Me.txtub
b = Me.txtue

sql3 = "SELECT Count(JAHR.WT) AS ANZWT FROM JAHR WHERE
Format(JAHR.Datum,'tt.mm.yyyy')
>= '" & a & "' And
Format(JAHR.Datum,'tt.mm.yyyy')<='" & b & "'
AND JAHR.WT Not In (6,7) AND JAHR.FT=0"

Set db = CurrentDb
Set rs3 = db.OpenRecordset(sql3)
Debug.Print ; rs3!anzwt -> liefert Wert : 0
Stop

Ich habe schon ein wenig gesucht, konnte aber bisher nichts
verwertbares finden. Sicher ist die Formatdefinition nich korrekt.
Wer kann mir helfen?



Datum an SQL-String übergeben
www.donkarl.com?FAQ6.8

d.h. du formatierst/übergibst die Datümer falsch.
Die Lösung könnte z.B. so aussehen:

Dim lngStart As Long
Dim lngEnd As Long

lngStart = Me!txtub
lngEnd = Me!txtue

sql3 = "SELECT Count(JAHR.WT) AS ANZWT FROM JAHR " & _
" WHERE JAHR.Datum Between " & lngStart & " And " & lngEnd & _
" AND JAHR.WT Not In (6,7) AND JAHR.FT=False"

Ich würde dir auch empfehlen, die Bezeichnungen "JAHR" und "Datum"
zu àndern, weil sie Schlüsselwörtern in Access entsprechen.
s.a. www.donkarl.com?FAQ1.5

Servus
Karl
****************
Access-FAQ: http://www.donkarl.com

Ähnliche fragen