Hallo Hubert, hollo Rainer,
danke f�r eure M�he. Werd ich demn�chst mal testen. Bin grad mit einer anderen Sache besch�ftigt (aufgeschoben ist nicht aufgehoben:-)
 
Danke euch und sch�ne Gr��e
 
Stephan
 
 
 
----- Original Message -----
Sent: Tuesday, April 16, 2002 2:58 PM
Subject: [aspdebeginners] Re: [aspdebeginners] Re: [aspdebeginners] Datum auf G�ltigkeit testen?

> Vielleicht hilft Dir der Beitrag
>
>
http://www.escribe.com/computing/aspDE/beginners/m10824.html
>
Ok ist nicht lesbar. Hier nochmal das Original  (und ausnahmsweise HTML).
 
Wenn Du den Weg gehen m�chtest, dann kannst Du ja mal das angeh�ngte Script ausprobieren. 
SCHRITT 1: pack das Ganze in eine TEST.VBS Datei und lass es laufen. Schau, ob Dir die Funktionalit�t so passt. Ggf. anpassen. 
SCHRITT 2: passt alles, dann die drei Funktionen in Dein ASP packen. Die Testaufrufe mit msgbox weglassen. Nicht vergessen am Ende der Funktion ToDate die Kommentare f�r den passenden Block (Access oder SQL-Server) richtig setzen.

Aufruf w�re dann etwa so
  sqldatum = ToDate(request("formdatum"))

Und die Variable sqldatum in den Abfragestring oder Update/Insert-String einsetzen
.

Option Explicit
dim a 
 
a = "2.3.2000"
msgbox a & vbcrlf & vbcrlf & ToDate(a)
 
a = "22.3.2000"
msgbox a & vbcrlf & vbcrlf & ToDate(a)
 
a = "2.33.2000"
msgbox a & vbcrlf & vbcrlf & ToDate(a)
 
a = "2, 3 .2000"
msgbox a & vbcrlf & vbcrlf & ToDate(a)
 
a = "13. 13. 2000"
msgbox a & vbcrlf & vbcrlf & ToDate(a)
 
a = "13. 1"
msgbox a & vbcrlf & vbcrlf & ToDate(a)
 
a = "13. April"
msgbox a & vbcrlf & vbcrlf & ToDate(a)
 
a = "34 Dezemper"
msgbox a & vbcrlf & vbcrlf & ToDate(a)
 
a = "33/"
msgbox a & vbcrlf & vbcrlf & ToDate(a)
 
a = "4"
msgbox a & vbcrlf & vbcrlf & ToDate(a)
 
a = "3. Idiot"
msgbox a & vbcrlf & vbcrlf & ToDate(a)
 
a = "Letzder"
msgbox a & vbcrlf & vbcrlf & ToDate(a)
 
a = "  Morgen"
msgbox a & vbcrlf & vbcrlf & ToDate(a)
 
a = "geSCHDern   "
msgbox a & vbcrlf & vbcrlf & ToDate(a)
 
a = "�bermogen"
msgbox a & vbcrlf & vbcrlf & ToDate(a)
 
a = "Moin"
msgbox a & vbcrlf & vbcrlf & ToDate(a)
 
a = "Hoppala"
msgbox a & vbcrlf & vbcrlf & ToDate(a)
 
 
Function ToDate(sString)
  Dim i, a, sTemp, sTag, sMonat, sJahr
 
  ' -- alle m�glichen Trennzeichen raus
  sString = replace(replace(replace(replace(replace(sString, ".", " "), "/", " "), ",", " "), "  ", " "),"  ", " ")
  ' -- Defaults vorbelegen
 
  sJahr = Year(Now)
  sMonat = Month(Now)
  sTag = Day(Now)
  ' -- jetzt Datum ermitteln
  Select Case Left(Lcase(Trim(sString)), 3)
  Case "heu", "jet"  ' -- heute
    ' nix machen, ist schon passend vorbelegt
  Case "mor", "moi"  ' -- morgen
    sTemp = Now + 1
    sJahr = Year(sTemp)
    sMonat = Month(sTemp)
    sTag = Day(sTemp)
  Case "ges"  ' -- gestern
    sTemp = Now - 1
    sJahr = Year(sTemp)
    sMonat = Month(sTemp)   
    sTag = Day(sTemp)
  Case "�be"  ' -- �bermorgen
    sTemp = Now + 2
    sJahr = Year(sTemp)
    sMonat = Month(sTemp)
    sTag = Day(sTemp)
  Case "ers"  ' -- Monatserster
    sTemp = DateSerial(Year(Now), Month(Now), 1)
    sJahr = Year(sTemp)
    sMonat = Month(sTemp)
    sTag = Day(sTemp)
  Case "let"  ' -- Monatsletzter
    sTemp = DateSerial(Year(Now), Month(Now) + 1, 1) - 1
    sJahr = Year(sTemp)
    sMonat = Month(sTemp)
    sTag = Day(sTemp)
  Case Else  ' -- der Normalfall
    a = split(sString, " ")   
    For i = 0 to UBound(a)
      Select Case i
      Case 0
        sTag = Val(a(i))
        if sTag = 0 Then sTag = Day(Now)
      Case 1
        sMonat = Val(a(i))
        If sMonat = 0 Then sMonat = GetMonat(a(i))
      Case 2
        sJahr = Val(a(i))
        If sJahr = 0 Then sJahr = Year(Now)
      End Select   
    Next
  End Select
 
  ' -- Variante A ein VBS Datum
  ToDate = DateSerial(sJahr, sMonat, sTag)
 
  ' -- Variante B ein Access (oder auch Excel, etc.) Datum generieren
  ' sTemp = DateSerial(sJahr, sMonat, sTag)
  ' ToDate = "DateSerial(" & Year(sTemp) & ", " & Month(sTemp) & ", " & Day(sTemp) & ")"
  ' -- Variante C ein SQL-Server Datum bauen
  ' sTemp = DateSerial(sJahr, sMonat, sTag)
  ' ToDate = "Convert(datetime, '" & Day(sTemp) & "." & Month(sTemp) & "." & Year(sTemp) & "', 104)"
End Function
 

'
' --- String Funktionen
'
Function Val(sString)
  Dim i, a, sTemp
  If IsNumeric(sString) Then
    Val = CInt(sString) 
  Else
    sTemp = "0"
    For i = 1 to Len(sString)
      a = mid(sString, i, 1)
      If IsNumeric(a) Then sTemp = sTemp & a
    Next
    Val = CInt(sTemp) 
  End If
End Function
 
 
Function GetMonat(sString)
  Select Case Left(Lcase(trim(sString)), 3) 
  Case "jan"
    GetMonat = 1
  Case "feb"
    GetMonat = 2
  Case "m�r", "mar"
    GetMonat = 3
  Case "apr"
    GetMonat = 4
  Case "mai", "may"
    GetMonat = 5
  Case "jun"
    GetMonat = 6
  Case "jul"
    GetMonat = 7
  Case "aug"
    GetMonat = 8
  Case "sep"
    GetMonat = 9
  Case "okt", "oct"
    GetMonat = 10
  Case "nov"
    GetMonat = 11
  Case "dez", "dec"
    GetMonat = 12
  Case Else
    GetMonat = Month(now)
  End Select
End Function
 
 
 
--

Viele Gr��e
Hubert Daubmeier
| Oft Gefragtes: http://www.aspgerman.com/aspgerman/faq/ | [aspdebeginners] als [EMAIL PROTECTED] subscribed | http://www.aspgerman.com/archiv/aspdebeginners/ = Listenarchiv | Sie knnen sich unter folgender URL an- und abmelden: | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdebeginners.asp
| Oft Gefragtes: http://www.aspgerman.com/aspgerman/faq/ | [aspdebeginners] als [email protected] subscribed | http://www.aspgerman.com/archiv/aspdebeginners/ = Listenarchiv | Sie knnen sich unter folgender URL an- und abmelden: | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdebeginners.asp

Antwort per Email an