MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]Formatar caixa de texto com resultado de soma de horas em VBA

    avatar
    Luís André Ramos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 08/08/2011

    [Resolvido]Formatar caixa de texto com resultado de soma de horas em VBA Empty Formatar caixa de texto com resultado de soma de horas em VBA

    Mensagem  Luís André Ramos 15/11/2011, 00:56

    Boa noite, desculpem se estou no fórum errado. Já procurei nos exemplos e não encontrei a solução.
    Tenho o seguinte problema num Formulário:
    HorarioSaida1 HorárioDestino1 TotalHoras1
    HorarioSaida2 HorarioDestino2 TotalHoras2
    HorarioSaida3 HorarioDestino3 TotalHoras3
    HorarioSaida4 HorarioDestino4 TotalHoras4
    HorarioSaida5 HorarioDestino5 TotalHoras5
    HorarioSaida6 HorarioDestino6 TotalHoras6
    Todos esses campos estão no formato "Hora Abreviada"
    Os campos "TotalHoras" em Fonte do Controle estão assim:
    =SeImed([HorarioDestino1]>[HorarioSaida1];[HorarioDestino1]-[HorarioSaida1];([txtHora]-[HorarioSaida1]+[txtCorretivo])+[HorarioDestino1])
    para o caso de a viagem começar num dia e terminar no dia seguinte, por exemplo 22:00 às 02:00 = 04:00 (esses campos "TotalHoras" nunca passarão de 24 horas)
    Tenho também os Campos "TotalHoras21, TotalHoras32, TotalHoras43, TotalHOras54 e TotalHoras65", os quais calculam o intervalo de tempo entre o HorarioDestino1 e o HorarioSaida2, para saber quanto tempo de permanência em determinada cidade.
    Até aqui está tudo dando certo, digito o horário de saída e o horário de destino e obtenho o resultado no campo "TotalHoras".
    Meu problema está no Campo "TotaldeHoras" que está assim:

    Private Sub HorarioDestino6_LostFocus()
    Me.txtTotaldeHoras = (Me.txtTotal1 + Me.txtTotal21 + Me.txtTotal2 + Me.txtTotal32 + Me.txtTotal3 + Me.txtTotal43 + Me.txtTotal4 + Me.txtTotal54 + Me.txtTotal5 + Me.txtTotal65 + Me.txtTotal6)

    Quando o somatório resulta até 23:59, calcula perfeitamente, mas quando passa de 24horas o resultado está ficando assim: total de 25horas, o campo "txtTotaldeHoras" é preenchido com: 01:00

    Queria fazer algo para que caso o resultado passasse de 24h fosse somado 24horas, caso passasse de 48, fosse domado 48horas e assim por diante, caso fosse até 23:59 não fizesse nada. Tem como?

    avatar
    Convidado
    Convidado


    [Resolvido]Formatar caixa de texto com resultado de soma de horas em VBA Empty Re: [Resolvido]Formatar caixa de texto com resultado de soma de horas em VBA

    Mensagem  Convidado 15/11/2011, 01:15

    Amigao se pretende ter a somatoria de horas acumuladas o campo nao dever ser do tipo data/hora, pois este campo so apresenta o horario ate no intervalo de 24 h... o que deves fazer e converter o txttotal1, txtTotal2 etc... e horas decimais...

    Voce criaria variaveis para receber o valor de cada caixa texto, converteria este valor m horas decimais, somaria as variaves, depois dividiria por 24 ou reconverteria para horas normais.. no forum tem exemplo de codigos de conversao, caso na os enconte posso envia-los assim que estiver nopc.


    Cumprimentos
    avatar
    Convidado
    Convidado


    [Resolvido]Formatar caixa de texto com resultado de soma de horas em VBA Empty Re: [Resolvido]Formatar caixa de texto com resultado de soma de horas em VBA

    Mensagem  Convidado 15/11/2011, 01:20

    No repositorio de exempls tem um modelo meu moon phases que tem esta funcao de conversao, eu utilizoz justamente para efetuar determinados tipos de calculos envolvendo horas, que em boa parte tem que ser convertidas em decimais, justamente por que a somatoria de mintos podem produzr uma nova hora, ou seja se somar 30 + 30 min= 60 min, no entando se somar 35 + 30 = 1:05 min... dai a necessidade de se converter antes em decimal, somar depois reconverter em horas normais
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Formatar caixa de texto com resultado de soma de horas em VBA Empty Re: [Resolvido]Formatar caixa de texto com resultado de soma de horas em VBA

    Mensagem  criquio 15/11/2011, 01:25

    Pode ainda usar o campo do total de horas com tipo número ao invés de hora e na origem do controle, colocar algo assim:

    =(Val(Left(Campo1;2)) + Val(Left(Campo2;2)) + Val(Left(Campo3;2)) + Val(Left(Campo4;2)) * 60) + Val(Right(Campo1;2)) + Val(Right(Campo2;2)) + Val(Right(Campo3;2)) + Val(Right(Campo4;2)) / 60 & ":" & (Val(Left(Campo1;2)) + Val(Left(Campo2;2)) + Val(Left(Campo3;2)) + Val(Left(Campo4;2)) * 60) + Val(Right(Campo1;2)) + Val(Right(Campo2;2)) + Val(Right(Campo3;2)) + Val(Right(Campo4;2)) Mod 60

    Essa operação converte tudo em minutos, passa para horas, coloca o : e coloca o que sobrar das horas nos minutos. É meio complexo de se olhar mas é por aí.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Luís André Ramos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 08/08/2011

    [Resolvido]Formatar caixa de texto com resultado de soma de horas em VBA Empty Re: [Resolvido]Formatar caixa de texto com resultado de soma de horas em VBA

    Mensagem  Luís André Ramos 15/11/2011, 03:05

    Muito Obrigado amigos Harysohn e Criquio. Vou procurar o seu exemplo Harysohn.
    Tentei este do Sr. Criquio, mas o resultado foi de: 300,033333333333:302 para um total de 11:00 que foram somadas. Acho que fiz alguma coisa errada.

    =(Val(Esquerda([txtTotal1];2))+Val(Esquerda([txtTotal21];2))+Val(Esquerda([txtTotal2];2))+Val(Esquerda([txtTotal32];2))+Val(Esquerda([txtTotal3];2))+Val(Esquerda([txtTotal43];2))+Val(Esquerda([txtTotal4];2))+Val(Esquerda([txtTotal54];2))+Val(Esquerda([txtTotal5];2))+Val(Esquerda([txtTotal65];2))+Val(Esquerda([txtTotal6];2))*60)+Val(Direita([txtTotal1];2))+Val(Direita([txtTotal21];2))+Val(Direita([txtTotal2];2))+Val(Direita([txtTotal32];2))+Val(Direita([txtTotal3];2))+Val(Direita([txtTotal43];2))+Val(Direita([txtTotal4];2))+Val(Direita([txtTotal54];2))+Val(Direita([txtTotal5];2))+Val(Direita([txtTotal65];2))+Val(Direita([txtTotal6];2))/60 & ":" & (Val(Esquerda([txtTotal1];2))+Val(Esquerda([txtTotal21];2))+Val(Esquerda([txtTotal2];2))+Val(Esquerda([txtTotal32];2))+Val(Esquerda([txtTotal3];2))+Val(Esquerda([txtTotal43];2))+Val(Esquerda([txtTotal4];2))+Val(Esquerda([txtTotal54];2))+Val(Esquerda([txtTotal5];2))+Val(Esquerda([txtTotal65];2))+Val(Esquerda([txtTotal6];2))*60)+Val(Direita([txtTotal1];2))+Val(Direita([txtTotal21];2))+Val(Direita([txtTotal2];2))+Val(Direita([txtTotal32];2))+Val(Direita([txtTotal3];2))+Val(Direita([txtTotal43];2))+Val(Direita([txtTotal4];2))+Val(Direita([txtTotal54];2))+Val(Direita([txtTotal5];2))+Val(Direita([txtTotal65];2))+Val(Direita([txtTotal6];2)) Mod 60
    avatar
    Luís André Ramos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 08/08/2011

    [Resolvido]Formatar caixa de texto com resultado de soma de horas em VBA Empty Re: [Resolvido]Formatar caixa de texto com resultado de soma de horas em VBA

    Mensagem  Luís André Ramos 15/11/2011, 21:03

    Sr. Criquio, tem como verificar o que fiz errado ou alguma outra sugestão?
    Obrigado
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Formatar caixa de texto com resultado de soma de horas em VBA Empty Re: [Resolvido]Formatar caixa de texto com resultado de soma de horas em VBA

    Mensagem  criquio 16/11/2011, 12:10

    Fiz aqui um modelo com dois campos. Acrescente os campos corretos e teste:

    =Fix((((Val(Format([Texto0];"hh"))+Val(Format([Texto2];"hh")))*60)+(Val(Format([Texto0];"nn"))+Val(Format([Texto2];"nn"))))/60) & ":" & Format((((Val(Format([Texto0];"hh"))+Val(Format([Texto2];"hh")))*60)+(Val(Format([Texto0];"nn"))+Val(Format([Texto2];"nn")))) Mod 60;"00")


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Luís André Ramos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 08/08/2011

    [Resolvido]Formatar caixa de texto com resultado de soma de horas em VBA Empty Re: [Resolvido]Formatar caixa de texto com resultado de soma de horas em VBA

    Mensagem  Luís André Ramos 16/11/2011, 13:22

    Muitíssimo Obrigado Mestre e Amigo Criquio, deu certinho.
    Um Grande Abraço
    avatar
    Luís André Ramos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 08/08/2011

    [Resolvido]Formatar caixa de texto com resultado de soma de horas em VBA Empty Re: [Resolvido]Formatar caixa de texto com resultado de soma de horas em VBA

    Mensagem  Luís André Ramos 16/11/2011, 13:27

    Não sei como é que faz para passar para resolvido.
    Então, informo que está resolvido.
    Um Grande Abraço a todos.

    Conteúdo patrocinado


    [Resolvido]Formatar caixa de texto com resultado de soma de horas em VBA Empty Re: [Resolvido]Formatar caixa de texto com resultado de soma de horas em VBA

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/4/2024, 00:43