MaximoAccess

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

Obrigado

Administração do MaximoAccess

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


    [Resolvido]Mensagem BOX, ao estourar o limite mensal com base no cadastro em uma tabela

    avatar
    wmantovani
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 144
    Registrado : 06/09/2011

    [Resolvido]Mensagem BOX, ao estourar o limite mensal com base no cadastro em uma tabela Empty [Resolvido]Mensagem BOX, ao estourar o limite mensal com base no cadastro em uma tabela

    Mensagem  wmantovani em 3/7/2019, 15:02

    Boa dia pessoal, tenho um bd de horas extras e esta funcionando tudo ok, porem agora haverá corte nas horas extras, e isso será variável de acordo com o mês, por exemplo esse mês será de 60 horas mês, no mês que vem poderá ser de 40 horas, mês. Pensei em criar uma tabela com o valor de horas extras limite no mês, como por exemplo tlblimitemes, campo formato horas abreviado 60:00, ate aqui tudo sem problemas

    Tenho essa consulta que faz a pesquisa dentro do mês/ano corrente com base na inserção da data da execução do serviço
    SELECT tblServidores.MATRÍCULA, tblHorasExtras.NOME, tblHorasExtras.[QUANTIDADE EXTRA], tblHorasExtras.[QUANTIDADE FERIADA], tblHorasExtras.[QUANTIDADE BANCO], tblHorasExtras.DATA_EXECUÇÃO, tblServidores.LOCAL_TRABALHO
    FROM tblServidores INNER JOIN tblHorasExtras ON tblServidores.NOME = tblHorasExtras.NOME
    WHERE (((tblHorasExtras.NOME)=[Formulários]![formHorasExtras]![NOME]) AND ((tblHorasExtras.DATA_EXECUÇÃO) Between [Formulários]![formHorasExtras]![DATA_EXECUÇÃO] And DateSerial(Year([Formulários]![formHorasExtras]![DATA_EXECUÇÃO]),Month([Formulários]![formHorasExtras]![DATA_EXECUÇÃO])+1,0)))
    ORDER BY tblHorasExtras.NOME;

    Porem quero que ao inserir a data de execução o banco faça a pesquisa na tabela e se for superior ao limite estabelecido na tabela tlblimitemes exiba uma msgbox, já tentei algumas coisas mas estou perdido de como fazer isso.
    avatar
    renpv
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 182
    Registrado : 12/01/2015

    [Resolvido]Mensagem BOX, ao estourar o limite mensal com base no cadastro em uma tabela Empty Re: [Resolvido]Mensagem BOX, ao estourar o limite mensal com base no cadastro em uma tabela

    Mensagem  renpv em 3/7/2019, 19:00

    Você pode usar dois recordsets. Um vai buscar os dados dos servidores e outro (pode ser um DLookup) para buscar o limite de horas para aquele mês.
    Depois faz um loop para verificar quais os servidores tem horas extras acima do permitido.

    Outra possibilidade é fazer primeiro o Dlookup com limites de horas e usar como argumento para a query que busca os servidores.
    avatar
    wmantovani
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 144
    Registrado : 06/09/2011

    [Resolvido]Mensagem BOX, ao estourar o limite mensal com base no cadastro em uma tabela Empty Re: [Resolvido]Mensagem BOX, ao estourar o limite mensal com base no cadastro em uma tabela

    Mensagem  wmantovani em 3/7/2019, 20:29

    Cheguei perto do que preciso,

    usei alguns exemplos aqui do forum mas algo ainda esta errado,

    usei a funcao

    ‘**************************************************
    '‘Módulo escrito por Luiz Cláudio C. V. Rocha
    '‘Data: 20/3/2001
    '‘Funções para se trabalhar com horas acima de 24h
    '‘**************************************************

    Public Function HrStr(dblHora As Double) As String
    '‘Pega um valor numérico e o converte para Horas/Minutos
    '‘Ex: 123,5 = “123:30”
    '‘Ex: 23,9833333333333 = “23:59”

    Dim strHoras As String
    Dim strMinutos As String


    '‘Pega as horas (parte inteira)
    strHoras = CStr(Fix(dblHora))


    '‘Pega os minutos
    strMinutos = Format$(Abs((dblHora - Fix(dblHora)) * 60), "00")


    '‘Verifica se o total de minutos é 60
    If strMinutos = "60" Then
    strMinutos = "00"
    strHoras = CStr(CDbl(strHoras) + 1)
    End If


    '‘Concatena os dois
    HrStr = strHoras & ":" & strMinutos


    End Function



    e antes de atualizar o campo que faz a consulta

    Dim rs As Recordset
    Dim mensagem As String
    Dim total As String

    Set rs = CurrentDb().OpenRecordset("select * from [tempHorasMes] where [NOME] = NOME ")

    While Not rs.EOF

    mensagem = "O TOTAL DE HORAS EXTRA NO MÊS É DE: " & Chr(13)
    mensagem = mensagem & HrStr(rs("EXTRAS")):
    rs.MoveNext
    Wend
    MsgBox mensagem
    rs.Close
    End Sub

    porem o resultado deveria ser de 36 horas, mas ele mostra 11:05, e to desde cedo mexendo nisso e nao sei onde to errando,,,obrigado a quem puder ajudar



    avatar
    wmantovani
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 144
    Registrado : 06/09/2011

    [Resolvido]Mensagem BOX, ao estourar o limite mensal com base no cadastro em uma tabela Empty Re: [Resolvido]Mensagem BOX, ao estourar o limite mensal com base no cadastro em uma tabela

    Mensagem  wmantovani em 4/7/2019, 15:46

    Consegui resolver pessoal

    Private Sub NOME_AfterUpdate()

    Dim rs As Recordset
    Dim mensagem As String

    DoCmd.OpenQuery "limpartblTempHoras", , acReadOnly
    DoCmd.OpenQuery "qry_HorasExtrasMes", , acReadOnly

    Set rs = CurrentDb().OpenRecordset("select * from [qrytempHorasMes] where [NOME] = NOME ")

    While Not rs.EOF

    mensagem = "O TOTAL DE HORAS MÊS É DE: " & Chr(13) & vbCrLf
    mensagem = mensagem & "Extras : " & HrStr(rs("Extras")) & vbCrLf
    mensagem = mensagem & "Feriadas : " & HrStr(rs("Feriadas")) & vbCrLf
    mensagem = mensagem & "Banco de horas: " & HrStr(rs("Bancos")) & vbCrLf & vbCrLf
    mensagem = mensagem & "Extras + Feriadas: " & HrStr(rs("Total")) & vbCrLf

    rs.MoveNext
    Wend
    MsgBox mensagem, vbInformation, "Horas já executadas !"
    rs.Close





    End Sub

    Conteúdo patrocinado

    [Resolvido]Mensagem BOX, ao estourar o limite mensal com base no cadastro em uma tabela Empty Re: [Resolvido]Mensagem BOX, ao estourar o limite mensal com base no cadastro em uma tabela

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 16/9/2019, 07:58