Formato (¿?) del dato introducido en un InputBox.

Dudas sobre cualquier tema relacionado con Access que no tenga cabida expresa en los otros hilos
Rafael
Nivel 7
Mensajes: 280
Registrado: Dom Dic 27, 2015 10:33 am

Formato (¿?) del dato introducido en un InputBox.

Mensajepor Rafael » Sab Jul 09, 2022 7:52 pm

En una aplicación ACCESS que tengo en desarrollo pido al usuario en determinado procedimiento Sub que introduzca un dato en un InputBox, que después me llevo a un campo de texto.

El campo del formulario al que me llevo el valor del InputBox quiero que me represente un valor porcentual que podría ser DECIMAL en determinado momento -lo es si el usuario entra una fracción...-.

El caso es que si el usuario introduce efectivamente una número decimal, pero utilizando para introducir la coma flotante la tecla del 'punto' de la parte del teclado numérico -aquella que en EXCEL sí que 'produce' la deseada coma...-, en ACCESS el InputBox ignora la introducción de esa teórica coma y empalma la parte entera y la fracción, de tal guisa que si, por ejemplo, el usuario entra en el InputBox un 14.25, en lugar de volcarlo como un 14,25 lo hace como un 1425.

Solo si en lugar del 'punto numérico' del teclado de ese mismo nombre, el usuario introduce la 'coma' de la parte del 'teclado numérico', se vuelca al 14,25 % pretendido... pero no es esto lo que pretendo... ¿existe alguna forma de 'engañar' a ACCESS y su InputBox con el fin de que trate el dato introducido en él como número y no como texto?

Conectado
Avatar de Usuario
Fayad
Colaborador
Mensajes: 484
Registrado: Mié Oct 28, 2015 9:43 pm

Re: Formato (¿?) del dato introducido en un InputBox.

Mensajepor Fayad » Dom Jul 10, 2022 2:18 am

Salu2.

Avatar de Usuario
Neckkito
Moderador
Mensajes: 1254
Registrado: Dom Oct 25, 2015 3:42 pm

Re: Formato (¿?) del dato introducido en un InputBox.

Mensajepor Neckkito » Dom Jul 10, 2022 8:32 am

Hola!

Por aportar algunas ideas más al tema, si quieres saber si un dato es numérico échale un vistazo a la función isnumeric()

Por otra parte, otra opción sería coger el valor del inputbox y utilizar la función replace(), reemplazando el punto por una coma.

Todo lo anterior se podría complementar con lo que comentaba Fayad, por supuesto.

Saludos.
Access MVP 2017-2022
http://bit.ly/NckAccess

Rafael
Nivel 7
Mensajes: 280
Registrado: Dom Dic 27, 2015 10:33 am

Re: Formato (¿?) del dato introducido en un InputBox.

Mensajepor Rafael » Dom Jul 10, 2022 5:36 pm

Gracias a los dos, Fayad y Neckkito, pero no consigo lo que pretendía :?:

Código: Seleccionar todo

Dim DESC_INPUT As String
DESC_INPUT = InputBox("Informe el porcentaje de DESCUENTO")    'Se pide al usuario que informe un descuento
DESCUENTO = DESC_INPUT


Me echáis una manita más? :)

Avatar de Usuario
Neckkito
Moderador
Mensajes: 1254
Registrado: Dom Oct 25, 2015 3:42 pm

Re: Formato (¿?) del dato introducido en un InputBox.

Mensajepor Neckkito » Dom Jul 10, 2022 6:26 pm

Vamos a ver, Rafael, no es por no ayudarte, pero me da la sensación de que no has mirado en absoluto la información sobre las funciones que te hemos recomendado, dado que su aplicación es de lo más sencillo.

Si tengo un valor y quiero cambiar el punto por un guión, pues la función replace dice:

valor="48.4"
nuevoValor=replace(valor, "carácer que busco", "carácter por el cual he de cambiarlo")
Y después de aplicar replace() obtengo, como nuevo valor, 48-4

Para aplicar la función de conversión a doble necesito, primero, trabajar con un valor numérico. Una vez que tengo el valor en formato numérico su aplicación es
nuevoValor=cdbl(valor)

Insisto: no es por no quererte ayudar, pero al menos inténtalo, o pon lo que has intentado hacer y no te ha salido. Si te lo damos hecho no lo vas a aprender.

Sobre lo que sí me gustaría llamar tu atención es sobre el hecho de que defines la variable Desc_Input como string, cuando lo que quieres es recoger un valor numérico. Cuando te enfrentas a la posibilidad de que la variable pueda recoger varios tipos de datos, y para evitar errores, lo correcto sería definirla como Variant.

Por otra parte, y como creo que ya sabes, si quieres tener un mayor control sobre las acciones de usuario te recuerdo que tienes a tu disposición el ejemplo de Sveinbjorn de msgbox personalizado (1 y 2): https://is.gd/U57pAq. Si utilizaras este método, con poner el formato del textbox como numérico el propio Access te controlaría lo que introduce el usuario. Y, si no lo quisieras así, también podrías utilizar la función replace() para convertir el valor pasado. Esto es solo una idea, por si quieres hacerlo más "sofisticado" que un triste inputbox.

Saludos.
Access MVP 2017-2022
http://bit.ly/NckAccess

Rafael
Nivel 7
Mensajes: 280
Registrado: Dom Dic 27, 2015 10:33 am

Re: Formato (¿?) del dato introducido en un InputBox.

Mensajepor Rafael » Lun Jul 11, 2022 10:57 am

Tema resuelto, aunque, Miquel, te equivocabas cuando decías lo de "pero me da la sensación de que no has mirado en absoluto la información sobre las funciones que te hemos recomendado", porque sí que intenté destriparlas, pero me empeñaba en involucrar 'todo el valor' del dato mismo, no un carácter: la 'coma' o el 'punto' contenido en él. Solo tras tu segunda intervención lo he podido ver claro. :)

Ah! Y me he fabricado mi propio InputBox... mucho más eficiente que el ciertamente paupérrimo Input de defecto ofrecido por VBA.

Gracias.


Volver a “Cajón de sastre”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados