border
VB 6
 
 
  #1 (permalink)  
Antiguo 21-09-2005, 11:34:27
Avatar de Insomnia17
Gran Participación en el Foro
 
Registrado: abr 2004
Posts: 402
Créditos: 10.221
Insomnia17 Valoración +2
Predeterminado TextBox y Decimales

Hola

Tengo untextbox en el que introduzco cifras con decimales. El problema es que si introduzco 0,87 y paso al siguiente textbox me combierte la cifra en 87

Si introduzco 0.87 y paso al siguiente textbox me pone 0,87

Lo que no entiendo es, si me muestra el simbolo decimal con una ',' por que no puedo introducir el valor con la ',' y tengo que hacerlo con '.'

Tengo la configuración regional en español (simbolo decimal ',').

Que puedo hacer para que me acepte la ',' para introducir los datos?

--Gracias--
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #2 (permalink)  
Antiguo 21-09-2005, 13:52:23
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 9.331
Créditos: 76.312
J.M.Movilla ha deshabilitado la reputación
Predeterminado

Es muy frecuente encontrarte con esta anomalía en el tratamiento del punto y la coma, salvo que utilices componentes apropiados para ingresar datos numéricos (MaskEdBox). Yo personalmente prefiero continuar con el TextBox y utilizar una rutina que prevea la corrección en el uso del signo decimal, tal como presento en el fichero adjunto. Con ello puedes ingresar coma o punto, a tu conveniencia.

La definición de las variables conviene que la hayas pública en un Módulo. Así te servirá para todos los formularios de tu proyecto.
Archivos Adjuntos
Tipo de Archivo: zip coma_y_punto.zip (1,8 KB, 366 visitas)
__________________
José María Movilla Cuadrado
______________________
Normas del foro
www.foro.vb-mundo.com
www.vb-mundo.com
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #3 (permalink)  
Antiguo 21-09-2005, 13:58:19
Avatar de juancarlosavalos
Gran Participación en el Foro
 
Registrado: jul 2005
Ubicación: Libertad / Merlo prov Buenos Aires
Posts: 206
Créditos: 558
juancarlosavalos Valoración +2
Predeterminado Re: TextBox y Decimales

Cita:
Empezado por Insomnia17
Hola

Tengo untextbox en el que introduzco cifras con decimales. El problema es que si introduzco 0,87 y paso al siguiente textbox me combierte la cifra en 87

Si introduzco 0.87 y paso al siguiente textbox me pone 0,87

Lo que no entiendo es, si me muestra el simbolo decimal con una ',' por que no puedo introducir el valor con la ',' y tengo que hacerlo con '.'

Tengo la configuración regional en español (simbolo decimal ',').

Que puedo hacer para que me acepte la ',' para introducir los datos?

--Gracias--
Este código sirve para convertir en un valor DOUBLE al texto que escribas en la caja, y luego al perder el foco esta, te muestra el valor con un formato de punto decimal y dos dígitos obligatorios detrás de el. Dicho código es indiferente al tipo de configuración de la máquina, tu deberías escribir " , " para números decimales y " . " para los miles y millones.

Private Sub txtNumber_LostFocus()
On Error Resume Next
txtNumber.Text = Format(CDbl(txtNumber.Text), _
"#,###,###,##0.00####")
End Sub

Private Sub txtNumber_GotFocus()
' On Error is necessary to account for empty fields.
On Error Resume Next
txtNumber.Text = CDbl(txtNumber.Text)
End Sub

Lo único que debes hacer para que funcione correctamente es pegar el código en tu formulario y tener un textbox con (Nombre) idéntico a "txtNumber" o cambiar en el código el nombre del texbox.
Espero que sea lo que necesites.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #4 (permalink)  
Antiguo 22-09-2005, 07:29:35
Avatar de Insomnia17
Gran Participación en el Foro
 
Registrado: abr 2004
Posts: 402
Créditos: 10.221
Insomnia17 Valoración +2
Predeterminado

Hola, gracias J.M.Movilla

He intentado aplicar tu ejemplo a mi caso, pero NADA no hay manera de que me funcione. He creado un pequeño ejemplo que muestra lo que estoy intentando hacer con mi proyecto.

Si pudieses echarle un vistazo...

P.D. Gracias juancarlosavalos ahora mismo me pongo a intentarlo de tu forma, ya comentare.

--Saludos--
Archivos Adjuntos
Tipo de Archivo: rar coma_y_punto.rar (8,5 KB, 62 visitas)
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #5 (permalink)  
Antiguo 22-09-2005, 08:50:12
Avatar de acalanto
Administrador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 6.227
Créditos: 53.028
acalanto ha deshabilitado la reputación
Predeterminado

Si utilizas un texto con formato puede provocar confusiones al conversor de tipos. Por ejemplo Cdbl("3123.415") devuelve una cifra completamente diferente si el separador decimal es ','. Para solucionar este 'quebradero de cabeza' y garantizar que todo funciona según lo previsto, desarrolle una función que lo convierte.


Código:
Public Function DConv(v As Variant) As Variant

    On Local Error Resume Next
    
    If InStrRev(v, ",") <> 0 Then
        DConv = CDbl(v)
    ElseIf InStrRev(v, ".") <> 0 Then
        DConv = CDbl(Val(v))
    Else
        DConv = CDbl(Val(v))
    End If

End Function
Espero que te resulte útil.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Leer detalladamente las normas del foro es una buena forma de comenzar a participar en él. Te llevará unos pocos minutos y el colectivo de usuarios te lo agradecerá. <si no las has leído sigue este enlace>
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #6 (permalink)  
Antiguo 22-09-2005, 12:25:27
Avatar de juancarlosavalos
Gran Participación en el Foro
 
Registrado: jul 2005
Ubicación: Libertad / Merlo prov Buenos Aires
Posts: 206
Créditos: 558
juancarlosavalos Valoración +2
Predeterminado

Si enlazas la caja de texto directamente con la tabla, la única forma de escribir las cosas es en formato tradicional (ingles), asi que tu text2 solo reconoce el " . " para anotaciones decimales. Aunque intentes darle formato no te respondera, pues esta vinculada con la tabla, con lo cual debes usar otro forma de vincular los datos con la tabla, para poder validar estos antes de editarlos en la base.
Espero que te sirva mi humilde colaboración.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #7 (permalink)  
Antiguo 22-09-2005, 14:28:07
Buena Participación en el Foro
 
Registrado: sep 2005
Ubicación: Buenos Aires - Argentina
Posts: 59
Créditos: 350
chichi60 Valoración +2
Contactar con chichi60 a través de MSN Contactar con chichi60 a través de Yahoo
Predeterminado

Les comento que hace mas de 4 ños hemos tenido que realizar un sistema de gestion administrativo, para lo cual el ingreso de cantidades e importes era moneda corriente, para lo cual mi compañero realizó un control de usuario, que te adjunto, que parte de codigo se hace mención en el proyecto aportado por Jose Maria.

Es que les envio este control para dicho tema.

Saludos,
Cita:
Empezado por J.M.Movilla
Es muy frecuente encontrarte con esta anomalía en el tratamiento del punto y la coma, salvo que utilices componentes apropiados para ingresar datos numéricos (MaskEdBox). Yo personalmente prefiero continuar con el TextBox y utilizar una rutina que prevea la corrección en el uso del signo decimal, tal como presento en el fichero adjunto. Con ello puedes ingresar coma o punto, a tu conveniencia.

La definición de las variables conviene que la hayas pública en un Módulo. Así te servirá para todos los formularios de tu proyecto.
Archivos Adjuntos
Tipo de Archivo: zip numbox.zip (3,4 KB, 171 visitas)
__________________
Julio Alberto Garcia Deu
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #8 (permalink)  
Antiguo 23-09-2005, 06:48:48
Avatar de Insomnia17
Gran Participación en el Foro
 
Registrado: abr 2004
Posts: 402
Créditos: 10.221
Insomnia17 Valoración +2
Predeterminado

Gracias a todos por la ayuda

Creo que ya lo he solucionado, y de una forma muy sencilla, al principio meti este código en el keypress

Código:
If KeyAscii = 44 Then KeyAscii = 46
De esa forma al pulsar ',' en realidad el usuario escribia un '.'. Pero mirando un poco he descubierto una propiedad del TextBox, DataFormat, que poniendolo como número, puedo introducir los decimales con el simbolo ','. He visto como relaciona los datos con access y de momento parece que funciona muy bien.

Alguien ve algún inconveniente en trabajar con cifras de esta forma?, quiero decir, puede darme algún problema realizarlo de esta manera?.

--Saludos--
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #9 (permalink)  
Antiguo 23-09-2005, 07:59:51
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 9.331
Créditos: 76.312
J.M.Movilla ha deshabilitado la reputación
Predeterminado

Pues, ¿qué quieres que te diga, amigo Insomnia17? Que no entiendo por qué quieres poner los decimales con la coma, con lo cómodo y práctico que es utilizar el punto como todo el mundo... Porque ¿tú no utilizas el teclado numérico para introducir las cantidades?... Y si tienes ahí el punto, ¿Por qué tienes que ir a buscar la coma en el teclado alfabético? Yo creo que debes usar los métodos estándar, que son los que utiliza el 95 % de los usuarios... Ésa es mi opinión.
__________________
José María Movilla Cuadrado
______________________
Normas del foro
www.foro.vb-mundo.com
www.vb-mundo.com
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #10 (permalink)  
Antiguo 26-09-2005, 07:29:25
Avatar de Insomnia17
Gran Participación en el Foro
 
Registrado: abr 2004
Posts: 402
Créditos: 10.221
Insomnia17 Valoración +2
Predeterminado

Hola

La verdad es que yo creo que siempre he introducido la coma con la tecla ',' y ademas como ahora trabajo con un portatil, pues no tengo teclado numérico.

Gracias por el comentario, supongo que consultare con los usuarios del programa y tendré en cuenta la forma mas sencilla para ellos.

--Saludos--
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
Respuesta


Herramientas

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
Dar Click en un TextBox y Borrar los demas Textbox mexican Visual Basic 6.00 8 04-08-2010 08:06:14
Decimales en C prizmarfall C# .NET / C / C++ 2 13-09-2007 09:41:58
decimales sigmax Crystal Reports 1 24-11-2006 20:55:56
Detectar el Punto y Dos Decimales en un TextBox mexican Visual Basic 6.00 2 08-11-2005 16:03:46
Decimales !!!!!!!!!!!!!!!!!!!!!!! garepa Crystal Reports 2 17-09-2004 00:00:00


La franja horaria es GMT. Ahora son las 07:29:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios


right
Inactive Reminders By Icora Web Design