Access - Filtros para formularios

 
Vista:

Filtros para formularios

Publicado por Alan (22 intervenciones) el 15/03/2007 15:12:39
Hola a todos, a ver. Quiero hacer un filtro según elija unas opciones. Dispongo de un formulario “Datos”, donde se me guardan todos los registros con sus campos, después tengo otro formulario con las mismas opciones para ir filtrando toda la tabla general que tengo. En este segundo formulario solo tengo un registro con las opciones que he elegido guardar y así hacer el filtro.
A partir de aquí voy haciendo consultas pero no me concuerda nada, no se si tengo que poner en la consulta los campos del formulario general y en criterios poner que me filtre según la opción que elija ( [Forms]![tbConInforme]![Fecha Inicial]) del segundo formulario, no se si tendría que usar las relaciones entre las dos tablas. No se muy bien como hacer el filtro, orientarme un poco por favor. Gracias. Alan
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Filtros para formularios

Publicado por Joaquín Pascual (48 intervenciones) el 15/03/2007 20:37:49
Hola Alan, no se si es esto lo que buscas pero a mi me funciona de lujo.
debes de crear un form que no dependa de ninguna tabla, en el creas tantos combos como quieras, cada uno que muestre los datos que quieras, luego creas un botón de comando y en el evento click le pones esto.

Private Sub cmdFiltrarInforme_Click()
'código creado por ©Vicente Miralles para Ximo Pascual
'Podeis utilizarlo respetando el nombre del autor
Dim cadena As String
cadena = ""
If Not IsNull([cmbPais]) Then
cadena = cadena & "[PAIS]=[Forms]![Filtro]![cmbPais]"
End If

If Not IsNull([cmbPeriodo]) Then
If Len(cadena) > 1 Then cadena = cadena & " And "
cadena = cadena & "[PERIODO]=[Forms]![Filtro]![cmbPeriodo]"
End If

If Not IsNull([cmbCatalogo]) Then
If Len(cadena) > 1 Then cadena = cadena & " And "
cadena = cadena & "[CódCatalogo]=[Forms]![Filtro]![cmbCatalogo]"
End If

(Aquí puedes ir añadiendo los combos)

MsgBox "mira la cadena " & cadena
DoCmd.OpenReport "Monedas1", acPreview, "", cadena
End Sub

Filtro= es el nombre del formulario
cmb =es el nombre del combo
Monedas1= nombre del informe que abre filtrado
Decirte que los campos del formulario deben existir en el informe.

saludos, Ximo Pascual
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar