Das Problem sitzt in wenigen Zeilen. Der Code prüft, ob das Jahr unter 1000 liegt, und setzt eine einzelne Null voran. Dieses Auffüllen – angeblich für historische Daten wie die Gründung der Tang Dynasty – scheitert bei allem vor 1000 AD. Caesar Augustus starb 14 AD, ergibt „014

historical-date.vb
mnYear% = CInt(Year(vntDate))
If mnYear% < 1000 Then
msYear$ = "0" & Trim$(CStr(mnYear%))
Else
msYear$ = Trim$(CStr(mnYear%))
End If