Vba - Número de dígitos después de la coma en TextBox

Resuelto
DjSKeud Mensajes publicados 103 Estado Miembro -  
 lahlah70 -
Hola a todos,

Mi problema no es tan fácil como parece en el título:
quiero mostrar un valor con 1 decimal después de la coma en un TextBox mientras que el valor real contiene 4.
Atención, no quiero hacer un round(xx, 1) con mi valor porque quiero que conserve su precisión de 4 cifras. En otras palabras, ¿existe un atributo del objeto TextBox que permita mostrar 1 decimal manteniendo la precisión de 4? (como un formato de número en una celda de Excel)

Gracias a todos por vuestra ayuda.

--
DjSkeud,
http://tomleskeud.free.fr

8 respuestas

  1. idrol Mensajes publicados 1 Fecha de registro   Estado Miembro 13
     
    intenta usted
    ElNum = 2.657856
    ElNum = FormatNumber(ElNum, 1)
    c en vb
    12
    1. lahlah70
       
      Muchas gracias!!
      0
  2. phil_232 Mensajes publicados 286 Estado Miembro 33
     
    en principio, es la función formqt (en VB). pero cuando quieres recuperar el valor de este textbox obtendrás el valor redondeado. en HTML puedes crear un atributo en el <input name="MyInput" value="&lt;MyFormattedValue" therealvalue="&lt;MyVariable&gt;" />. luego puedes buscar ese valor con document.getElementById("MyInput"),theRealValue (atención: JavaScript respeta mayúsculas y minúsculas - para funciones, variables, textboxes...)
    2
  3. phil_232 Mensajes publicados 286 Estado Miembro 33
     
    nada te impide almacenar ese valor en una variable. VBA es justo para eso.
    2
  4. DjSKeud Mensajes publicados 103 Estado Miembro 31
     
    Hola,

    no me expresé bien, evidentemente no hay 4000 textbox, pero en realidad tengo 2 listas desplegables que me permiten extraer un valor en una BDD. La cuestión es que, por rapidez y ergonomía, debo almacenar todos los valores modificados en una especie de página temporal, y luego, cuando todas las modificaciones estén terminadas, hacer las actualizaciones en mi BDD.

    Gracias por tu pista, voy a probarlo rápido, y te mantendré informado.

    --
    DjSkeud,
    http://tomleskeud.free.fr
    1
  5. DjSKeud Mensajes publicados 103 Estado Miembro 31
     
    ... estoy en VBA, no en HTML, desafortunadamente
    sí, ese es el problema, si hago un formato, pierdo para siempre la precisión de mi valor!!
    Gracias de todas formas, pero el problema sigue siendo el mismo :(
    --
    DjSkeud,
    http://tomleskeud.free.fr
    0
  6. DjSKeud Mensajes publicados 103 Estado Miembro 31
     
    Hola,

    No, en serio, ya lo pensé, créeme, el problema es que mi TextBox sirve no solo para mostrar valores, sino también para introducirlos, y además tengo unas 4000 valores que debo mantener en caché (si vuelvo a usar tu técnica) porque necesito tener acceso a ellos en todo momento. En otras palabras, no es posible crear una especie de variable de tampón que enlace la visualización de 4 dígitos después de la coma con la de 1. ¿Estoy claro?

    --
    DjSkeud,
    http://tomleskeud.free.fr
    0
  7. phil_232 Mensajes publicados 286 Estado Miembro 33
     
    "mi TextBox sirve no solo para mostrar valores, sino también para la entrada"
    ya no te sigo tanto. ¿tú muestras un número después de la coma, verdad? luego se pueden, de todos modos, escribir muchos dígitos tras la coma en modo entrada, pero en la visualización tras la entrada debe mostrar solo una coma, aunque en segundo plano trabajas con los 4 después de la coma. ¿EH? tu usuario ¿qué diría si ingresa 1.4567 y luego ve 1.4 y en un cálculo tipo "por dos" ve como resultado 2.9, aunque tu visualización debería dar 2 * 1.4 = 2.8. Creo que hay un problema.

    "además tengo unas 4000 valores". ¿QUÉ? ¿en un solo formulario, en toda la aplicación? también creo que hay un problema de diseño de la aplicación, pero bueno.

    en resumen: no, una textbox no "recuerda" un valor antiguo. pero Access conoce la propiedad Format (no es la función con ese mismo nombre, sino una propiedad de la textbox). esto no modifica el valor, sino solo su visualización SIEMPRE QUE el campo esté enlazado a la base de datos, es decir que la propiedad ControlSource se esté usando. a testear cómo se comporta en la entrada, pero normalmente debería funcionar para la entrada, pero la visualización podría fallar, es decir ves 4 dígitos durante la entrada, pero cuando haces un requery la visualización sería correcta.
    0
  8. fortyassin
     
    Hola, soy Yassin. Por favor, dime la metodología para codificar números con coma como (0.875) en base 2.
    0