Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Modificando código

Estas en el tema de Modificando código en el foro de Bases de Datos General en Foros del Web. Recordando lo que hice en el siguiente tema: http://www.forosdelweb.com/f21/formu...licado-562999/ Necesito modificarlo para que me valga para el turno de noche. Tengo medio código hecho, pero ...
  #1 (permalink)  
Antiguo 24/04/2008, 03:10
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 9 meses
Puntos: 1
Modificando código

Recordando lo que hice en el siguiente tema: http://www.forosdelweb.com/f21/formu...licado-562999/

Necesito modificarlo para que me valga para el turno de noche. Tengo medio código hecho, pero no se cómo terminarlo. Tengo lo siguiente:

Código:
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
            If DCount("*", "PartesDeTrabajo", "CodigoOperario=" & IdOperario & " AND Fecha=#" & Format(Date, "mm/dd/yyyy") & "#") > 0 Then
        'si no existe todavía, miramos si está terminado el registro anterior
        If DCount("*", "PartesDeTrabajo", "CodigoOperario=" & IdOperario & " AND Fecha=#" & Format(Date - 1, "mm/dd/yyyy") & "# and nz(horafinal)=space(0)") > 0 Then
        DoCmd.OpenForm "hora3", acNormal, , "CodigoOperario=" & IdOperario & " AND Fecha=#" & Format(Date - 1, "mm/dd/yyyy") & "# and nz(horafinal)=space(0)"
                'cerramos el form numeros
                DoCmd.Close acForm, Me.Name
            Else
            MsgBox "esta parte aún no la he hecho XD"
            End If
        Else
        'está en la tabla
        If miramos hora de salida en blanco Then
          'colocamos hora de salida
            Else
            'registro operario-dia completo (posible doble turno)
        End If
    Else
        MsgBox "La contraseña introducida no corresponde a ningun empleado", vbCritical, "CONTRASEÑA ERRONEA"
    End If
End Sub
Esto en teoría hace que si se va a crear un nuevo registra en el día, primero mira el día anterior para ver si ha finalizado la tarea.

He intentado hacer algo, no me da error pero si hago una tarea el día 24 y cambio la fecha al 25 (con el campo horafinal en blanco) me hace un nuevo registro. En principio está puesto que si el campo horafinal está en blanco abra el último registro (que sería el día 24 por no haberlo terminado). Lo que he puesto ahora es lo siguiente:

Código:
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
        If DCount("*", "PartesDeTrabajo", "CodigoOperario=" & IdOperario & " AND Fecha=#" & Format(Date, "mm/dd/yyyy") & "#") > 0 Then
        'si no existe todavía, miramos si está terminado el registro anterior
            If DCount("*", "PartesDeTrabajo", "CodigoOperario=" & IdOperario & " AND Fecha=#" & Format(Date - 1, "mm/dd/yyyy") & "# and nz(horafinal)=space(0)") > 0 Then
            DoCmd.OpenForm "hora3", acNormal, , "CodigoOperario=" & IdOperario & " AND Fecha=#" & Format(Date - 1, "mm/dd/yyyy") & "# and nz(horafinal)=space(0)"
                'cerramos el form numeros
                DoCmd.Close acForm, Me.Name
            Else
            DoCmd.OpenForm "hora3", acNormal, , "CodigoOperario=" & IdOperario & " AND Fecha=#" & Format(Date, "mm/dd/yyyy") & "#"
            'cerramos el form numeros
            DoCmd.Close acForm, Me.Name
            End If
        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

Última edición por Koudelka; 24/04/2008 a las 04:18
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:07.