Visual Basic - AYUDAS URGENTES!!!

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

AYUDAS URGENTES!!!

Publicado por Hernan (18 intervenciones) el 10/01/2005 13:30:44
Hola como andan? bueno tengo varias consultas para hacerles:
1: Como puedo cambiar la configuracion regional del windows al abrirse un programa, necesito que me ponga siempre el punto como separador de decimales.

2: tengo una base de datos en access con el campo fecha, pero cuando la graba me hace lo siguiente:
si yo le paso 10/01/05, a veces me graba 01/10/05 y otras 05/01/10, ya le puse mascara de entrada en access, me fije si le pasa bien el parametro desde visual, y hice una consulta en access para agregar los datos, y todo eso lo hace bien, pero me sigue grabando la fecha de esa manera, que puede ser?? como lo soluciono?? gracias desde ya.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:AYUDAS URGENTES!!!

Publicado por jose carlos (340 intervenciones) el 10/01/2005 14:55:56
entra en panel de control, configuración regional busca en las pestañas número y fecha mira a ver si puedes poner los datos que quieres

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:AYUDAS URGENTES!!!

Publicado por Hernan (18 intervenciones) el 10/01/2005 15:08:17
Gracias por la ayuda, pero necesito hacerlo desde visual por comodidad del usuario, de la otra consulta no tenes idea de lo que puede ser que este mal??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDAS URGENTES!!!

Publicado por Benjo (679 intervenciones) el 10/01/2005 19:13:56
Las fechas son un caos esn ADO y oportunamente lo fueron en DAO
Lo que sucede es que debés determinar cuando grabás el formato en que lo querés hacer.
la sentencia sería
miFecha=format(miFecha,"dd/MM/yy")
Si tu configuración regional está establecida para msotrar la fecha de esta manera, entonces access lo hará así.
Pero si la consulta la haces mediante una instrucción SQL debés efectuar la consulta alrevés
miFecha=format(miFecha,"MM/dd/yy")

Te soy sincero, no se porque hace estas vueltas Acces, pero lo cierto es que he escuchado a muchos desarolladores despotricar contra los ingenieros de Bill.
En cuanto a la configuración regional, está en el registro de windows este parámetro y debe modificarse mediante una API de WIn32
La busco y si hay suerte te la envio.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDAS URGENTES!!!

Publicado por Benjo (679 intervenciones) el 10/01/2005 19:43:05
Private Const LOCALE_SDECIMAL = &HE ' separador de decimales
Const LOCALE_USER_DEFAULT = &H400
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 Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Long
Private Sub Command1_Click()
Dim strValor As String, Ret As String
strValor = ","

Ret = SetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, strValor)
If Ret > 0 Then
Message
Else
Debug.Print Err.Description
End If

End Sub

Private Sub Message()
MsgBox "El signo decimal es: " & GetInfo(LOCALE_SDECIMAL), vbInformation
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

Private Sub Command2_Click()
Message
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:AYUDAS URGENTES!!!

Publicado por Hernan (18 intervenciones) el 10/01/2005 21:12:51
Muchas Gracias por tu ayuda!! lo ultimo que me mandaste en que parte del form iria?? en el form load, del formulario principal?? gracias de nuevo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDAS URGENTES!!!

Publicado por Benjo (679 intervenciones) el 10/01/2005 21:50:02
Depende de donde quieras cambiar la Configuración del sistema.
Es conveniente, sólo cambiar la configuración cuando es preciso y luego reestablecerla, ya que muchas utilidades trabajan con la Configuración regional, y el cambio podría afectarlos.
Cuando vos llamás a la función SetLocaleInfo, estas cambiando automáticamente la configuración de la máquina.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDAS URGENTES!!!

Publicado por Hernan (1 intervención) el 11/01/2005 13:37:28
Hola , mira lo del "." anduvo barbaro pero me sigue jodiendo lo de las fechas, ahora si le pongo una fecha con el dia menor a 13 me lo pone bien, pero si le pongo una fecha con dia 13 o mayor, me pone 05/01/14 osea que me cambia el dia por el año, probe cambiar el formato pero no hace nada, tenes idea que puede ser?? gracias desde ya y por toda la ayuda que me diste
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDAS URGENTES!!!

Publicado por Benjo (679 intervenciones) el 11/01/2005 21:37:43
Lo que sucede es que las fechas son manejadas por Acces como EEUU
No te está rechazando el día, lo que sucede es que te rechaza el mes, el mes 13 no existe
Por eso pese a que vos ves la fecha bien en Acces y en el control DtPicker, cuando hacés una consulta SQL tenés que hacerla con formato EEUU
Mes/dia/año
Dim miFecha as String
miFecha=Format(miFecha,"MM/dd/yy")

Cuando hacés la instrucción SQL utilizás la variable mifecha
siempre previendo los numerales "#" & miFecha & "#"
Ejemplo
"Where tiempo = #" & miFecha & "#"
cuando te devuelva el resultado y vos leas las fechas, las vas a leer bien
dd/MM/yy

Si persiste, mostrame el código que utilizás para hacer la consulta y lo vemos aquí en el foro o por email, no hay ningún problema. En este foro igual hay muchos colegas que lidian día a día con este asunto de las fechas y cualquiera de ellos puede darte una mano.


Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar