Insertar registro de fecha y campo en subformulario según criterio

Tengo dos tablas

1._ IdTrabajador, (autonumérico), nombre (texto), destino (chapa, metal, madera...), FeNace, Edad, Turno (Primero, Segundo, Tercero), Activo (Alta, Baja), etc

2._ IdFichado (autonumérico), IdTrabajador (numérico), Fecha (fecha/hora),  Servicio (trabaja, libra), , puntualidad, responsabilidad (estos dos suelen ser predeterminados a "correcto"

Quiero controlar diariamente la actividad de los trabajadores de manera que según el turno de trabajo que tengan, porque trabajan dos turnos al día y libra un tercero, poder insertar en el registro del subformulario asociado al formulario el servicio (Trabaja o Libra). Sería a través de un botón llamado 1, 2 ó 3, que si pulso el botón 1, trabajan los turnos segundo y tercero, si pulso el botón 2, trabajan los turnos primero o si pulso el botón 3 trabajan los turnos primero y segundo. A todos esto según el pulsado se añadiría la fecha del día y el servicio.

El formulario es la búsqueda de todos los trabajadores en ALTA

Los botones serían en el formulario TRABAJADORES y el FICHADO en el subformario.

Quedará algo así. Sería un formulario único con el subformulario FICHADO

Fomulario TRABAJADORES

IdTrabajador  Nombre                          Destino            FechaNace       Edad       Turno

6                       Carlos Huesca              Metal                  15/05/67            52       Primero

IdFichado IdTrabajador      Fecha               Servicio       Puntualidad     Responsabilidad

7                  6                          26/5/19           Trabaja          Correcto          Correcto

8                  6                          27/5/19            Trabaja          Correcto         Correcto

9                  6                          28/5/19             Libra             Correcto          Correcto

10                6                          Aquí de debería añadir el registro 29/5/19 Trabaja (según 1,2 ó 3)

Supongo que debería crear una consulta de datos anexados, pero ahí me pierdo. Como hago para que se ingrese la fecha y el concepto de servicio en cada nuevo registro de cada trabajador activo del subformulario FICHADO. Porque si tengo 20 trabajadores e de añadir 20 registros de fichado.

Una aclaración por lo menos que no lo entiendo

1 Respuesta

Respuesta
2

Yo personalmente los pondría en el subformulario, luego te digo porque, pero... si tengo la tabla

y la tabla Ficha

Si construyo el formulario y subformulario

Si pulso el botón 1

Aquí está el problema, tienes que decirle que el registro activo del subformulario sea uno nuevo. Mientras que si los botones los pones en el subformulario, sólo tienes que añadirle al código de cada botón docmd. Gotorecord,, acnewrec

El código de los botones es

Private Sub Comando7_Click()
If IsNull(Me!Fichas.Form!Fecha) Then
Me!Fichas.Form!Fecha = Date
Me!Fichas.Form!Servicio = "1-2"
End If
End Sub
Private Sub Comando8_Click()
If IsNull(Me!Fichas.Form!Fecha) Then
Me!Fichas.Form!Fecha = Date
Me!Fichas.Form!Servicio = "2-3"
End If
End Sub
Private Sub Comando9_Click()
If IsNull(Me!Fichas.Form!Fecha) Then
Me!Fichas.Form!Fecha = Date
Me!Fichas.Form!Servicio = "1-3"
End If
End Sub

Lo de If isnull... es para que si te queda como registro activo uno que ya está "relleno", al pulsar cualquier botón no lo modifique

Hola de nuevo y gracias por tus aportaciones

He copiado literalmente tu ejemplo en una nueva base, así podré ver mejor los resultados y tener estos ejemplos guardados. y sale perfecto.

En mi base aún no consigo aplicarlo pero es cuestión de seguir intentándolo.  Pero me interesa mucho este quebradero de cabeza que me tiene un poco frito.

He cambiado los conceptos de 1-2, 2-3 o 1-3 por libra o trabaja, lo puse también entre comillas al ser texto

Lo de los números 1,2 ó 3 eran en relación a los turnos de trabajo primero, segundo o tercero, por simplificar la vista en el formulario. Como cada trabajador esta relacionado con la tabla fichas sería que al pulsar "1" Los trabajadores del turno "primero" que son los que libran para que los trabajadores del los turnos "segundo y tercero" que son los que trabajan. Al pulsar "2" libra el turno segundo trabaja el primero y tercero

Gracias

Saludos

Al final creo que me viene mejor solo este código, así si tengo que hacer alguna anotación lo hago sobre la marcha.

No consigo configurarlo en mi base de datos y creo que es porque los subformularios están decreto de un cinto de fichas llamado APARTADOS  y este formulario en la ficha COTIZACIONES.

influye algo este código o habría que poner de alguna manera el control de ficha.

Me ayudarías, por favor.

Gracias

Saludo

El control ficha da igual, tu haces referencia al control subformulario. Mira, si tengo el formulario, con un control ficha y el subformulario

Si pulso el botón T

El código es exactamente el mismo

Private Sub Comando10_Click()
If IsNull(Me!Turnos.Form!Fecha) Then
Me!Turnos.Form!Fecha = Date
Me!Turnos.Form!Turno = "Tarde"
End If
End Sub
Private Sub Comando11_Click()
If IsNull(Me!Turnos.Form!Fecha) Then
Me!Turnos.Form!Fecha = Date
Me!Turnos.Form!Turno = "Noche"
End If
End Sub
Private Sub Comando9_Click()
If IsNull(Me!Turnos.Form!Fecha) Then
Me!Turnos.Form!Fecha = Date
Me!Turnos.Form!Turno = "Mañana"
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas