Access - Filtrar o buscar y ver resultado en informe

 
Vista:
sin imagen de perfil

Filtrar o buscar y ver resultado en informe

Publicado por Sara (171 intervenciones) el 23/10/2013 16:43:47
Buenas.

Tengo un formulario basado en una tabla. Desde aquí quiero que al pulsar sobre un botón me busque o filtre unos registros, y me abra un informe también basado en la misma tabla pero con los registros filtrados o encontrados.

El código que he escrito es el siguiente:
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[CAMPO_X] = " & [VALOR]
Me.Bookmark = rs.Bookmark

DoCmd.Close , ""
DoCmd.OpenReport "Inf_ETIQUETAS", acViewReport

El código busca o filtra los datos, pero cuando abro el informe Inf_ ETIQUETAS, me aparecen todos los registros.

Por qué no muestra solamente los registros filtrados?

Gracias y un saludo.
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
Imágen de perfil de Toni

Filtrar o buscar y ver resultado en informe

Publicado por Toni (129 intervenciones) el 23/10/2013 20:22:30
Hola Sara,

Pues sencillamente porque no se lo estás diciendo.

De todas formas no entiendo muy bien que si quieres filtrar una serie de registros estés utilizando el "Findfirst", a no ser que sólo quieras encontrar el que sea igual y después imprimirlo, en cuyo caso pues dándole la condición al imprimirlo ya te bastaría.
En cambio yo utilizaría un subfomulario si lo que quieres hacer es filtrar una serie de registros que cumplieran la condición indicada, te los mostraría y después podrías imprimir con la misma cadena de búsqueda que ya tendrias almacenada en una variable.

Sin variar tu código puedes probar a ver si te funciona esto:

Dim CRITERIO as string
'tu búsqueda la almacenas en una variable
CRITERIO= "[CAMPO_X] = " & [VALOR]

DoCmd.OpenReport "Inf_ETIQUETAS", acViewReport, , CRITERIO


Pero repito, a mi entender yo utilizaría esto:
Para buscar los registros iguales a un textbox (VALOR), en este caso de tipo texto

Dim CRITERIO as string
CRITERIO= "([CAMPO_X] = """ & Me.VALOR & """)"
Me.SubFormulario.Form.Filter = CRITERIO
Me.SubFormulario.Form.FilterOn = True

De esta forma en el subformulario te mostraría los localizados y para imprimir el informe pues:

DoCmd.OpenReport "Inf_ETIQUETAS", acViewpreview, , CRITERIO
DoCmd.RunCommand acCmdPrint
DoCmd.Close acReport, "inf_ETIQUETAS"

Suerte
Toni
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
sin imagen de perfil

Filtrar o buscar y ver resultado en informe

Publicado por Sara (171 intervenciones) el 23/10/2013 21:44:53
Gracias Toni.

Voy a probarlo y ya te contaré.

Pero no entiendo porque dices de utilizar tu opción, pues parece más compleja y utiliza más líneas. Te diré que estoy empezando y no tengo mucha idea.

Un saludo.
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
sin imagen de perfil

Filtrar o buscar y ver resultado en informe

Publicado por Jorgefl (38 intervenciones) el 15/11/2013 07:01:11
Toni un saludo, en este código que despliegas...

Dim CRITERIO as string
CRITERIO= "([CAMPO_X] = """ & Me.VALOR & """)"
Me.SubFormulario.Form.Filter = CRITERIO
Me.SubFormulario.Form.FilterOn = True

Hay la opción que me mande una ventana para que yo ponga el criterio que quiero que filtre.
Ejemplo... >2 o >3 <4, es decir, cualquiera de estos criterios y mas, que en un momento dado podrían contener decimales, es decir, < 2.8 < 3.7 etc,
Lo quiero utilizar en un campo numérico, espero haberme explicado.

Y este código lo pongo en un botón?

de antemano gracias.
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
sin imagen de perfil

Filtrar o buscar y ver resultado en informe

Publicado por Sara (171 intervenciones) el 28/10/2013 15:46:08
Gracias a todos.
Con el primero ejemplo de Toni para que funciona bien.

Un saludo.
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