Access - Crear informe personalizado con campos independientes

 
Vista:
Imágen de perfil de Roberto
Val: 27
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

Crear informe personalizado con campos independientes

Publicado por Roberto (26 intervenciones) el 06/02/2020 20:33:18
Hola a tod@s

No sé si me he liado y lo que trato de hacer se puede realizar de otra forma más simple, pero solo se me ha ocurrido de esta forma.

Tengo una base de datos de un club, en la que cada socio va pagando una mensualidad y voy metiendo el mes y el año en la tabla contabilidad además de fecha, cantidad y concepto,

Deseo hacer un informe, ya lo tengo creado. En ese informe he metido de la consulta CS_Estado_Cotabilidad, que a su vez coge los datos de la tabla socios y de la tabla contabilidad, los campos de:
socio(contabilidad), ape1(socios), ape2(socios), nombre(socios),

Como campos independientes:
ene, feb, mar, abr, may, jun, jul, ago, sep, oct, nov, dic

Lo que deseo es que si en un formulario anterior selecciono el año 2019, en el informe que se crea a continuación, me salgan todos los socios, y que dependiendo de si han pagado cada mes del año 2019, aparezca la letra "X" si ha pagado el mes correspondiente, y los caracteres "---" si no lo ha pagado.

He probado con varias opciones dentro del foro y buscando también por fuera, pero no lo consigo. En el informe me salen los socios repetidos tantas veces como meses han pagado.

Lo que si consigo es poner la "X" o los caracteres "---", pero me salen en todos los campos del mes y no solo en el socio que haya o no haya pagado.

Por ahora tengo varais cosas que voy probando sin éxito:

Dim vvalor1, vvalor2, vvalorA, vvalorB As Variant
vvalor1 = "Enero"
vvalor2 = 2019
If IsNull(vvalor) Then Exit Sub

vvalorA = DLookup("[Mes_Apunte]", "CS_Estado_Contabilidad", "[Mes_Apunte]='" & vvalor1 & "'")
vvalorB = DLookup("[Año_Apunte]", "CS_Estado_Contabilidad", "[Año_Apunte]=" & vvalor2)


If vvalor1 = vvalorA And vvalor2 = vvalorB Then

MsgBox "vPagado", vbInformation, "aviso"
Me.E_Mes_Ene.Caption = "X"
'Me.Id.Value = Null
'Me.Campo anterior a ID.SetFocus
'Me.Documento.SetFocus
Else
Me.E_Mes_Ene.Caption = "---"
End If




'Dim dbTemporal As DAO.Database
' Dim rsREGISTROS As DAO.Recordset
' Set dbTemporal = CurrentDb
' 'Seleccionamos toda la tabla, aunque también podrías seleccionar sólo una parte con una
' 'consulta, etc..
' Set rsREGISTROS = dbTemporal.OpenRecordset("NOMBRETABLA", dbOpenDynaset)
' 'Por si acaso
' rsREGISTROS.MoveLast
' rsREGISTROS.MoveFirst
' 'Ahora empezamos a recorrer el conjunto de registros
' Do While Not rsREGISTROS.EOF
' 'Ahora estamos en el primer registro
' '....aqui iría todo tu código, teniendo en cuenta que para referirte a cada campo de tu tabla debes
' 'hacerlo así:
' rsREGISTROS!Fuente=.....lo que sea...
' rsREGISTROS!elLink
' 'y para asegurarte guardar cambios en el registro poner al final de la modificación
' rsREGISTROS.Update
' rsREGISTROS.MoveNext 'siguiente registro
' DoEvents
' Loop
' 'limpiamos y liberamos
' rsREGISTROS.Close
' dbTemporal.Close
' Set rsREGISTROS = Nothing
' Set dbTemporal = Nothing
'
'
' Sub RecorrerTabla()


'------------------------------------------------------
'Dim Rs As DAO.Recordset

'Set Rs = CurrentDb.OpenRecordset("CS_Estado_de_Pagos")
'If Rs.RecordCount > 0 Then
'Do While Not Rs.EOF
'MsgBox Rs!Campo1
'MsgBox Rs("Campo2")
'MsgBox Rs.Fields(3)
'Rs.MoveNext
'Loop
'End If
'Rs.Close
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 Roberto
Val: 27
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

Crear informe personalizado con campos independientes

Publicado por Roberto (26 intervenciones) el 08/02/2020 17:55:25
Para evitar que me salgan repetidos cada uno de los socios por cada movimiento de pago, he replanteado la consulta, y de los cuadros de texto del informe (Numero, apellido1, apellido2, nombre) los vincoulo ahora a la consulta Socios.

Ahora me salen todos los socios una sola vez.

El problema es que no logro coger el dato del cuadro de texto del Txt_Numero del propio imforme para usarlo en un variable y luego operar con él a la hora de validar los datos de pago de cada socio.
He probado con:
1
2
3
v_numero = Txt.Numero.text
v_mumero = Txt_Numero.Value
v_numero = Txt_Numero.Caption
Pero con las tres formas me da error.
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