Ver Mensaje Individual
  #63 (permalink)  
Antiguo 16/04/2008, 01:42
Avatar de Koudelka
Koudelka
 
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 4 meses
Puntos: 1
Re: Un formulario llamemosle algo complicado

Resurjo este tema porque necesito modificar un poco el código que tiene puesto. Veamos, para hacer memoria, se jugaba con dos formularios de access, el primero era para introducir una clave y si era correcta te llevaba al segundo (hora3) en el que se introducían las tareas. El caso es que eso no es todo, a la hora de abrirse el segundo formulario, se miraba si ese mismo día ya existía un registro, si existía mostraba el último y sino creaba uno nuevo.

Esta parte es la que tengo que arreglar, ya que lo que hice tiene que valer para el horario de noche. Me explico. Un operario empieza una tarea a las 11 de la noche del día de hoy (16), pero acaba a la 1 de la mañana, que ya se considera que es 17. El problema es que si el operario va a la base de datos e introduce su contraseña, no le lleva al registro que él ha empezado a las 11 de la noche, sino que le hace un nuevo registro en el día 17 y no puede poner que ha acabado con la acctividad.

La verdad es que no se cómo hacerlo, si hacer que si en 8 horas no se ha acabado la actividad que no inicie uno nuevo en otro día o que no pueda crear un nuevo registro ese operario si no ha pulsado el botón de fin.

Todo lo que me mira lo del registro creado o no, lo tengo en un botón del primer formulario y tiene lo siguiente:

Private Sub CmdAceptar_Click()
Dim IdOperario As Long

IdOperario = Nz(DLookup("CodigoOperario", "operario2", "clave=" & Me.Txtclave), 0)


'Comprobamos si existe la clave introducida
If IdOperario <> 0 Then
'comprobamos si hay algun registro para este operario en la tabla Partes de tarbajo para
'La fecha actual, si existe abrimos el registro, si no abrimos uno nuevo
If DCount("*", "PartesDeTrabajo", "CodigoOperario=" & IdOperario & " AND Fecha=#" & Format(Date, "mm/dd/yyyy") & "#") > 0 Then
DoCmd.OpenForm "hora3", acNormal, , "CodigoOperario=" & IdOperario & " AND Fecha=#" & Format(Date, "mm/dd/yyyy") & "#"
'cerramos el form numeros
DoCmd.Close acForm, Me.Name
Else
DoCmd.OpenForm "hora3", acNormal, , , acFormAdd
Forms!hora3!CodigoOperario = IdOperario
'Forms!hora!fecha = Date'Esta no hace falta ya que tienes en la tabla Partes de trabajo
'El campo fecha con valor predeterminado la fecha actual
'cerramos el form numeros
DoCmd.Close acForm, Me.Name
End If
Else
MsgBox "La contraseña introducida no corresponde a ningun empleado", vbCritical, "CONTRASEÑA ERRONEA"
End If
End Sub
__________________
Cámara Oscura
Etheria