2016-05-10 17 views
0

Versuchen Sie, eine Funktion zu erstellen, die zu unsachgemäß gespeicherten Daten 100 Jahre hinzufügt, um sie zu korrigieren, dh 5/10/2016 wird am 10.05.1916 gespeichert und muss in 5/10/2016. Die Funktion, die ich schrieb, scheitert an der Zeile mit DateAdd darin.Ungültiger Prozeduraufruf oder Argument mit DateAdd VBA MSACCESS

Function CORRECTDATE(INPUTDATE As Date) As Date 

    If IsDate(INPUTDATE) Then 

     If INPUTDATE >= #1/1/1900# Then 
      CORRECTDATE = DateAdd(yyyy, 100, INPUTDATE) 
     Else 
      CORRECTDATE = INPUTDATE 
     End If 

    Else 
     CORRECTDATE = Null 
    End If 

End Function 
+0

Auch Ihr Code ist nicht sicher, da es nicht für die obere Grenze nicht überprüft. Es wird jedes Mal, wenn Sie es ausführen, +100 Jahre hinzufügen, da jedes 'INPUTDATE' nach dem 1. Januar 1900 liegt. – zmechanic

+0

Sah das, sobald ich die richtige Ausgabe hatte, danke –

Antwort

1

Sie müssen Anführungszeichen um yyyy:

CORRECTDATE = DateAdd("yyyy", 100, INPUTDATE) 
+1

Danke, das war so klar wie der Tag in der Dokumentation , aber ich denke ich bin heute Morgen zu tief im Wald :) –

Verwandte Themen