Imprimir página | Cerrar ventana

Access para la Web - Filtrar cuadros comb

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Tus Funciones Favoritas & Aportaciones & Artí­culos
Descripción del foro: Para publicar código interesante, aportaciones y artículos
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=77157
Fecha de impresión: 05/Abril/2020 a las 06:44


Tema: Access para la Web - Filtrar cuadros comb
Publicado por: rlvaldez
Asunto: Access para la Web - Filtrar cuadros comb
Fecha de publicación: 27/Julio/2013 a las 02:34
Esta es la descripción detallada de un problema muy sencillo que me complicó varias horas. Mi complicación radica en que desarrollar soluciones en Access para la Web es un mundo diferente. Es un mundo sin código VBA y donde las macros Web solo tienen 26 acciones disponibles en total. Agradezco a Bengoechea que fue el que me dio todos los elementos para poder armar esto que para mi era un rompecabezas. Las lecciones aprendidas que se desprendieron de este sencillo ejercicio me permiten ahora resolver problemas mucho más complejos ya que esto me dio la pauta para comprender una parte, pequeña pero muy importante, de la "filosofía" del Access para la Web.¡Gracias Chea!

ESCENARIO

Se tienen dos cuadros combinados, uno de provincias y otro con las comunidades de esas provincias. ¿Cómo hacer que el cuadro combinado de las comunidades muestre solamente aquellas comunidades que le pertenezcan a la provincia seleccionada en el primer cuadro combinado?

DESCRIPCION DE LOS CONTROLES

Formulario web "frmGeografia" cuyo orígen de control es una tabla llamada "Geografía" con dos campos: [Provincia] y [Comunidad]. Este formulario tiene dos cuadros combinados

a)Primer cuadro combinado:
Nombre: cboProvincia
Orígen del control: [Provincia]
Orígen de datos: [IdProvincia] y [NombreProvincia] (de una tabla llamada "Provincias")

b)Segundo cuadro combinado:
Nombre: cboComunidad
Orígen del control: [Comunidad]
Orígen de datos: El orígen de datos del CboComunidad es una consulta donde relaciono [IdComunidad],[NombreComunidad] y [IdProvincia]. (De hecho la Tabla "Comunidades" ya la tengo relacionada con la tabla "Provincias" por medio del campo IdProvincia de tipo "Búsqueda y relación")

SOLUCION

1) En el evento "Después de actualizar" del combo cboProvincias crear una macro con las siguientes acciones:

DefinirVariableTemporal
Nombre: FiltroProvincia
Expresión: [Provincia]

NuevaConsulta
Nombre del Control: cboComunidades

2) En en el orígen de datos del combo CboComunidad, en el criterio del campo IdProvincia escribir: [Tempvars]![FiltroProvincia] y en el "OR" del mismo campo (está justo debajo de "Criterio") escribir TempVars!FiltroProvincia es Nulo.

3) En el evento "Al activar registro" del formulario frmGeografia crear una macro con las siguientes acciones:

DefinirVariableTemporal
Nombre: FiltroProvincia
Expresión: [Provincia]

NuevaConsulta
Nombre del Control: cboComunidades

Esto es necesario para que al momento de desplazarnos por los registros, se muestren los datos del cboComunidades. Si no hacemos esto, el segundo combo, el filtrado, o sea el cboComunidades aparecerá en blanco a la hora de movernos por los registros del formulario. Porque es así, no lo se ya que en el Access "normal" (no para la web) esto es necesario solo con los combos de búsqueda. A mi me dio resultado hacerlo de esta manera. Me funciona perfectamente.

LECCIONES APRENDIDAS

1-En el Access para la Web, no es posible hacer referencia directa a los objetos. Se deben definir variables temporales y asociarlas a los controles a los cuales queremos hacer referencia.

2-En el Access para la Web, como no podemos usar código VBA y las macros son muy restringidas, no existe el "Refresh", Requery" etc. Su equivalente es la acción "NuevaConsulta" en una macro.




Imprimir página | Cerrar ventana