Formatera datum med ‘rätt’ formatsträng

När datumsträngar ska användas i accessprogram är det många gånger viktigt att rätt formatsträng användas. Speciellt om programmet ska användas i olika länder. Då kan man inte använda ”svenska” formatering: Format(dat, "yyyy-mm-dd")
Istället kan man använda nedanstående funktion för att ta reda på vilken formatsträng som ska användas, anropet ser då ut så här: Format(dat, datumFmt())

' Ruturnerar en formatsträng
' som tex kan användas till funktionen Format()
' Exempel på svar:
' 1) "yyyy-mm-dd" om svenskt  datumformat används
' 2) "d.m.yyyy"   om finskt   datumformat används
' 3) "dd-mm-yyyy" om spanskt  datumformat används
' 4) "m/d/yyyy"   om USAs     datumformat används
' 5) "dd/mm/yyyy" om Engelskt datumformat används

Function datumFmt()
Dim Dat$, ch$, fmt$
Dat = CStr(DateSerial(2012, 1, 9))
If InStr(Dat, ”-”) Then ch = ”-”: Dat = Replace(Dat, ”-”, ”-”)
If InStr(Dat, ”.”) Then ch = ”.”: Dat = Replace(Dat, ”.”, ”-”)
If InStr(Dat, ”/”) Then ch = ”/”: Dat = Replace(Dat, ”/”, ”-”)
Select Case Dat
Case ”2012-01-09”: fmt = ”yyyy-mm-dd”   ‘ Sverige,Polen
Case ”2012-09-01”: fmt = ”yyyy-dd-mm”   ‘
Case ”2012-1-9”:   fmt = ”yyyy-m-d”   ‘
Case ”2012-9-1”:   fmt = ”yyyy-d-m”   ‘
Case ”09-01-2012”: fmt = ”dd-mm-yyyy”   ‘ Spanien
Case ”01-09-2012”: fmt = ”mm-dd-yyyy”   ‘ Österrike
Case ”9-1-2012”:   fmt = ”d-m-yyyy”      ‘ Finland
Case ”1-9-2012”:   fmt = ”m-d-yyyy”      ‘ Usa
Case Else: MsgBox ”Okänt datumformat.”: Stop
End Select
datumFmt = Replace(fmt, ”-”, ch)
End Function