Access - COMO PUEDO HACER UNA SUMA DE TIEMPO EN ACCES EN EL FORMULARIO

 
Vista:
sin imagen de perfil
Val: 43
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

COMO PUEDO HACER UNA SUMA DE TIEMPO EN ACCES EN EL FORMULARIO

Publicado por MARITZA (16 intervenciones) el 09/07/2020 19:11:50
COMO PUEDO HACER UNA SUMA DE TIEMPO EN ACCES

ES DECIR TENGO UN PROGRMA EN EL CUAL DEBO DE SACAR EL TOTAL DE TIEMPO QUE LLEVA UN PROCESO DE UN MATERIAL EN ESPECIFICO
MI TABLA SE LLAMA PROCEDIMIENTO DONDE MANEJO UN CAMPO DE HORAS,MIN,Y SEGUNDOS EL CUAL ES LLENADO CONFORME A LOS PROCESOS POR EJEMPLO
MATERIAL 1 PROCESO 1 2HRAS 20 MIN 60 SEG
MATERIAL 1 PREOCESO2 0 HORAS 10 MIN 45 SEG
MATERIAL 1 PREOCESO3 0 HORAS 10 MIN 30 SEG
HICE UNA CONSULTA PARA QUE ME DIERA LA SUMA DE LOS REGISTROS LA CUAL LO HACE
ME ARROGA ESTE TOTAL
MATERIAL1 2HORAS 40 MIN 135 SEG

PERO CUNDO QUIERO PONER UNA CONDICION EN FORMULARIO LA CUAL SEA SI SEGUNDOS PASA DE 60 AUMENTAR 1 A MINUTOS AL IGUAL PARA LOS MINUTOS SI PASAN DE 60 AUMENTAR 1 A HORAS ESTE ES EL CODIGO QUE OCUPE PERO NO SIEMPRE ENTRA A LA CONDICION

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
Hrs2 = (rstProducts!totalHR)
Min2 = (rstProducts!totalMIN)
SEG2 = (rstProducts!totalSEG)
 
If SEG2 >= 60 Then
 a = SEG2 / 60
 b = Min2 + a
 c = SEG2 - 60
 MT1 = b
 ST = c
 Else
    If MT1 >= 60 Then
        d = MT1 / 60
        e = Hrs2 + d
        f = MT1 - 60
         MT = f
         HT = e
         Else
          ST = SEG2
          MT = Min2
          HT = Hrs2
 
 
    End If
End If




EN ALGUNOS MATERIALES SI ME HACE LA OPERACION EN OTROS NO PUEDEN AYUDARME
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 Roy
Val: 6
Ha aumentado su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

COMO PUEDO HACER UNA SUMA DE TIEMPO EN ACCES EN EL FORMULARIO

Publicado por Roy (2 intervenciones) el 09/07/2020 19:45:44
Las variables Hrs2, Min2 y SEG2 son del tipo Integer?
Al cargar esas variables deberias hacer un convert para asegurar que al validar la condicion se compare un integer con otro integer:
1
2
3
Hrs2 =  CInt(rstProducts!totalHR)
Min2 = CInt(rstProducts!totalMIN)
SEG2 = CInt(rstProducts!totalSEG)
La funcion CInt hace la conversion de string a integer.
Igualmente el resto de las variables (a, b, c, MT1, ST, d, e, f, HT) deben ser de tipo Integer
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
sin imagen de perfil
Val: 43
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

COMO PUEDO HACER UNA SUMA DE TIEMPO EN ACCES EN EL FORMULARIO

Publicado por MARITZA (16 intervenciones) el 09/07/2020 20:17:12
todas están de forma integer
de echo las
MT, HT ,ST SON mis cuadros de texto donde deberá aparecer el resultado
que yo quisiera que fuera
2 hras 42 min 15 s y no esto 2 horas 40 min 135 s
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 Roy
Val: 6
Ha aumentado su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

COMO PUEDO HACER UNA SUMA DE TIEMPO EN ACCES EN EL FORMULARIO

Publicado por Roy (2 intervenciones) el 09/07/2020 21:18:23
Aplica la conversion a Integer que te estoy sugiriendo en la asignacion de los valores a las variables. Me parece que esto soluciona el 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

COMO PUEDO HACER UNA SUMA DE TIEMPO EN ACCES EN EL FORMULARIO

Publicado por Anonimo (3316 intervenciones) el 09/07/2020 21:32:01
Yo convertiría todo a segundos y la suma siempre seria lo mas exacta posible.

Que sean segundos, horas o siglos es una referencia, pero no es obligatorio trabajar en formatos consensuados, bastaría presentar el resultado en un formato consensuado.

Si son columnas a sumar, suma cada columna de forma independiente y su resultado se convierte al menor de sus elementos (en este caso y para ser lo mas exacto: a segundos)

Una vez que se tienen los segundos el convertir ese tiempo en horas ( y también en días si es lo consensuado) minutos y segundos, son simples operaciones aritméticas.

Nota:
La división puede devolver el cociente (sin decimales) si se utiliza '\' en lugar de '/'
También es útil la función MOD para obtener el resto de la división

Y si te es posible: se considera GRITAR escribir todo en letras capitales
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
sin imagen de perfil
Val: 43
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

COMO PUEDO HACER UNA SUMA DE TIEMPO EN ACCES EN EL FORMULARIO

Publicado por MARITZA (16 intervenciones) el 09/07/2020 21:38:57
ok la verdad no me quedo muy claro no se si se podría ser mas especifico por favor
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

COMO PUEDO HACER UNA SUMA DE TIEMPO EN ACCES EN EL FORMULARIO

Publicado por Anonimo (3316 intervenciones) el 10/07/2020 08:47:48
En la exposición inicial no queda claro si el dato esta en un único campo o hay un campo un campo para las horas, otro para los minutos y un tercero para los segundos.

Tampoco esta claro si el campo (único) es de tipo fecha o es de tipo texto .

En principio di por supuesto que cada proceso era un registro y en cada registro había (además de otros) tres campos:
.- todos numéricos y enteros
.- uno para las horas
.- otro para los minutos
.- un tercero para los segundos.

Concreta los datos para poder llegar a un entorno conocido y según el entorno, plantear la estrategia para llegar a la solución deseada.
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
sin imagen de perfil
Val: 43
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

COMO PUEDO HACER UNA SUMA DE TIEMPO EN ACCES EN EL FORMULARIO

Publicado por MARITZA (16 intervenciones) el 10/07/2020 17:27:22
OK mira te explicare

MI tabla se llama Procedimiento donde tengo los siguiente campos:
* Material(es el nombre del material (es de tipo texto))
* Proceso (nombre del proceso( es de tipo texto))
* Horas (tiempo en hrs que tarda el proceso( es de tipo numero)
* Min(tiempo en min que tarda el proceso( es de tipo numero)
* Seg (tiempo en seg que tarda el proceso( es de tipo numero)
mi tabla se muestra así con los datos:
MATERIAL 1 PROCESO1 2 HORAS 20 MIN 60 SEG
MATERIAL 1 PROCESO2 0 HORAS 10 MIN 45 SEG
MATERIAL 1 PROCESO3 0 HORAS 10 MIN 30 SEG


Una vez con mi tabla llena realice una consulta en la cual hice que me hiciera la suma total de mis registros
que es
strSQL = "SELECT SUM(Procedimiento.horas)as totalHR ,SUM(Procedimiento.minutos)as totalMIN, SUM(Procedimiento.segundos)as totalSEG FROM Procedimiento WHERE (Material.nombre)= " & Me.Material (este es un cuadro de texto donde se escribe el nombre de material)
después de esa consulta declare tres variables de forma integer que serian estas:
Hrs2 = (rstProducts!totalHR)
Min2 = (rstProducts!totalMIN)
SEG2 = (rstProducts!totalSEG)
donde al mismo tiempo estoy jalando el total que me dio la consulta
de ahi empiezo a crear la condición de if
a,b,c,d,e,f son variables declaradas de forma integer
MT,ST,HT son mis cuadros de texto donde debe de aparecer el resultado en horas,minutos y segundos
If SEG2 >= 60 Then
a = SEG2 / 60
b = Min2 + a
c = SEG2 - 60
MT = b
ST = c
Else
If MT >= 60 Then
d = MT / 60
e = Hrs2 + d
f = MT - 60
MT = f
HT = e
Else
ST = SEG2
MT = Min2
HT = Hrs2


End If
End If

Mis cuadros de texto estan acomodados asi para que me aparezca el resultado de esta forma
Material 1
Tiempo Total: 2 HORAS(es una etiqueta)40 MIN(es una etiqueta) 135 SEG(es una etiqueta)

El problema al que me enfrento es que algunos materiales pasan de 120 seg o 120 min cualquiera de los dos
es donde entra a la condición pero el resultado no me lo hace correctamente
If SEG2 >= 60 Then
a = SEG2 / 60 ________________ debido a que esta restando 60 en vez de 120
b = Min2 + a
c = SEG2 - 60
MT = b
ST = c
el resultado que me arroga es de
2 horas 40 min 75 seg

he puesto la condicion de 120 junto a la de 60 es decir de esta manera
If SEG2 >= 60 Then
a = SEG2 / 60
b = Min2 + a
c = SEG2 - 60
MT = b
ST = c
else
If SEG2 >= 120 Then
a = SEG2 / 60
b = Min2 + a
c = SEG2 - 120
MT = b
ST = c

y es ahí cuando ya mi programa no hace lo que quiero pues lo que llega hacer es solo la operación de 120 pero la de 60 ya no
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 Francisco
Val: 467
Plata
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

COMO PUEDO HACER UNA SUMA DE TIEMPO EN ACCES EN EL FORMULARIO

Publicado por Francisco (212 intervenciones) el 10/07/2020 17:49:38
Hola

Una simple formula en tu SELECT

1
2
SELECT 	Format$(Sum([hh]*3600+[min]*60+[sec])/86400, "hh:nn:ss") AS total_tiempo_proceso
FROM procesos;

Saludos
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
sin imagen de perfil
Val: 43
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

COMO PUEDO HACER UNA SUMA DE TIEMPO EN ACCES EN EL FORMULARIO

Publicado por MARITZA (16 intervenciones) el 10/07/2020 18:51:54
HOLA
PERO COMO LO ACOMODARIA PARA MI SQL QUE TENGO ?
UNA COSA MAS SE TIENE QUE DECLARAR EL FORMART ?
PORQUE ME MARCA ERROR EN LA PARTE DE "HH:NN:SS"
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 Francisco
Val: 467
Plata
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

COMO PUEDO HACER UNA SUMA DE TIEMPO EN ACCES EN EL FORMULARIO

Publicado por Francisco (212 intervenciones) el 10/07/2020 19:10:23
Hola

Pues reemplazas donde corresponda


1
2
SELECT 	FORMAT$(SUM(campo_horas*3600+campo_minutos*60+campo_segundos)/86400, "hh:nn:ss") AS total_tiempo_proceso
FROM tabla_procesos;


Format$() es una funcion de Access

Para ejecutar tienes que crear una consulta y selecciona Ver SQL alli es donde colocas la SENTENCIA SQL


guardas la consulta y le das un nombre

En el formulario recuperas el valor usando la funcion DLOOKUP("mi_campo","mi_consulta") colocandolo en origen del control de esta manera

1
=DLOOKUP("mi_campo";"mi_tabla")



Saludos
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
sin imagen de perfil
Val: 43
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

COMO PUEDO HACER UNA SUMA DE TIEMPO EN ACCES EN EL FORMULARIO

Publicado por MARITZA (16 intervenciones) el 10/07/2020 19:22:15
Ya logre hacerlo no estaba poniendo bien una variable muchísimas gracias me sirvió mucho tu ayuda
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

COMO PUEDO HACER UNA SUMA DE TIEMPO EN ACCES EN EL FORMULARIO

Publicado por jose (830 intervenciones) el 25/07/2020 11:34:39
una sugerencia

no trabajes con horas, minutos y segundos, pasalo todo a la unidad mas pequeña , segundos y te quitaras muchos problemas
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