Visualización condicional en Access?
Guenoë
Mensajes publicados
1
Estado
Miembro
-
gregory -
gregory -
Hola,
En mi base de datos Access, busco mostrar un campo de un formulario condicionado por el valor de otro campo en el mismo formulario.
En las condiciones de ejecución de las macros hay acciones para mostrar un informe, una tabla, etc... pero no encuentro nada respecto a la visualización condicional de campos.
¿Puede ayudarme?
Gracias de antemano.
En mi base de datos Access, busco mostrar un campo de un formulario condicionado por el valor de otro campo en el mismo formulario.
En las condiciones de ejecución de las macros hay acciones para mostrar un informe, una tabla, etc... pero no encuentro nada respecto a la visualización condicional de campos.
¿Puede ayudarme?
Gracias de antemano.
Configuración: Windows Vista Firefox 2.0.0.11
1 respuesta
-
Tu campo de formulario podría ser invisible y, cuando cumpla ciertos criterios, hacerse visible. ¿Si esa es tu pregunta? Tengo una solución.
Tomemos, por ejemplo, un formulario que serviría para introducir los precios de ciertos artículos. Este formulario contendría los siguientes campos por defecto:
NOMBRE EN LA TABLA
- Artículo
- Costo
- Precio de venta
- Razón
NOMBRE EN EL FORMULARIO
- txtArticulo
- txtCout
- txtPrix
- txtRazon
Pero si el usuario introduce un precio de venta menor que el Costo del artículo, aparece otro campo y es el campo RAZÓN. Que serviría para poner una razón para vender un artículo más barato que su costo de compra (ejemplo: Promoción para destruir a la competencia).
Primero hay que crear ese campo en la tabla. Luego, hay que dejar el control (el txtBox RAZÓN) invisible por defecto. Para ello, en las propiedades de txtRazon, hay que poner VISIBLE en FALSE.
Luego hay que establecer una condición para su visualización. La condición es: SI precio < costo MUESTRA RAZÓN. En VBA queda:
IF [me.txtPrix]<[me.txtCout] THEN txtRazon.visible = TRUE
Ahora que tenemos nuestra “fórmula”, Access debe tratarla en el momento oportuno. Este momento es tras la actualización del txtBox de precio y solamente si un Costo también está presente.
Por lo tanto, hay que insertar nuestra fórmula en el evento AFTERUPDATE de txtPrix. Para hacerlo hay que ir a las propiedades de txtPrix, pestaña EVENT y colocar el código en AFTERUPDATE.
Lo que se verá sería así:
SUB txtPrix_AfterUpdate
IF IS NOT NULL(me.txtCout) THEN
IF [me.txtPrix]<[me.txtCout] THEN txtRazon.visible = TRUE
END IF
END SUB
Lo que ocurre es: tras la actualización del campo PRECIUM, Access verifica si el campo COSTO no está vacío. Si no está vacío, verifica si el PRECIO es menor que el COSTO y, si es así, hace visible el campo RAZÓN.
Voilà.
PS: También hay que incluir este procedimiento en ONCURRENT para que la caja de RAZÓN se muestre cuando se regresa a un registro anterior.