Hola,te paso un codigo para saber el formato de fecha corta que esta configurado en la maquina...
En un Modulo(bas) Código:
Option Explicit
Public Const LOCALE_SSHORTDATE As Long = &H1F 'para averiguar el formato de fecha corta
Public Const LOCALE_SLONGDATE As Long = &H20 'para averiguar el formato de fecha larga
Public Const DATE_LONGDATE As Long = &H2
Public Const DATE_SHORTDATE As Long = &H1
Public Declare Function EnumDateFormats Lib "kernel32" Alias "EnumDateFormatsA" (ByVal lpDateFmtEnumProc As Long, ByVal Locale As Long, ByVal dwFlags As Long) As Long
Public Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
Public Function fGetUserLocaleInfo(ByVal lLocaleID As Long, ByVal lLCType As Long) As String
Dim sReturn As String
Dim lReturn As Long
lReturn = GetLocaleInfo(lLocaleID, lLCType, sReturn, Len(sReturn))
If lReturn Then
sReturn = Space$(lReturn)
lReturn = GetLocaleInfo(lLocaleID, lLCType, sReturn, Len(sReturn))
If lReturn Then
fGetUserLocaleInfo = Left$(sReturn, lReturn - 1)
End If
End If
End Function
Public Function fEnumDates(lDateFormatString As Long) As Long
fEnumDates = 1
End Function
En el Formulario: Código:
Option Explicit
Private Sub Form_Load()
Dim i As Long
Call EnumDateFormats(AddressOf fEnumDates, i, DATE_SHORTDATE)
MsgBox fGetUserLocaleInfo(i, LOCALE_SSHORTDATE)
End Sub
saludos.