Visual basic filtro adodc

Mi conexión con adodc y visualizados en un datagrid
Tengo una base de datos con aproximadamente 25 campos,, el punto es que quiero crear un filtro en el cual yo pueda elegir los campos a filtrar,, me refiero a realizar una combinación de campos (2,3,4,5 o más) filtrar por 2 o más campos a la vez. (Los datos de los campos están contenidos e combosbox)
E intentado hacerlo,, pero no me funciona, al momento de correrlo no me da ningún error y a la vez no me da resultado.
aqui deje un ejemplo de como lo estoy realizando solo he programado 2 campos para la prueba;
dim cadenas as string
Private Sub Command1_Click()   'boton q me genera la consulta
Adodc1.RecordSource = "BIENES_DE_CONSUMO"
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "SELECT * FROM BIENES_DE_CONSUMO"
If Combo1.Text <> "" Then
cadena = "where PREI='" & Combo1.Text & "'"
Adodc1.Refresh
End If
Adodc1.RecordSource = "BIENES_DE_CONSUMO"
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "SELECT * FROM BIENES_DE_CONSUMO"
If Combo1.Text <> "" Then
cadena = "where SAI='" & Combo1.Text & "'"
Adodc1.Refresh
End If
End Sub
Una cosa más se activan los combos mediante check's eligiendo por que campos quiero filtrar pero eso creo que no sea de importancia en mi problema

1 respuesta

Respuesta
1
No estas agregando en la sentencia sql el filtro
te quedaría así:
Private Sub Command1_Click()   'boton q me genera la consulta
   Adodc1.CommandType = adCmdText
   Adodc1.RecordSource = "SELECT * FROM BIENES_DE_CONSUMO"
If Combo1.Text <> "" Then
   cadena = " where PREI='" & Combo1.Text & "' AND SAI='" & Combo1.Text"'"
   Adodc1.RecordSource = Adodc1.RecordSource = & cadena
   Adodc1.Refresh
End If
End Sub
Le agradezco mucho su atención.
Lo que pasa es que (no lo comente al inicio) tengo en el formularios los campos, cada uno con un check de selección para que yo pueda seleccionar por que campos quiero filtrar,, un decir,,, tengo los campos modelo, color, año y agencia,, se me antoja mmm filtrar por modelo y color,, modelo= 2001 y color =rojo, estos datos están previamente almacenados en un combo,,, entonces lo que hago con los check es que se cumpla la condición para cada combo
Adodc1.RecordSource = "BIENES_DE_CONSUMO"
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "SELECT * FROM BIENES_DE_CONSUMO"
If Combo1.Text <> "" Then    'modelo
cadena = "where modelo='" & Combo1.Text & "'"
Adodc1.Refresh
End If
Adodc1.RecordSource = "BIENES_DE_CONSUMO"
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "SELECT * FROM BIENES_DE_CONSUMO"
If Combo2.Text <> "" Then
cadena = "where color='" & Combo1.Text & "'"
Adodc1.Refresh
End If
Entonces quedaría así si los combos de año y agencia están en blanco no busca nada,, pero si el combo de modelo cumple con la condición me filtre(ejemplo los coches nissan)
Y si el combo color también cumple la condición de que sea diferente de " " entonces me filtre(coches rojos),,, y por consiguiente obtendré los coches modelos nissan de color rojo
oo si quiero realizar otro filtro y ahora quiero filtrar por año y agencia, pues se realizaría de la misma manera,, el puntos es poder crear una combinación de campos a filtrar
Le ruego mil disculpas por no saberme expresar,, pero soy residente y me falta esto para poder concluir mi sistema,, he realizado filtros sencillos pero nada como este.
Ojala y me halla explicado mejor
Le agradezco mucho su gran apoyo
Claro, pasa que nunca agregas al recordsource cadena,
por eso no te busca, proba y avisame ;)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas