Cita:
Iniciado por Daniel_7
la pregunta es ¿Hay forma de que un formato te sirva para ambas configuraciones? porque parece q las grillas quedan formateadas de acuerdo a la configuracion del PC en que se realizo el código
Tienes dos opciones
1º podrias hacer es que al momento de instalar tu aplicacion te sugiera cambiar la configuracion
2º lo otro seria como alguien mencionan antes de convertirlo a numeros reemplaces las (,) por los (.) pero eso depende de la oncfiguracion regional que tengas
Ahora para modificar la configuracion regional sino me equivoco es con
SetLocaleInfo pero la verdad que no tengo nada a la mano haber investiga un poco mas sobre esa funcion. (En todo caso apenas encuentre algo te paso)
Y el siguiente codigo es para obtener algunas caracteristicas de la configuracion regional una ves que obtengas cual es el de decimales y de miles puedes reemplazar segunsea nesesario
Código:
Const LOCALE_SDECIMAL = &HE ' decimal separator
Const LOCALE_STHOUSAND = &HF ' thousand separator
Const LOCALE_USER_DEFAULT = &H400
Const LOCALE_SENGCOUNTRY = &H1002 ' English name of country
Const LOCALE_SENGLANGUAGE = &H1001 ' English name of language
Const LOCALE_SNATIVELANGNAME = &H4 ' native name of language
Const LOCALE_SNATIVECTRYNAME = &H8 ' native name of country
Private 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
Private Sub Form_Load()
MsgBox "separador de decimales ( " & GetInfo(LOCALE_SDECIMAL) & " )"
MsgBox "separador de miles ( " & GetInfo(LOCALE_STHOUSAND) & " )"
End Sub
Public Function GetInfo(ByVal lInfo As Long) As String
Dim Buffer As String, Ret As String
Buffer = String$(256, 0)
Ret = GetLocaleInfo(LOCALE_USER_DEFAULT, lInfo, Buffer, Len(Buffer))
If Ret > 0 Then
GetInfo = Left$(Buffer, Ret - 1)
Else
GetInfo = ""
End If
End Function