Autocompletar condicional en formulario
Publicado por Michun (4 intervenciones) el 29/09/2015 13:05:44
Hola amigos:
Utilizo Access 2007, les explico mi problema y qué es lo que necesito:
Tengo una tabla TBLSEMINARIOSGRUPOS, con los campos CURSO, CODIGOSEMINARIO, NUMEROGRUPO, donde se registran los seminarios disponibles cada año (CURSO) y cuantos grupos horarios (NUMEROGRUPO) hay para cada curso (CURSO); de cara a hacer una solicitud.
Tengo además un subformulario para solicitar el curso que se quiere hacer y en qué grupo horario quiere hacerse (NUMEROGRUPO) con lo siguiente:
1- Combo que muestra sólo los CODIGOSEMINARIO que están disponibles en el CURSO que se realiza la solicitud.
2- Combo que muestra los NUMEROGRUPO disponibles de ese CODIGOSEMINARIO una vez seleccionas el primer combo.
Tal como lo tengo ahora, al seleccionar el CODIGOSEMINARIO de la lista, el campo NUMEROGRUPO se queda en blanco en todos los casos para que se elija de la lista uno de los grupos disponibles para ese CODIGOSEMINARIO.
Lo que a mi me gustaría es que en los CODIGOSEMINARIO en los que hay un sólo NUMEROGRUPO disponible, se auto completara el NUMEROGRUPO con un "1".
Es decir, meter un condicional al primer combo (CODIGOSEMINARIO) para que después de actualizarlo, ponga el siguiente campo (NUMEROGRUPO) en blanco si ese CODIGOSEMINARIO tiene más de un NUMEROGRUPO disponible, o coloque directamente un "1" si ese CODIGOSEMINARIO seleccionado sólo tiene un posible NUMEROGRUPO.
Sé hacer la consulta que me muestra la lista de CODIGOSEMINARIO que cumplirían lo que quiero, pero al hacer el IF, no me funciona...
Esta sería la consulta que me mostraría los CODIGOSEMINARIO que cumplen la condición. Donde XXX es el CURSO que se coge del formulario donde está alojado el subformulario que utilizo para seleccionar CODIGOSEMINARIO y NUMEROGRUPO.
SELECT TblSeminariosGrupos.CodigoSeminario
FROM TblSeminariosGrupos
GROUP BY TblSeminariosGrupos.Curso, TblSeminariosGrupos.CodigoSeminario
HAVING (((TblSeminariosGrupos.Curso)=XXX) AND ((Count(TblSeminariosGrupos.NumeroGrupo))=1));
Si pongo lo siguiente en el AfterUpdate del primer combo, sí funciona:
Siendo "INT" uno de los posibles CODIGOSEMINARIO a seleccionar
IF Me.CodigoSeminario = "INT" then
Me.NumeroGrupo = "1"
Else
Me.NumeroGrupo =""
End If
El problema está en que funcione para todos los COGIGOSEMINARIO de ese CURSO que tengan sólo un NUMEROGRUPO.
He intentado algo similar a esto, y muchas otras cosas...
IF Me.CodigoSeminario = "SELECT TblSeminariosGrupos.CodigoSeminario FROM TblSeminariosGrupos GROUP BY TblSeminariosGrupos.Curso, TblSeminariosGrupos.CodigoSeminario HAVING (((TblSeminariosGrupos.Curso)=XXX) AND ((Count(TblSeminariosGrupos.NumeroGrupo))=1))" then
Me.NumeroGrupo = "1"
Else
Me.NumeroGrupo =""
End If
Pero nada me funciona...
Alguien que pueda ayudarme?? GRACIAS!!
Utilizo Access 2007, les explico mi problema y qué es lo que necesito:
Tengo una tabla TBLSEMINARIOSGRUPOS, con los campos CURSO, CODIGOSEMINARIO, NUMEROGRUPO, donde se registran los seminarios disponibles cada año (CURSO) y cuantos grupos horarios (NUMEROGRUPO) hay para cada curso (CURSO); de cara a hacer una solicitud.
Tengo además un subformulario para solicitar el curso que se quiere hacer y en qué grupo horario quiere hacerse (NUMEROGRUPO) con lo siguiente:
1- Combo que muestra sólo los CODIGOSEMINARIO que están disponibles en el CURSO que se realiza la solicitud.
2- Combo que muestra los NUMEROGRUPO disponibles de ese CODIGOSEMINARIO una vez seleccionas el primer combo.
Tal como lo tengo ahora, al seleccionar el CODIGOSEMINARIO de la lista, el campo NUMEROGRUPO se queda en blanco en todos los casos para que se elija de la lista uno de los grupos disponibles para ese CODIGOSEMINARIO.
Lo que a mi me gustaría es que en los CODIGOSEMINARIO en los que hay un sólo NUMEROGRUPO disponible, se auto completara el NUMEROGRUPO con un "1".
Es decir, meter un condicional al primer combo (CODIGOSEMINARIO) para que después de actualizarlo, ponga el siguiente campo (NUMEROGRUPO) en blanco si ese CODIGOSEMINARIO tiene más de un NUMEROGRUPO disponible, o coloque directamente un "1" si ese CODIGOSEMINARIO seleccionado sólo tiene un posible NUMEROGRUPO.
Sé hacer la consulta que me muestra la lista de CODIGOSEMINARIO que cumplirían lo que quiero, pero al hacer el IF, no me funciona...
Esta sería la consulta que me mostraría los CODIGOSEMINARIO que cumplen la condición. Donde XXX es el CURSO que se coge del formulario donde está alojado el subformulario que utilizo para seleccionar CODIGOSEMINARIO y NUMEROGRUPO.
SELECT TblSeminariosGrupos.CodigoSeminario
FROM TblSeminariosGrupos
GROUP BY TblSeminariosGrupos.Curso, TblSeminariosGrupos.CodigoSeminario
HAVING (((TblSeminariosGrupos.Curso)=XXX) AND ((Count(TblSeminariosGrupos.NumeroGrupo))=1));
Si pongo lo siguiente en el AfterUpdate del primer combo, sí funciona:
Siendo "INT" uno de los posibles CODIGOSEMINARIO a seleccionar
IF Me.CodigoSeminario = "INT" then
Me.NumeroGrupo = "1"
Else
Me.NumeroGrupo =""
End If
El problema está en que funcione para todos los COGIGOSEMINARIO de ese CURSO que tengan sólo un NUMEROGRUPO.
He intentado algo similar a esto, y muchas otras cosas...
IF Me.CodigoSeminario = "SELECT TblSeminariosGrupos.CodigoSeminario FROM TblSeminariosGrupos GROUP BY TblSeminariosGrupos.Curso, TblSeminariosGrupos.CodigoSeminario HAVING (((TblSeminariosGrupos.Curso)=XXX) AND ((Count(TblSeminariosGrupos.NumeroGrupo))=1))" then
Me.NumeroGrupo = "1"
Else
Me.NumeroGrupo =""
End If
Pero nada me funciona...
Alguien que pueda ayudarme?? GRACIAS!!
Valora esta pregunta
0