La Web del Programador: Comunidad de Programadores
 
    Pregunta:  5086 - UN CONTROL OCX PARA CAPTURAR DATOS TIPO MONEDA
Autor:  Pedro Padilla Gaytán
Que tal, quisiera ver va posibilidad de que alguien me dijera de un control OCX gratuito, que me sirva para capturar y formatear cifras numericas, como dinero.

Es que he tratado con le MaskEditBox del Visual Basic 6.0 y como que tiene detallitos que no me gustan y me generan algunos errores. Agradeceria de mucho si alguien me pudiera ayudar.

  Respuesta:  Daniel Morin
Yo tengo un ocx que te puede facilitar la existencia, o en su defecto te puedo pasar una función que al respecto tuve que realizar antes de encontrar el ocx , mandame un mail y con gusto te lo envio junto con un ejemplo.

  Respuesta:  Bases de Datos Sistemas C.A.
Saludos este problema lo resuelves sin necesidad de un control, con hacer una funcion de validacion para la moneda y colocando en el evento chanqe del textbox, nosotros tenemos una funcion pero en este momento no lo anexo porque no estoy en la oficina pero si la necesitas escribenos y te la enviamos sin embargo te doy mas o menos una idea.

' es importante resaltar que es necesario que en la configuracion regional la moneda y los numero
' tengan el mismo separador porque en la base de datos si son distintos dan problemas desde el
' punto de vista que que en vez de guardarse como miles se guardan como unidad y decimales

sub textbox_change()
validacion(textbox)
end sub

sub validacion(text as textbox) ' te recuerdo que los valores en VB son por referencia al menos que indiques lo contrario por lo tanto se va actualizar automaticamente

dim num ' esta variable se le colocara un cantidad de miles para saber quien es el separador de miles y decimales
dim lon ' esta variable es para la longitudad de la cadena
num=formatnumber(num,2) ' esta funcion toma del windows los separadores POR EJEMPLO: 4000= 4.000,00
' de aqui en adelante no recuerdo pero te lo doy en seudocodigo
'tomar la 3 posicion de derecha a izquierda: creo que es rigth(num,3,1) con esto tiene el separado decimal
'tomar la 2 posicion de izquierda a derecha: creo que es left(num,2,1) con esto tiene el separado miles
lon=len(text.text)
for i = 1 to lon
recorre la cadena(cadena,i,1) ' esta funcion esta con este formato pero no recuerdo
' y validas
si entonces
break
next
end sub

www.bdsca.com