Hacer filtro en SQL solo con valores seleccionados

18/11/2010 - 16:07 por Alfredoa4 | Informe spam
Hola buenas tardes a todos, pidos de su amable ayuda para ver si
alguien pudiera decirme alguna manera sencilla (resumida) de realizar
lo siguiente:
Tengo en un formulario en el cual he colocado 7 combobox, los cuales
voy a utilizar como filtros para pasarlos a un reporte y me saque la
información. La cuestión aqui es que de todos estos 7 combobox no
todos tienen informacion, es decir, el usuario podria seleccionar solo
el cmb1, o cmb1 y cmb7, o cmb2, cmb4 y cmb5, o solo los combos que
considere necesario para filtrar su reporte, por lo tanto habria "x"
cantidad de combinaciones para filtrar. Entonces, existe alguna manera
sencilla de poder saber cuals son los campos que tienen información y
pasarlos al filtro de la sentencia de SQL, para de esta forma no tener
que hacer un código tan extenso.

De antemano agradezco su amable ayuda y comentarios al respecto,
reciban un cordial Saludo!

Preguntas similare

Leer las respuestas

#1 José Mª Fueyo
19/11/2010 - 11:47 | Informe spam
Hola
Puedes poner un botón que haga el proceso de generación del filtro. En
el pon un código en el cual declaras una variable de tipo string y vas
recorriendo cada uno de los combos. Sí el valor del combo es distinto
de "" compruebas el valor de la variable de cadena. Sí tiene valor,
usas un AND para seguir la generación del filtro, si no lo comienzas.
Para hacerlo más sencillo, llama cada combo como el campo al cual
filtran.

dim ctl as control,sSQL as string
for each ctl in me.controls
if typeof ctl is combobox then
if ctl<>"" then
if sSQL<>"" then
sSQL=sSQL & " AND " & ctl.name & "=" & ctl 'Aquí ten
en cuenta que si el campo es de texto, tienes que encerrar el valor
entre comillas simples
else
sSQL=ctl.name & "=" & ctl
end if
end if
end if
next

Salu2,
José Mª Fueyo
[MS MVP Access]
Respuesta Responder a este mensaje
#2 Alfredoa4
20/11/2010 - 03:08 | Informe spam
On 19 nov, 04:47, José Mª Fueyo wrote:
Hola
Puedes poner un botón que haga el proceso de generación del filtro. En
el pon un código en el cual declaras una variable de tipo string y vas
recorriendo cada uno de los combos. Sí el valor del combo es distinto
de "" compruebas el valor de la variable de cadena. Sí tiene valor,
usas un AND para seguir la generación del filtro, si no lo comienzas.
Para hacerlo más sencillo, llama cada combo como el campo al cual
filtran.

dim ctl as control,sSQL as string
for each ctl in me.controls
   if typeof ctl is combobox then
       if ctl<>"" then
            if sSQL<>"" then
                sSQL=sSQL & " AND " & ctl.name & "=" & ctl 'Aquí ten
en cuenta que si el campo es de texto, tienes que encerrar el valor
entre comillas simples
            else
                sSQL=ctl.name & "=" & ctl
            end if
       end if
   end if
next

Salu2,
José Mª Fueyo
[MS MVP Access]



Hola buenas tardes a todos, Jose muchas gracias por la ayuda, en este
fin de semana lo estare probando y les comento, Saludos!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida