Access - calculo entre horas de entrada y horas de salida

 
Vista:
Imágen de perfil de alfonso
Val: 11
Ha disminuido su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

calculo entre horas de entrada y horas de salida

Publicado por alfonso (6 intervenciones) el 26/10/2019 20:58:53
Buenas a todos , tengo una consulta , que la verdad aun siendo tonta la consulta no doy con la solución , la expongo.

en este caso , tengo una pagina de la web que he montado con una tabla que recepciona horas ,( SI ME MARCAN LA FECHA , HORA DE ENTRADA Y DE SALIDA EN EL MISMO ENVIO --> NO HA Y PROBLEMAS , SE REALIZA EL CALCULO ....PERO ) tengo un campo como fecha y otros dos como hora entrada y hora salida , si la persona me marca la hora de entrada , y la envía , y tras la jornada me envía la hora de la salida , resulta que al querer realizar con un solo formulario y las consultas , me salen en la misma fecha pero en diferentes lineas, aunque parece fácil ...no logro realizar loso cálculos de esas dos horas , entrada y salida en diferentes linea , no puedo realizar diferentes consultas para lograrlo ya que todo esta en la misma tabla , ya que solo descargo esos tres campos ( fecha // hora entrada // hora salida ) .

la verdad que no veo como realizar esos cálculos en access y en bbva , tampoco. así que si alguien puede ayudarme os lo agradecería ,

un saludo desde el sur.
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
sin imagen de perfil
Val: 95
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

calculo entre horas de entrada y horas de salida

Publicado por Antonio (81 intervenciones) el 08/11/2019 14:13:09
Estimado, creo tener algo que te puede servir. Debes agregar los siguientes módulos a tu proyecto :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
Option Compare Database
Option Explicit
 
'---------------------------------------------------------MODULO 1---------------------------------------------------------------------------
'
' StrTimeToDate
'
' Código escrito originalmente por Juan M Afán de Ribera.
' Estás autorizado a utilizarlo dentro de una aplicación
' siempre que esta nota de autor permanezca inalterada.
' En el caso de querer publicarlo en una página Web,
' por favor, contactar con el autor en
'
'     accessvbafaq@ya.com
'
' Este código se brinda por cortesía de
' Juan M. Afán de Ribera
'
 
 
Function StrTimeToDate(sDate As String) As Date
 
'' esto devolverá 02/01/1900 17:00:00
'MsgBox StrTimeToDate("89:00:00")
'
'' esto devolverá 25/08/1903 8:00:00
'MsgBox StrTimeToDate("32000:00:00")
'
'' esto devolverá 19/04/1907 16:00:00
'MsgBox StrTimeToDate("64000:00:00")
'
'' esto devolverá 24/12/2004 20:00:00
'' la fecha exacta donde me encuentro ahora
'Debug.Print StrTimeToDate("920300:00:00")
 
Dim Days As Long
Dim Hours As Double
Dim Minutes As Double
Dim Seconds As Double
Dim vDate As Variant
 
    vDate = Split(sDate, ":")
 
    Days = Int(Int(vDate(0)) / 24)
    Hours = (Int(vDate(0)) Mod 24) * 0.0416666
    Minutes = Int(vDate(1)) * 0.0006944
    Seconds = Int(vDate(2)) * 0.0000115
 
    StrTimeToDate = Days + Hours + Minutes + Seconds
 
End Function
'---------------------------------------------------------
 
Public Function TimeToString(Interval As Double) As String
 
'' Esto devolverá "47:59:58"
'MsgBox TimeToString(CDate("23:59:59") + CDate("23:59:59"))
'
'' Esto devolverá "24:00:00"
'MsgBox TimeToString(CDbl(1))
'
'' Esto devolverá "86:00:00"
'
'Dim hora1 As Date, hora2 As Date
'Dim hora3 As Date, hora4 As Date
'
' hora1 = CDate("20:00:00")
' hora2 = CDate("21:00:00")
' hora3 = CDate("22:00:00")
' hora4 = CDate("23:00:00")
'
' MsgBox TimeToString(hora1 + hora2 + hora3 + hora4)
 
    TimeToString = DateDiff("h", 0, Interval) & _
                   Format$(Interval, ":nn:ss")
End Function
'---------------------------------------------------------MODULO 2----------------------------------------------------------------------------
'********************************************************************************
'<< Author        : A. Salvá
'<< Project       : Horas
'<< Description   : Módulo que calcula los días y horas
'********************************************************************************
' Estás autorizado a usar este código en una aplicación,
' siempre y cuando mantengas la nota de autor inalterada.
'
' No se permite su uso profesional ni su publicación en
' páginas/sitios web sin permiso del autor.
'
'********************************************************************************
 
Option Compare Database
Option Explicit
 
Public Function DayToString(Interval As Double) As String
 
    Dim Dias As Integer
    Dim Salida As String
 
    Dias = DateDiff("d", 0, Interval)
    Salida = ""
 
    If Dias > 0 Then
        Salida = Dias & " # "
    End If
 
    DayToString = Trim(Salida & _
                Format(Interval, " hh:nn:ss"))
 
 
End Function
Una vez que cuentes con esos módulos podrás realizar cálculos de horas de entrada, salida, etc. Solamente deberás ir al origen del control en el cual harás el calculo y colocar =DayToString([Entrada]-[Salida]). Saludos espero te sirva de algo ya que a mi me funciona perfecto :)
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

calculo entre horas de entrada y horas de salida

Publicado por Anonimo (3303 intervenciones) el 08/11/2019 15:38:32
Según me parece entender, se dispone de dos tipos de registros:
.- tipo_1: en el mismo registro hay fecha // hora comienzo // hora final
.- tipo_2: en un registro fecha // hora de entrada o la posibilidad de fecha// hora de salida

Se necesita unir los que son un símil a 'medio' registro, para crear uno 'completo' y así poder hacer cálculos

Lo imprescindible: un nexo por el cual considerarlos como un único registro en dos partes, en principio seria el día, pero si esa toma de datos la utilizan varios … se pueden mezclar datos y el conjunto no valdría para nada (por ejemplo entrada del encargo 'A', y salida del encargo 'B' en lugar de la salida y entrada del encargo 'A' o del encargo 'B'.

Suponiendo que esa circunstancia no se de -el dato fecha es el nexo común- la solución puede ir en la utilización de una consulta de agrupación en la que se agrupe por fecha y se sumen las horas de entrada y las de salida, lo que generaría un registro único con su entrada y salida algo así:

Muestras
día 25 , entra a las diez, sale a ???=0
día 25, entra a ??=0 , sale a las 18

Sumados resultaría
día 25, entra a las (10 + 0 = 10), sale a la (0 + 18 = 18)

Para poder solucionar los casos en que el día es diferente:
Se tendría que localizar (para el registro al que le faltase la salida) el registro que cumpliese que la salida (sin entrada, si la tiene 'es un registro completo') fuera la del día mas bajo de los superiores o iguales al día referente

Así se dispondría de dos 'medios registros' que al sumarlos conformarían 'un registro completo'

Pocos datos me parecen para llevar un control, creo que 'por lo menos' debería haber un dato mas ... a que//quien corresponde esa entrada y salida
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
Imágen de perfil de ALF
Val: 11
Ha disminuido su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

calculo entre horas de entrada y horas de salida

Publicado por ALF (6 intervenciones) el 15/09/2023 12:01:41
Ante todo gracias , en ref a los usuario s, solo cree la app para una persona . gracias por la ayuda . un saludo
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