Valor en blanco en campo combinado

Hola todo experto espero me puedan ayudar tengo un formulario de búsqueda el cual me arroja los resultados en un informe en este formulario tengo dos cuadros combinados modulo, profesión estos son los que hacen el filtro de la búsqueda. Lo que quisiera es que si dejo un cuadro combinado en blanco el resultado me arroje todas las opciones en vez de mandarme el resultado en blanco, ose que no haga el filtro que me mande todos los registros y solo aplique el filtro del campo en el que si se selecciono una opción

1 respuesta

Respuesta
1
Te digo como hago en estos casos. Aunque no lo indicas, parto de la suposición de que los que realmente sirve como input para el informe es una consulta cuyos criterios de búsqueda son los que colocas en los controles del formulario.
En el mismo formulario crea un cuadro de texto por cada uno de los controles de búsqueda. Estos dos cuadros de texto deben tener establecido como valor predeterminado un asterisco (*, sin el paréntesis) y cuya propiedad visible sea FALSE.
En la consulta en el campo criterios en lugar de los controles originales vinculalo con estos nuevos cuadros de texto según el campo que corresponda, precedidos por la instrucción COMO o LIKE. Esto funciona si el tipo de datos de los campos a buscar es STRING.
El dato que capturo es integer sabrás que puedo poner en lugar del asterisco (*) para que me funcione
En ese caso lo que debes tener son varias consultas con distintos criterios que dependiendo del contenido de los cuadros de búsqueda se active una u otra. Y ya que abre un informe y este tiene un Origen de datos, en la instrucción donde abres el informe (después de abrirlo) con la instrucción
Forms!nombredelinforme.RecordSource = "nombredelaconsulta"
Así pudieras tener una secuencia IF o SELECT CASE que estableciera un origen de datos según el contenido de los controles.
Por ejemplo si en el formulario los controles se llaman MODULO (Este creo que pudiera ser String) y PROFESIÓN (Este debería ser String seguro).
If IsNull(MODULO) AND PROFESIÓN="" Then
     DoCmd.OpenReport "NOMBREINFORME", acViewPreview
     Forms!nombredelinforme.RecordSource = "nombreconsultaA"
Else
     DoCmd.OpenReport "NOMBREINFORME", acViewPreview
     Forms!nombredelinforme.RecordSource = "nombreconsultaB"
End If
De todas formas si el campo en la tabla que tienes ahora como Integer no contiene valores con los que hagas operaciones matemáticas (suma, resta, multiplicación o división, contar los registros no es una operación matemática), independientemente de que su contenido sean números los puedes declarar con String y te facilita la solución.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas