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

Un formulario llamemosle algo complicado

Estas en el tema de Un formulario llamemosle algo complicado en el foro de Bases de Datos General en Foros del Web. bueno, ya lo he medio arreglado porque colocando una macro he conseguido colocar las unidades y la obra que eran muy parecidas, el problema me ...

  #61 (permalink)  
Antiguo 11/03/2008, 05:46
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Un formulario llamemosle algo complicado

bueno, ya lo he medio arreglado porque colocando una macro he conseguido colocar las unidades y la obra que eran muy parecidas, el problema me viene con otra opción de ese mismo formulario ya que como el resto, es darle a un botón y abrirse un nuevo formulario.

La cuestión es que en ese formulario (actividades) está el famoso caso de familia y subfamilia a través de unas listas (no es un combo de estos despegables). Y claro, al seleccionarlos siempre se me guardan en un nuevo registro de la tabla >.<
  #62 (permalink)  
Antiguo 13/03/2008, 05:29
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Un formulario llamemosle algo complicado

Ya he arreglado lo de antes, ahora necesito que de este botón que mira la fecha y si hay registro va a ese último y sino me crea un nuevo, quiero que directamente me cree un nuevo registro, dejando en el código que me guarde el CodigoOperario.

El botón tiene 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
        '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
EDIT: ya lo he arreglado >.<
__________________
Cámara Oscura
Etheria

Última edición por Koudelka; 13/03/2008 a las 06:11
  #63 (permalink)  
Antiguo 16/04/2008, 01:42
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 3 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
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 06:57.