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

4 participantes

    [Resolvido]Tripla condição para gravar

    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4660
    Registrado : 06/11/2009

    [Resolvido]Tripla condição para gravar Empty [Resolvido]Tripla condição para gravar

    Mensagem  Assis 17/5/2022, 11:15

    Bom dia Amigos

    Tenho o seguinte código que não deixa gravar duas vezes no dia o mesmo funcionário:

    Private Sub HoraInicio_AfterUpdate()
    '***********************************
    If Nz(DCount("[DIA]", "RegistoEntradas", "[empregado] = '" & Me.Empregado & "' And [Dia] =#" & Format(Me.txtDia, "mm/dd/yyyy") & "#")) > 0 Then


    MsgBox "O Funcionário " & Empregado & " Já tem Registos com Data de Hoje " & Format(Me.txtDia, "dd/mm/yyyy") & "", vbInformation, "Aviso"
    Call Comando34_Click ' Este comando limpa os campos todos
    Exit Sub
    Else
    End If


    Preciso de uma condição para não deixar gravar o mesmo "Empregado" no mesmo "Dia" dentro do mesmo intervalo de "HoraInicio" e "HoraFim"

    [Resolvido]Tripla condição para gravar Sem_t265


    .................................................................................
    *** Só sei que nada sei ***
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2416
    Registrado : 13/12/2016

    [Resolvido]Tripla condição para gravar Empty Re: [Resolvido]Tripla condição para gravar

    Mensagem  Alexandre Fim 17/5/2022, 14:02

    Assis,

    TEnte isso:

    Código:

        Dim sSQL As String
        Dim rs As DAO.Recordset
       
        sSQL = "SELECT COUNT(*) as cnt FROM RegistoEntradas"
        sSQL = sSQL & " WHERE empregado = '" & Me.Empregado & "'"
        sSQL = sSQL & " AND DIA = #" & Format(Me.txtDia, "mm/dd/yyyy") & "#"
        sSQL = sSQL & " AND HoraInicio >= '" & Format([CAMPO_HORA_INICIO_FORMULARIO], "hh:mm") & "'"
        sSQL = sSQL & " AND HoraFim <= '" & Format([CAMPO_HORA_FIM_FORMULARIO], "hh:mm") & "'"
       
        Set rs = CurrentDb.OpenRecordset(sSQL)
        If rs("cnt") > 0 Then
            'mensagem......
        End If
       
        rs.Close
        Set rst = Nothing



    .................................................................................
    [Resolvido]Tripla condição para gravar Information2 Marcar tópico como Resolvido: CLIQUE AQUI
    [Resolvido]Tripla condição para gravar Information2 Postar anexos no fórum: CLIQUE AQUI

    [Resolvido]Tripla condição para gravar Setinf11
    Sistemas e Tecnologia Ltda
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4660
    Registrado : 06/11/2009

    [Resolvido]Tripla condição para gravar Empty Re: [Resolvido]Tripla condição para gravar

    Mensagem  Assis 17/5/2022, 16:57

    Boa tarde Alexandre  

    Obrigado

    [Resolvido]Tripla condição para gravar Sem_t266


    .................................................................................
    *** Só sei que nada sei ***
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2416
    Registrado : 13/12/2016

    [Resolvido]Tripla condição para gravar Empty Re: [Resolvido]Tripla condição para gravar

    Mensagem  Alexandre Fim 17/5/2022, 20:53

    Olá Assis,

    Deu certo?


    .................................................................................
    [Resolvido]Tripla condição para gravar Information2 Marcar tópico como Resolvido: CLIQUE AQUI
    [Resolvido]Tripla condição para gravar Information2 Postar anexos no fórum: CLIQUE AQUI

    [Resolvido]Tripla condição para gravar Setinf11
    Sistemas e Tecnologia Ltda
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4660
    Registrado : 06/11/2009

    [Resolvido]Tripla condição para gravar Empty Re: [Resolvido]Tripla condição para gravar

    Mensagem  Assis 17/5/2022, 21:42

    Não Alexandre
    Ver mensagem anterior, a parte sublinhada a Amarelo.


    .................................................................................
    *** Só sei que nada sei ***
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2416
    Registrado : 13/12/2016

    [Resolvido]Tripla condição para gravar Empty Re: [Resolvido]Tripla condição para gravar

    Mensagem  Alexandre Fim 17/5/2022, 22:00

    Assis,

    A mensagem anterior só mostra a depuração do código, que não caracteriza erro.
    Faz o seguinte:
    Antes de entrar na linha amarela para abrir o recordset, pressione CTRL+G para abrir a "Verificação Imediata" e digite:
    ?sSQL
    Em seguida, copie o resultado da variável e abra uma consulta no modo SQL e cole a instrução e execute a consulta.

    Veja se vai dar erro!



    .................................................................................
    [Resolvido]Tripla condição para gravar Information2 Marcar tópico como Resolvido: CLIQUE AQUI
    [Resolvido]Tripla condição para gravar Information2 Postar anexos no fórum: CLIQUE AQUI

    [Resolvido]Tripla condição para gravar Setinf11
    Sistemas e Tecnologia Ltda
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4660
    Registrado : 06/11/2009

    [Resolvido]Tripla condição para gravar Empty Re: [Resolvido]Tripla condição para gravar

    Mensagem  Assis 17/5/2022, 22:13

    Eis o resultado

    [Resolvido]Tripla condição para gravar Sem_t267


    .................................................................................
    *** Só sei que nada sei ***
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2416
    Registrado : 13/12/2016

    [Resolvido]Tripla condição para gravar Empty Re: [Resolvido]Tripla condição para gravar

    Mensagem  Alexandre Fim 18/5/2022, 05:18

    Nas horas, substitua as aspas simples por #

    É isso
    Att,
    FIM


    .................................................................................
    [Resolvido]Tripla condição para gravar Information2 Marcar tópico como Resolvido: CLIQUE AQUI
    [Resolvido]Tripla condição para gravar Information2 Postar anexos no fórum: CLIQUE AQUI

    [Resolvido]Tripla condição para gravar Setinf11
    Sistemas e Tecnologia Ltda
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4660
    Registrado : 06/11/2009

    [Resolvido]Tripla condição para gravar Empty Re: [Resolvido]Tripla condição para gravar

    Mensagem  Assis 18/5/2022, 10:35

    Alexandre
    Melhorou mas:

    [Resolvido]Tripla condição para gravar Sem_t268


    .................................................................................
    *** Só sei que nada sei ***
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2416
    Registrado : 13/12/2016

    [Resolvido]Tripla condição para gravar Empty Re: [Resolvido]Tripla condição para gravar

    Mensagem  Alexandre Fim 18/5/2022, 13:15

    Assis,

    Tente desta forma:

    Código:


        sSQL = "SELECT COUNT(*) as cnt FROM RegistoEntradas"
        sSQL = sSQL & " WHERE empregado = '" & Me.Empregado & "'"
        sSQL = sSQL & " AND DIA = #" & Format(Me.txtDia, "mm/dd/yyyy") & "#"
        sSQL = sSQL & " AND HoraInicio >= #" & Format(HoraInicio, "hh:mm:ss") & "#"
        sSQL = sSQL & " AND HoraFim <= #" & Format(HoraFim, "hh:mm:ss") & "#"



    Att,
    FIM


    .................................................................................
    [Resolvido]Tripla condição para gravar Information2 Marcar tópico como Resolvido: CLIQUE AQUI
    [Resolvido]Tripla condição para gravar Information2 Postar anexos no fórum: CLIQUE AQUI

    [Resolvido]Tripla condição para gravar Setinf11
    Sistemas e Tecnologia Ltda
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4660
    Registrado : 06/11/2009

    [Resolvido]Tripla condição para gravar Empty Re: [Resolvido]Tripla condição para gravar

    Mensagem  Assis 18/5/2022, 13:38

    OLá Alexandre

    Segue exemplo

    Obrigado

    O código do Alexandre está no acontecimento "Antes de atualizar a Hora Fim".


    .................................................................................
    *** Só sei que nada sei ***
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4914
    Registrado : 20/04/2011

    [Resolvido]Tripla condição para gravar Empty Re: [Resolvido]Tripla condição para gravar

    Mensagem  Silvio 19/5/2022, 13:33

    Bom dia / boa tarde / boa noite.

    Assis, tente assim


    If Nz(DCount("[DIA & Empregado]", "RegistoEntradas", "[empregado] = '" & Me.Empregado & "' And [Dia] =#" & Format(Me.txtDia, "mm/dd/yyyy") & "#")) > 0 Then


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4660
    Registrado : 06/11/2009

    [Resolvido]Tripla condição para gravar Empty Re: [Resolvido]Tripla condição para gravar

    Mensagem  Assis 19/5/2022, 13:46

    Silvio

    Como o Sílvio disse já está na mensagem Nº 1

    No mesmo dia o empregado pode estar, mas em horas diferentes

    O problema está nas horas, ver mensagem Nº 9

    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3665
    Registrado : 22/11/2016

    [Resolvido]Tripla condição para gravar Empty Re: [Resolvido]Tripla condição para gravar

    Mensagem  DamascenoJr. 21/5/2022, 04:35

    No botão gravar
    Código:
    If DCount("*", "registoentradas", "dia = #" & Format(Me!txtDia, "mm/dd/yyyy") & "# and " & _
                                      "((#" & Me!HoraInicio.Value & "# between horainicio and horafim) or " & _
                                      "(#" & Me!HoraFim.Value & "# between horainicio and horafim))") > 0 Then
        Call MsgBox("Este horário não pode")
        Exit Sub
    End If


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4660
    Registrado : 06/11/2009

    [Resolvido]Tripla condição para gravar Empty Re: [Resolvido]Tripla condição para gravar

    Mensagem  Assis 21/5/2022, 08:04

    Bom dia Damasceno

    Mas na mesma hora exemplo 10:00 as 12:00 podem estar vários empregados.

    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3665
    Registrado : 22/11/2016

    [Resolvido]Tripla condição para gravar Empty Re: [Resolvido]Tripla condição para gravar

    Mensagem  DamascenoJr. 21/5/2022, 11:49

    Código:
    If DCount("*", "registoentradas", "dia = #" & Format(Me!txtDia, "mm/dd/yyyy") & "# and " & _
                                     "Empregado = """ & me!Empregado.value & """ and " & _
                                     "((#" & Me!HoraInicio.Value & "# between horainicio and horafim) or " & _
                                     "(#" & Me!HoraFim.Value & "# between horainicio and horafim))") > 0 Then
       Call MsgBox("Este horário não pode")
       Exit Sub
    End If


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4660
    Registrado : 06/11/2009

    [Resolvido]Tripla condição para gravar Empty Re: [Resolvido]Tripla condição para gravar

    Mensagem  Assis 21/5/2022, 11:57

    Obrigado Damasceno  Laughing

    Perfeito


    .................................................................................
    *** Só sei que nada sei ***
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3665
    Registrado : 22/11/2016

    [Resolvido]Tripla condição para gravar Empty Re: [Resolvido]Tripla condição para gravar

    Mensagem  DamascenoJr. 21/5/2022, 12:03

    E o resolvido?


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4660
    Registrado : 06/11/2009

    [Resolvido]Tripla condição para gravar Empty Re: [Resolvido]Tripla condição para gravar

    Mensagem  Assis 21/5/2022, 13:18

    Tem razão Damasceno


    .................................................................................
    *** Só sei que nada sei ***
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3665
    Registrado : 22/11/2016

    [Resolvido]Tripla condição para gravar Empty Re: [Resolvido]Tripla condição para gravar

    Mensagem  DamascenoJr. 21/5/2022, 13:20

    O fórum agradece o retorno. Sucesso.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

      Data/hora atual: 3/7/2022, 09:40