Access - Numero negativo

 
Vista:

Numero negativo

Publicado por Juanillo (2 intervenciones) el 21/01/2008 17:58:06
Buenas

el otro dia pedia informacion respecto a como que al meterme en un cuadro de texto, cada vez que pulse un numero el contenido me salga negativo ...es decir, entro en el campo texto, pulso 1 y me sale -1, pulso el 2 y me sale -12

no me valen soluciones como el After Update puesto que esto quiero que sea mientras el usuario escribe no cuando ya introduce en la tabla el valor.

Muchas Gracias de antemano a todos.
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:Numero negativo

Publicado por Chea (1015 intervenciones) el 21/01/2008 19:21:47
Puedes probar a poner algo así en el evento Change:

Me.Micontrol.Text = -1 * abs(me.Micontrol.text))

Saludos
José Bengoechea Ibaceta
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:Numero negativo

Publicado por Juanillo (1 intervención) el 21/01/2008 20:43:35
Ante todo Chea muchas gracias por tu ayuda

pero, lo has probado ? lo digo porq no me funciona...introduzco el numero y se va el cursor a antes del - y se fastidia el invento.

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

RE:Numero negativo

Publicado por Enrique (1299 intervenciones) el 21/01/2008 21:10:54
El invento de Chea funciona, lo que pasa es que hay que depurarlo un poco, por ejemplo, el Evento Change no es el mas adecuado porque el campo efectua un parpadeo desagradable al teclear, pero básicamente es la función ABS la que hace el trabajo, tal como te ha indicado Chea. Prueba así usando el Evento "Al subir una tecla". además luego hay que enviar el cursor al final del campo con SelStart:

Private Sub Texto1_KeyUp(KeyCode As Integer, Shift As Integer)
On Error Resume Next
Texto1.Text = Format(Abs(Texto1.Text), "-#")
Texto1.SelStart = Len(Texto1) + 1
End Sub

Private Sub Texto1_KeyPress(KeyAscii As Integer)
Dim nCarac As Integer
nCarac = 11 '=Longitud del campo (el signo - y diez dígitos)
If InStr("0123456789", Chr(KeyAscii)) = 0 And KeyAscii <> 8 Then KeyAscii = 0
If Len(Texto1.Text) >= nCarac And Texto1.SelStart = 0 Then Exit Sub
If Len(Texto1.Text) >= nCarac And KeyAscii <> 8 Then KeyAscii = 0
End Sub

Este último Evento es opcional y sirve para impedir teclear caracteres que no sean dígitos y para delimitar el tamaño del campo.

Saludos
Enrique
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:Numero negativo

Publicado por Juanillo (2 intervenciones) el 22/01/2008 16:52:16
Simplemente Perfecto!!!!

Muchisimas Gracias Enrique ( y a todos los demas que tambien lo han intentado).
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:Numero negativo

Publicado por Enrique (1299 intervenciones) el 22/01/2008 17:58:04
Me alegro que te haya servido, y además si haces este pequeño cambio al final, tambien te va colocando los puntos de los miles cuando los dígitos tecleados son mas de tres.

"-#,#")

Un saludo
Enrique
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