VB klarar inte att hantera datum i "YYYYMMDD" format, man måste använda "YYYY-MM-DD" format, det är synd. Men finns det något smart sätt att konvertera till något användbart format? Hej Löste det själv genom att inte använda det som date utan som en sträng som man formaterar såhär: själva grejen är att en användare kanske anger datumet på detta sätt i en textbox. 19990506 då går det inte att köra Cdate på det, type mishmash? Hej Ok tack, ja det är ju det enklaste. Jag visste inte att det fanns en sådan kontroll. Du bör ta hänsyn till att användare har olika format på sitt datu,. T.ex amerikaner har ju mm/dd/yyyy. Vilket gör det hela koplicerat. Det vill ju mata in datumet på sitt vis.Datumformat
Sv: Datumformat
Min favorit metod är att omvandla alla datum till en DataTyp Long
I dag blir siffran 37566 dvs antal dagar sedan 1900-01-01.
Option Explicit
Private Sub Command1_Click()
Dim longDate As Long
longDate = CDate(Date)
Label1.Caption = longDate
'Omvandla tillbaka
Label2.Caption = Format$(longDate, "yyyy mm dd")
End Sub
mvh
SvenSv: Datumformat
format("990506", "##-##-##")Sv: Datumformat
Sv: Datumformat
Oki på det, ett annat sätt du får tvinga honom att skriva som du vill
Det gör du bäst genom att använda en MaskEditTextBox
SvenSv: Datumformat
Sv: Datumformat
Du kan hämta aktuell datummasken med hjälp av API anrop:
[Separatorlösa datum (t.ex. 20021106)]