Lanzar report filtrando con una variable |
Responder |
Autor | |
Kublai
Habitual Unido: 11/Julio/2020 Localización: Murcia Estado: Sin conexión Puntos: 162 |
Tema: Lanzar report filtrando con una variable Enviado: 06/Agosto/2020 a las 10:11 |
Buenos días a todos
Como soy bastante novato, no me termino de aclarar con cosas que os parecerán muy sencillas, pero que para mí son complicadas: Quiero lanzar un report, filtrándo la tabla por un campo, según una variable que creo previamente, pero al lanzarlo, no sale ningún registro. Algo he tenido que hacer mal al poner el filtro al report. Aquí os pego el código. Muchas gracias anticipadas por vuestro tiempo y paciencia. Private Sub Comando10_Click() Dim DBF As DAO.Database Dim recset As DAO.Recordset Set DBF = CurrentDb Set recset = DBF.OpenRecordset("Dietas") Dim ejercicio As String 'Pregunta el ejercicio Dim Mensaje, Titulo, Default Mensaje = "Introduzca el ejercicio económico" Titulo = "Seleccionar Ejercicio: En blanco (Supr) = Todos los ejercicios" Default = Str(Year(Date)) 'lanza el inputbox ejercicio = InputBox(Mensaje, Titulo, Default, 11000, 7000) DoCmd.OpenReport "Listado_Dietas_X_expedte", acViewPreview, "trim(recset![diet_ejercicio]) = trim(ejercicio)", acNormal End Sub |
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14720 |
Enviado: 06/Agosto/2020 a las 10:54 |
Hola,
Pues si, lo complicas muchísimo. 1. No necesitas el recordset. El Report es quien "pone" el origen del registro 2. No declaras correctamente las variables de mensaje. Además de que te las puedes ahorrar 3. No construyes correctamente la condición. Debe incluir entre comillas el nombre del campo sobre el que filtrarás y el signo igual. Fuera de las comillas, concatenado por &, se indica el control/campo/variable que contiene el valor por el que se filtrará. En función del dato (dices que es un texto) se debe delimitar con ' o " (los textos), # (las fechas. y en formato americano) o sin nada (los números enteros. Así pues: Dim ejercicio As String ejercicio = InputBox("Introduzca el ejercicio económico", "Seleccionar Ejercicio; En blanco (supr) = todos los ejercicios", Year(Date)) DoCmd.OpenReport "Listado_Dietas_X_expedte", acViewPreview, "[diet_ejercicio] = '" & ejercicio & "'", acNormal Escrito al vuelo Un saludo
|
|
Kublai
Habitual Unido: 11/Julio/2020 Localización: Murcia Estado: Sin conexión Puntos: 162 |
Enviado: 06/Agosto/2020 a las 21:12 |
Muchísimas gracias. Sí que parece que me complico la vida de más, con lo sencillo que era...
De todas formas, no se lo que ocurre, que sigue sin mostrar ningún registro en el report, y con el valor que le doy en el input, tendrían que salir varios... |
|
Kublai
Habitual Unido: 11/Julio/2020 Localización: Murcia Estado: Sin conexión Puntos: 162 |
Enviado: 07/Agosto/2020 a las 05:40 |
He modificado un par de cosas, pero sigue dando un error:
* el valor por defecto del inputbox lo he cambiado a Str(Year(Date())) * Al lanzar el report faltaba una coma después de acviewpreview Pero ahora me pide el valor del parámetro [diet_ejercicio] (que es como se llama el campo tipo texto de la tabla donde filtro con la variable ejercicio). Imagino que es un error de sintaxis, pero no se cómo arreglarlo. Ha quedado así: Dim ejercicio As String ejercicio = InputBox("Introduzca el ejercicio económico", "Seleccionar Ejercicio; En blanco (supr) = todos los ejercicios", Str(Year(Date))) DoCmd.OpenReport "Listado_Dietas_X_expedte", acViewPreview, , "[diet_ejercicio] = '" & ejercicio & "'", acNormal |
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14720 |
Enviado: 07/Agosto/2020 a las 10:35 |
Verifica que diet_ejercicio sea un campo incluido en el origen del registro del report Listado_Dietas_X_expedte
|
|
Kublai
Habitual Unido: 11/Julio/2020 Localización: Murcia Estado: Sin conexión Puntos: 162 |
Enviado: 07/Agosto/2020 a las 10:44 |
El report está basado en una consulta (Cons_Dietas_X_expedte) sobre una tabla (Dietas). Y uno de los campos de esa consulta es diet_ejercicio
|
|
Kublai
Habitual Unido: 11/Julio/2020 Localización: Murcia Estado: Sin conexión Puntos: 162 |
Enviado: 07/Agosto/2020 a las 10:50 |
Este es el código SQL de la consulta:
SELECT Dietas.diet_Id AS Id, Dietas.diet_Dieta AS [D/F], Dietas.diet_viajenum AS [Núm viaje], Dietas.diet_expediente AS Expediente, Dietas.diet_conceptoCS AS [Concepto de la CS], Dietas.diet_tipodegasto AS [Tipo de gasto], Dietas.diet_importe_total AS [Importe dieta], Dietas.diet_acreedor AS Acreedor, Dietas.diet_ejercicio AS Ejercicio, Dietas.diet_organismo AS [Clasif Orgánica], Dietas.diet_programa AS Programa, Dietas.diet_subconcepto AS Subconcepto, Dietas.diet_fechordenCS AS [Fecha Orden CS], Dietas.diet_periodos AS [Períodos CS], Dietas.diet_fechasdelviaje AS [Fechas del viaje], Dietas.diet_destinoCS AS [Destino CS], Dietas.diet_mediotrans AS [Medio de Transporte] FROM Dietas WHERE (((Dietas.diet_Dieta)=True)) ORDER BY Dietas.diet_ejercicio, Dietas.diet_Dieta, Dietas.diet_expediente; Igual el error lo da porque le pongo alias a los campos...?
|
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14720 |
Enviado: 07/Agosto/2020 a las 10:55 |
Creo que la clave es "AS Ejercicio"
DoCmd.OpenReport "Listado_Dietas_X_expedte", acViewPreview, , "[Ejercicio] = '" & ejercicio & "'", acNormal
|
|
Kublai
Habitual Unido: 11/Julio/2020 Localización: Murcia Estado: Sin conexión Puntos: 162 |
Enviado: 07/Agosto/2020 a las 10:59 |
En efecto. Ahora sí que funciona a la perfección.
Muchísimas gracias Xavi. Te debo muchas horas de calentamiento de cabeza que me has ahorrado.
|
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14720 |
Enviado: 07/Agosto/2020 a las 11:05 |
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |