Formatear número

Me gustaría formatear el valor de un campo de tipo número, de tal forma que aparezca la puntuación en los miles, y la coma para los decimales, pero esta última solo debe aparecer si existen decimales.
Si lo formateo con el parámetro "Standard" siempre me pone 2 ceros tras la coma si el número no tiene decimales.
Lo más parecido q he conseguido es Format(valor, "#,#.##"), pero me deja la coma aunq no tenga decimales.

3 Respuestas

Respuesta
1
Hazlo condicional:
If valor=Round(valor,0) Then
doc.campo=Format(valor,"#,##0")
Else
doc.campo=Format(valor,"#,##0.00")
End If
Respuesta
1
Lo más cómodo para trabajar con números es poner el campo de número tipo texto.
Así es más fácil controlar si meten texto o negativos... sin que salte el alert de notes indicando que el campo tiene un valor que no es válido (o algo así).
Coo se hace esto, debemos saber la longitud (len), ahora debemos saber si tiene coma o no la buscamos. Si tiene coma buscamos su posición (normalmente la 2ª de la derecha), la longitud total - la posición de la coma es el número entero.
Empezando por la derecha, cada 3 le añades el punto a los miles. Luego lo unes todo y ya lo tienes. Si no tiene decimales sólo realizas el 2º paso que te indico.
Aunque parece muy liado cuando empieces verás que es bastante sencillo y efectivo.
Gracias, pero estaba buscando esto:
If valor=Round(valor,0) Then ' No tiene decimales
doc.campo=Format(valor,"#,##0")
Else
doc.campo=Format(valor,"#,##0.00")
End If
Respuesta
1
En las propiedades del campo en el formulario, dile que es numérico, y tiene un tick para decirle que te ponga separados los millares.
Ademas dile que el numero de decimales no es fijo, y así siempre te lo guardará formateado adecuadamente.
No se donde usas el format() ese.
Tienes razón, no me he explicado bien.
El número almacenado en el campo lo paso a un documento word, y es en ese momento donde le aplico el format, porque el valor del número se almacena en el documento sin ningún formato de puntuación.
¿Y qué tal si cres en el formulario un campo donde lo visualizes debidamente formateado como tu qiuieres y de allí lopasas a word?
Al final he utilizado la función Round para saber si el número tiene decimales, y format para formatear a mi gusto.
Muchas gracias y un saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas