![]() |
||||||
|
|
||||||
Un control numéricoEjemplo en Access 2000, en el que se simula un cuadro para la introducción de números, con 2 flechas a la derecha para aumentar o disminuir el número.
En algunos programas de Windows aparecen cajas para introducir números enteros, con la opción de tener 2 flechas a la derecha de la caja para aumentar o disminuir el número. Por ejemplo, en la configuración regional tenemos uno de esos controles para seleccionar el año límite cuando se introduce únicamente las 2 últimas cifras, tal y como se ve en la imagen. Este tipo de control no es estándar, pero con un poquito de ingeniería lo podemos imitar. No te asustes con lo de "ingeniería", es sólo una expresión ;-). Primero necesitamos los controles que van a servir para dar ese aspecto a un cuadro de texto normal, y que van a ser los siguientes:
Tras colocar el cuadro de texto en el formulario, pasamos a colocar los 2 controles de imagen, le indicamos a Access qué imágenes queremos usar, y nos peleamos un poco con las dimensiones y posiciones para que queden a la derecha del cuadro de texto, y que parezca que están acopladas al control. Ahora colocamos los 2 botones de comando justo encima de las imágenes, cada uno con las dimensiones y posición idénticas a la de la imagen que tapa. No te preocupes si la imagen no se ve en la vista diseño, cuando se abra el formulario en vista normal, la veremos ;-) Ahora vamos con la modificación de las propiedades. Para el cuadro de texto, lo primero es, si va a ser dependiente, escoger un campo de la tabla o consulta que almacene un número. Y como este tipo de controles se muestran normalmente con números enteros, en el ejemplo he escogido un campo con un tipo de datos de este estilo: Número entero. También debemos establecer la regla de validación de ese cuadro de texto, si es que no tenemos una regla definida para el campo. Así nos evitamos que con las flechas el usuario no pueda pasar de cierto número, pero tecleándolo sí que lo pueda exceder. En mi ejemplo, la regla es "Entre -100 y 100". Podemos modificar el formato, la máscara, etc., pero eso os lo dejo a vuestro gusto, ya que estas propiedades no van a interferir mucho con el aspecto que queremos dar. Para los controles de imagen tampoco necesitamos modificar ninguna propiedad, ya que su misión es meramente decorativa; son los botones de comando quienes manejan todo el "cotarro". Lo único a tener en cuenta, es darles un nombre descriptivo, para saber luego qué hacen (que si no, luego ya no nos acordamos de qué son ni para qué sirven). Y vamos a por estos botones de comando. Primero, los nombres. En el ejemplo, como van a modificar el campo cantidad, les he dado los nombres
Por si acaso no te has dado cuenta, a estas propiedades se les asignan los mismos valores para los 2 botones de comando. Y ahora sólo nos queda establecer el código para los eventos Al hacer click de los 2 botones de comando. Vamos a empezar por el botón que aumenta el número:
Private Sub cmdUpCant_Click()
If Nz(Me.cantMov, -100) < 100 Then Me.cantMov = Nz(Me.cantMov, 0) + 1 DoEvents End If End Sub Te recuerdo que mi botón de comando para aumentar se llama Y para el evento del botón que va a reducir la cantidad, el código es muy similar:
Private Sub cmdDownCant_Click()
If Nz(Me.cantMov, 100) > -100 Then Me.cantMov = Nz(Me.cantMov, 0) - 1 DoEvents End If End Sub Lo que cambia es que en vez de comprobar el número mayor, comprobamos el número menor (-100). Y si te fijas, estos límites son los mismos que los establecidos para la regla de validación del cuadro de texto. Al tener los mismos límites, nos evitamos posibles anomalías. Por último, ver que en los 2 códigos, al aumentar o disminuir el valor, si este no existe, usamos el cero como defecto, para no empezar desde el principio o desde el final, sino de una posición intermedia o, mejor dicho, más lógica; si no hay nada, es que está a cero ;-> Otras cosillas que tiene el ejemplo son las siguientes:
Revisiones
Descargas |
||||||
|
2008 Patxi Sanz Libro de visitas |