Volcar último registro de un subformulario en otro formulario

Aquí de nuevo.

Estoy intentando lo siguiente.

Tengo un formulario "datos personales" con un subformulario "actividades".

En el subformulairo de actividades voy rellenando las diferentes actividades en la que está dado de alta. Cada actividad es un registro y solo se puede estar dado de alta en una actividad. Hasta que no tiene fin de actividad no se da de alta en otra creando un nuevo registro. Tengo un campo que se llama "estado" y me dice, dependiendo de la fecha de inscripción si esta de "alta actividad" o de "baja actividad". Como el subformulario lo abro con un botón, me gustaría ver en el formulario de datos el "estado" de esa persona.

Para ello he insertado el campo "estado" en el formulario de "datos personales" pero me muestra el estado del primer registro aunque luego haya dado de alta más registros.

1 respuesta

Respuesta
2

Te cuento cómo lo haría yo:

En primer lugar, supondré que ambas tablas están vinculadas por un campo llamado DNI, de tipo texto.

En el formulario de "datos personales" añado un cuadro de texto independiente, llamado, por ejemplo txtEstado, y en el evento "al activar registro" del formulario, le pondría este código:

Me.txtEstado=Dlast(""Estado","TablaActividades","DNI='" & Nz(Me.DNI,"") & "'")

Es decir, que busque en la tabla TablaActividades el último valor del campo estado del registro cuyo DNI coincida con el que se muestra en el formulario.

De esta forma, no necesitas tener un campos "Estado" en la tabla de "datos personales" (que no sé si se lo has añadido)

Genial... funciona muy bien. Y una última cuestión ¿podría ser que solo me mostrase cuando esta de "alta actividad"? Realmente me interesa ver de un golpe de vista si esa persona esta de alta para meterme en su ficha y ver como va

Por supuesto, sería algo así:

If Dlast(""Estado","TablaActividades","DNI='" & Nz(Me.DNI,"") & "'")="Alta Actividad" Then 

   Me.txtEstado=Dlast(""Estado","TablaActividades","DNI='" & Nz(Me.DNI,"") & "'")

Else

  Me.txtEstado=""

End If

Te sigo molestando y es la última vez ¡lo prometo!... no me funciona me puedes revisar el código

Private Sub Form_Current()
Me!.ACTIVIDADES = False
Me!FCURSOS.Visible = False
Me!MATRICULAS.Visible = False

If Dlast("Estado","TablaActividades","DNI='" & Nz(Me.DNI,"") & "'")="Alta Actividad" Then 

   Me.txtEstado=Dlast("Estado","TablaActividades","DNI='" & Nz(Me.DNI,"") & "'")

Else

  Me.txtEstado=""

End If

End sub

¿Qué no te funciona? ¿Te salta algún error ( cual y dónde )? ¿Los nombres en tu Bd son los mismos que los que puse en el código de ejemplo?

Lo único que veo mal en el código es el Me!. Actividades: o soba la admiración o el punto, pero los dos no pueden ir juntos.

Me dice error de compilación se espera fin de instrucción y si quito en Then me dice que no se ha deficino sub o función

¿Podrías poner un pantallazo del código? Porque por más que miro el código no veo ningún error de sintaxis...

Otra cosa: ¿mi primera respuesta (Me.txtEstado=Dlast("Estado","TablaActividades","DNI='" & Nz(Me.DNI,"") & "'")) te funcionó sin problemas? Es que no me explico que una sí y la otra no...

Lo he borrado todo y lo he vuelto a hacer desde el principio. He puesto primeto tu código y luego el resto del cógigo

Me!.ACTIVIDADES = False
Me!FCURSOS.Visible = False

y me ha funcionado ¡muchísimas gracias, ¡gracias!!!!. Muchas veces es mejor empezar desde cero.

Pues genial! Ya me tenía mosca el tema...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas