Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Problema de numeros

Estas en el tema de Problema de numeros en el foro de Visual Basic clásico en Foros del Web. Buenas forero, vuelvo a ser yo... poco a poco he ido solucionando los problemas... Tengo 10 textbox * 3 cantidad * precio = total para ...
  #1 (permalink)  
Antiguo 07/02/2011, 18:29
 
Fecha de Ingreso: marzo-2008
Mensajes: 16
Antigüedad: 16 años, 1 mes
Puntos: 2
Pregunta Problema de numeros

Buenas forero, vuelvo a ser yo... poco a poco he ido solucionando los problemas... Tengo 10 textbox * 3

cantidad * precio = total

para que se generara la multiplicacion cree un boton y todo bien.
para el iva necesitaba que se cargara automatico pero igual con un boton, bien.
total, cree un boton, bien.

Mi problema es el siguien: los 10 textbox solo me aceptan numero sin coma ni letra ni punto.

Como hago para que el precio, subtotal, total, iva, monto a pagar me acepten . y ,
Ejemplo: 4.119,05

El codigo que use fue:

Private Sub txtSubtotal_KeyPress(KeyAscii As Integer)
'Hace que la caja de texto solo acepte números.
If Not (KeyAscii >= 48 And KeyAscii <= 57 Or KeyAscii = 8) Then
KeyAscii = 0
End If
End Sub

AGRADEZCO SU AYUDA.
  #2 (permalink)  
Antiguo 08/02/2011, 01:44
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Problema de numeros

En las propiedades de los TextBox, si no me equivoco, puedes definir que tipo de dato acepta, le habras puesto entero.
  #3 (permalink)  
Antiguo 08/02/2011, 03:12
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Problema de numeros

Solo tienes que incluir el Ascii del punto y la coma:

If Not (KeyAscii >= 48 And KeyAscii <= 57 Or KeyAscii = 8 Or KeyAscii = 44 Or KeyAscii = 46) Then
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #4 (permalink)  
Antiguo 08/02/2011, 21:09
 
Fecha de Ingreso: marzo-2008
Mensajes: 16
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: Problema de numeros

Que va pkj he intentado y nada, pase 2 horas pegado y como verais nose mucho de vb6.
  #5 (permalink)  
Antiguo 09/02/2011, 03:27
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Problema de numeros

Pues no sé donde tendrás el problema, porque yo he probado así y admite numeros, puntos y comas (y retroceso).

Código vb:
Ver original
  1. Private Sub Text1_KeyPress(KeyAscii As Integer)
  2.   If Not (KeyAscii >= 48 And KeyAscii <= 57 Or KeyAscii = 8 Or KeyAscii = 44 Or KeyAscii = 46) Then KeyAscii = 0
  3. End Sub
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #6 (permalink)  
Antiguo 09/02/2011, 20:34
 
Fecha de Ingreso: marzo-2008
Mensajes: 16
Antigüedad: 16 años, 1 mes
Puntos: 2
De acuerdo Respuesta: Problema de numeros

Buenas man, aqui te muestro el problema que tengo en cada textbox ya que solo me muestra la coma en el iva y los demas no me toma unidades de mil ni decimales ej. 10.000,99

Aqui tengo la imagen:

  #7 (permalink)  
Antiguo 09/02/2011, 23:38
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
De acuerdo Respuesta: Problema de numeros

La imagen ya volo subela a otro host de images.
Yo lo hago de esta manera, no se si sera lo que necesitas exactamente pero seguro te sirve de algo.

Código:
Private Sub Text1_KeyPress(KeyAscii As Integer)

'Solo permite estos caracteres
If (Chr(KeyAscii) < "0" Or Chr(KeyAscii) > "9") And _
   Chr(KeyAscii) <> vbBack And _
   Chr(KeyAscii) <> "," And _
   Chr(KeyAscii) <> "." Then
   KeyAscii = 0
End If

'##Solo permite que se ingrese un solo punto y una sola coma##
'1 si coloca (.) y si encuentra que ya esta el(.) then no hace nada
If Chr(KeyAscii) = "." And InStr(1, Text1, ".") > 0 Then KeyAscii = 0
'2 si coloca (,) y si encuentra que ya esta la(,) then no hace nada
If Chr(KeyAscii) = "," And InStr(1, Text1, ",") > 0 Then KeyAscii = 0
  
End Sub
Saludos
  #8 (permalink)  
Antiguo 10/02/2011, 16:06
 
Fecha de Ingreso: marzo-2008
Mensajes: 16
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: Problema de numeros

PKJ, he colocado la formula que me dijistes y aun sigo sin obtener el resultado que deseo.

Franko1809, gracias por el codigo el cual me acepta el . y , colocandoselo uno mismo pero no me lo toma cuando hago la multiplicacion y la sumatoria de todos los textbox para obtener el monto total.

Probe cambiandole los datos en DataFormat : Number y nada.
  #9 (permalink)  
Antiguo 10/02/2011, 16:11
 
Fecha de Ingreso: marzo-2008
Mensajes: 16
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: Problema de numeros

Ejemplo delo que deseo:

Text1.txt - Text2.txt - Text3.txt
monto precio total
20 * 425 = 8.500

Agradezco su ayuda

Última edición por belnels; 10/02/2011 a las 16:27
  #10 (permalink)  
Antiguo 10/02/2011, 17:50
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Problema de numeros

No se si entendi bien pero creo que necesitas poner formato al hacer tus operaciones p.e

txtTotal = Format(txtPrecio*txtCantidad, "Fixed") ó

txtTotal = Format(txtPrecio*txtCantidad, "###.###,00")

Al utilizar fixed toma el formato de la configuracion regional del sistema osea si tiene la configuracion Español(Peru) sera ###,###.00 nose si se entiende lo que digo?

Para tu ejemplo te devolveria 20 * 425 = 8.500,00 ó 8,500.00 dependiendo de la configuracion regional.

Te doy otro dato que es importante y quizas te interese saber:
La funcion Val siempre toma un punto como decimal osea siempre sera 50850.25 en cambio la funcion CDbl toma el formato de la configuracion regional del sistema.

Etiquetas: numeros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:31.