Access - contar tiempo

 
Vista:

contar tiempo

Publicado por Jose (1 intervención) el 11/07/2003 16:33:36
saludos....
mi problema es el siguiente yo necesito contar el tiempo que tiene un registro en mi sistema en un cuadro de texto ocea lpo que me pidieron fue calculara la duracion de esa persona en la empresa despued de cumplir 3 meses empiesa el conteo, como puedo hacer yo esto que en un cuadro de texto me diga la cantida en meses o oños y meses ocea este registro tiene 24 meses o este registro tiene 1 año y 6 meses.
espero a que se alla entendido.
gracias por su ayuda.
adios.....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

contar tiempo

Publicado por Alejandro (4142 intervenciones) el 02/05/2023 17:16:36
Para calcular la duración de una persona en la empresa en meses o años y meses en Access, puedes seguir estos pasos:

1. Agrega un cuadro de texto en tu formulario donde deseas mostrar la duración.
2. Crea una consulta que calcule la diferencia entre la fecha actual y la fecha de ingreso de la persona en meses o años y meses. Por ejemplo, si la fecha de ingreso se almacena en un campo llamado "FechaIngreso" en una tabla llamada "Empleados", puedes usar la siguiente consulta para calcular la duración en meses:

1
2
3
SELECT IIF(DateDiff("m", [FechaIngreso], Date())>3, DateDiff("m", [FechaIngreso], Date()), 0) AS Duracion
   FROM Empleados
   WHERE ID=[ID del empleado];

Esta consulta utiliza la función DateDiff para calcular la diferencia en meses entre la fecha actual y la fecha de ingreso, pero solo si la persona ha estado en la empresa por más de 3 meses. De lo contrario, devuelve 0.

Si deseas calcular la duración en años y meses, puedes usar esta consulta en su lugar:

1
2
3
SELECT IIF(DateDiff("m", [FechaIngreso], Date())>3, Format(Int(DateDiff("d", [FechaIngreso], Date())/365.25), "0") & " años y " & Format(DateDiff("d", [FechaIngreso], Date()) Mod 365.25/30.4375, "0") & " meses", "Menos de 3 meses") AS Duracion
   FROM Empleados
   WHERE ID=[ID del empleado];

Esta consulta calcula la diferencia en días entre la fecha actual y la fecha de ingreso, luego divide esa diferencia entre 365.25 para obtener el número de años y la parte decimal de los meses, que se convierten en un formato legible para el usuario.

3. En el evento OnCurrent del formulario, llama a la consulta y asigna el resultado al cuadro de texto. Por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Form_Current()
       Dim db As DAO.Database
       Dim rs As DAO.Recordset
 
       Set db = CurrentDb()
       Set rs = db.OpenRecordset("SELECT Duracion FROM consulta_duracion WHERE ID=" & Me.ID)
 
       If Not rs.EOF Then
           Me.txtDuracion = rs!Duracion
       Else
           Me.txtDuracion = "N/A"
       End If
 
       rs.Close
       Set rs = Nothing
       Set db = Nothing
   End Sub

Este código abre una conexión con la base de datos actual, ejecuta la consulta para el empleado actualmente seleccionado en el formulario y asigna el resultado al cuadro de texto. Si el resultado es nulo (es decir, si la persona ha estado en la empresa por menos de 3 meses), muestra "N/A" en su lugar.

Espero que esto te ayude a resolver tu problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar