Filtros en subform concampos si/no para emitir informe

Tengo una cuestión relacionada con filtros e informes. Dispongo de una base de datos Access con dos tablas: por una parte, una con los datos personales de socios (num socio, dni/nif, apellidos, nombre, domicilio, etc) y otra con las cuotas que pagan mensualmente. Esta última tabla con la siguiente estructura de campos:
Un Campo num socio (de tipo texto e idéntico en estructura al campo num socio de tabla de socios). Tanto este campo como el de la tabla socios son clave principal para las relaciones.
Un campo año (numérico) para saber a que año pertenecen las cuotas.
Doce campos de tipo fecha (cuyos nombres son FechaEne hasta FechaDic) en los cuales indico las fechas de ingreso en cada mes de cobro de cuotas.
Doce campos de tipo numérico (nombres ImporteEne a ImporteDic) en los que pongo la cantidad mensual que ingresa cada socio. Los datos los recojo por un formulario que depende de tabla socios que tiene un subformulario que depende de tabla cuotas. Vinculados por num socio. El subformulario es de tipo de formularios continuos para registrar cuotas de varios años.
Ahora mi consulta: Tengo que expedirles a los socios un justificante del mes o meses que cada uno ingresa. La cuestión es que algunos ingresan mensualmente, otros trimestralmente y otros al año. También algunos pagan dos, tres o cuatro mensualidades juntas. ¿Cómo podría filtrar sólo el mes o meses de los que tenga que hacer el justificante (Informe)?. Dado que este informe debe salir de una consulta he hecho varios intentos pero al filtrar por ejemplo dos meses me salen en el informe todos aunque no tengan datos de cobro. Gracias de antemano.
{"lat":37.1953305828007,"lng":-2.5048828125}

1 respuesta

Respuesta
1
Obviamente y mirando lo que me describes con 12 campos para importe y 12 campos para fecha me parece que va haber algún tipo de inconveniente en tu consulta. Lo que te sugiero es colocar en un mismo campo los datos, supongamos en vez de FechaEne o FechaDic colocas FechaCuota y vas diferenciando los meses por los cobros o las fechas establecidas en cada campo. Igualmente en tu campo ImporteEne o ImporteDic, el cual va tener un registro de ImporteCuota por cada fecha.
Cambia la estructura de tu tabla donde asientas las cuotas y luego veremos como hacer.
Saludos,
PD: toma como ejemplo el de Neptuno que trae el Access para mirar las tablas.
Buenos días experto: Voy a hacer lo que me recomiendas. Te contesto a la mayor brevedad posible. Muchas gracias.
ok.
Buenos días experto:Cambié la estructura de la tabla cuotas conforme me recomendaste (ahora solo tiene 4 campos: anno(año), fechacuota, importecuota, n_socio). En formulario donde recojo los datos anteriores he puesto un botón de comando con el las instrucciones siguientes con el fin de que solo me filtre los datos de las fechas que se quieran así como sólo el número de socio al que se le emitirá el informe de ingresos. En la consulta2 y en criterios del campo fechacuota he puesto >=[Fecha_Inicio] Y <=[Fecha_Fin]. Me funciona correctamente y en el informe aparecen la/s fecha/s e ingresos que me interesen así como del socio en cuestión.
Private Sub Comando5_Click()
Dim stDocName As String 
stDocName = "I_Recibo1"
 DoCmd.OpenReport "I_RECIBO1", acViewPreview, "CONSULTA2", "n_socio=" & Me.n_socio
End Sub
He creado también otro botón en el mismo formulario con las siguientes instrucciones con el fin que realizara la misma función que el botón anterior, pero no sale ningún dato. Sólo por curiosidad me gustaría saber si está bien desarrollado aunque tiene que haber algo que no esté bien, aunque no salta el depurador cuando lo ejecuto. Lógicamente quito el criterio de la consulta2 para que no me vuelva a pedir fechas.
Private Sub Comando4_Click()
Dim stDocName As String
Dim FECHAdesde As Date
Dim FECHAhasta As Date
stDocName = "I_Recibo1"
FECHAdesde = InputBox("Introduce la primera de ingreso con este formato(dd/mm/aaaa)")
FECHAhasta = InputBox("Introduce la última fecha de ingreso con este formaot (dd/mm/aaaa)")
DoCmd.OpenReport stDocName, acViewPreview, "Fechacuota BETWEEN #" & Format(FECHAdesde, "mm/dd/yy") & "# AND #" & Format(FECHAhasta, "mm/dd/yy") & "#", "n_socio" = " & Me.n_socio"
Asimismo, si es posible en el informe aparecen las fechas filtradas. ¿Se podría hacer que en vez de esas fechas por ejem 01/01/2010, 15-02-2010 apareciera enero, febrero, etc para que en la redacción se indicara mes de enero, febrero, etc. Tampoco es algo que ya sea necesario.
Saludos.
Hay algunas cosas.. como por ejemplo: tu estas introduciendo en un formato dado tus fechas y estas abriendo tu report en otro formato (mm/dd/yy) lo cual creo que deberías abrir de mm/dd/yyyy, al menos si así lo tienes guardado en tu tabla. ¿También n_socio qué es? Si es un campo, usa el AND también ya que sería un criterio más de búsqueda. Corrige esos datos, también usa el punto de interrupción para ver si establece correctamente tu criterio y si está acorde a lo que pides.
Y para lo que pretendes con los meses puedes usar el evento format_detail (al dar formato para que recorra cada registro y te muestre como nombre de mes como Me.NombreMes = MonthName(me.mes), o tambien podrias usar como una función de tu origen de datos para ese textbox.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas