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

    [Resolvido]Horários Duplicados

    avatar
    Curty123
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 25
    Registrado : 02/01/2019

    [Resolvido]Horários Duplicados Empty [Resolvido]Horários Duplicados

    Mensagem  Curty123 9/6/2019, 00:28

    Galera, boa noite!!


    Estou precisando de um apoio.


    O sistema é referente a agendamentos de hórarios de determinados veículos e estou querendo restringir de não realizem agendamento no período em que outro horário foi marcado.

    Consegui fazer uma restrição, porém não está 100%.

    Ex: Cadastrei uma programação Início: 07:00:00 às  Fim:17:00:00
    Se eu tentar cadastrar de Início: 07:00:00 à qualquer outra hora até 17:00:00, o sistema não deixa.
    Se eu tentar cadastrar com final 17:00:00, o sistema não deixa.

    Porém se eu cadastrar de 08:00:00 às 16:00:00, o sistema permite.


    Queria algum código ou maneira de bloquear de fato aquele tempo completo que foi agendado.

    Obs: JÁ PESQUISEI NO FORUM E NÃO ACHEI ALGO QUE CONSEGUI TRADUZIR AO MEU SISTEMA.

    Segue em anexo, exemplo do banco.
    Anexos
    [Resolvido]Horários Duplicados AttachmentVerificarAgendamento_r1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (29 Kb) Baixado 8 vez(es)
    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1756
    Registrado : 23/01/2018

    [Resolvido]Horários Duplicados Empty Re: [Resolvido]Horários Duplicados

    Mensagem  crysostomo 9/6/2019, 15:40



    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7999
    Registrado : 05/11/2009

    [Resolvido]Horários Duplicados Empty Re: [Resolvido]Horários Duplicados

    Mensagem  Alexandre Neves 9/6/2019, 16:07

    Boa tarde,
    Não consegui introduzir dados que deiam erro.
    Exemplifique


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Horários Duplicados Empty Re: [Resolvido]Horários Duplicados

    Mensagem  DamascenoJr. 9/6/2019, 16:41

    Remova o código já existente e use o código a seguir no evento Antes de Atualizar do objeto Formulário
    Código:
    Dim objRS As DAO.Recordset
        Dim dtDataInicio As Date
        Dim dtDataFim As Date
        Dim dtTempDataInicio As Date
        Dim dtTempDataFim As Date
        Dim booTemConflito As Boolean
       
        If Nz(Me!DataEntrada) <> "" And Nz(Me!HoraInicio) <> "" And Nz(Me!HoraFim) <> "" Then
       
            dtDataInicio = Me!DataEntrada & " " & Me!HoraInicio
            dtDataFim = Me!DataEntrada & " " & Me!HoraFim
           
            Set objRS = Me.RecordsetClone
           
            If objRS.RecordCount > 0 Then
           
                Call objRS.MoveLast
           
                Do
           
                    dtTempDataInicio = objRS!DataEntrada.Value & " " & objRS!HoraInicio.Value
                    dtTempDataFim = objRS!DataEntrada.Value & " " & objRS!HoraFim.Value
                   
                    If Eval("#" & dtDataInicio & "# between #" & dtTempDataInicio & "# and #" & dtTempDataFim & "#") Or _
                      Eval("#" & dtDataFim & "# between #" & dtTempDataInicio & "# and #" & dtTempDataFim & "#") Or _
                      Eval("#" & dtTempDataInicio & "# between #" & dtDataInicio & "# and #" & dtDataFim & "#") Or _
                      Eval("#" & dtTempDataFim & "# between #" & dtDataInicio & "# and #" & dtDataFim & "#") Then
                     
                      booTemConflito = True
                      Exit Do
                     
                    End If
                   
                    Call objRS.MovePrevious
               
                Loop Until objRS.BOF
           
            End If
           
            Set objRS = Nothing

            If booTemConflito Then
                Call MsgBox("Este horário está colidindo com o horário já agendado...")
                Cancel = True
                Exit Sub
            End If
           
        Else
            Call MsgBox("Preencha todos os campos...")
            Cancel = True
            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.
    avatar
    renpv
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Horários Duplicados Empty Veja se atende

    Mensagem  renpv 9/6/2019, 18:05

    Prezado, eu realizei uma pesquisa e pelo pude constatar a melhor maneira de resolver esse seu problema é usando timestamp. E para fazer isso a gente deve  gravar as datas como Número/Duplo.

    No exemplo que fiz (segue abaixo) usei apenas 4 campos (ID, Veiculo, Inicio, Fim) onde :
    - ID dispensa explicação
    - Veículo seria um campo no formato texto curto com mascara de entrada para aceitar apenas o formato das placas
    - Início seria um campo Numérico para guardar a data e hora do início do agendamento e
    - Fim teria a mesma configuração do campo início

    No formulário de entrada de dados segui o padrão mais fácil para o usuário (Veículo, Data, Início e Fim). Somente ao clicar em gravar que o sistema realiza todas as validações de conflito entre agendamentos ou data final inferior a data inicial, etc.

    Enfim, estou disponibilizando um exemplo aqui. Veja se atende.

    Espero ter ajudado.
    Anexos
    [Resolvido]Horários Duplicados AttachmentVerificarAgendamento.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (62 Kb) Baixado 13 vez(es)
    avatar
    Curty123
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 25
    Registrado : 02/01/2019

    [Resolvido]Horários Duplicados Empty Obrigado pela ajuda.

    Mensagem  Curty123 11/6/2019, 15:07

    renpv, muito obrigado, consegui adptar ao meu sistema.

    Aos demais, Obrigado pela ajuda também.

    avatar
    renpv
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Horários Duplicados Empty Re: [Resolvido]Horários Duplicados

    Mensagem  renpv 11/6/2019, 19:20

    Massa. Sempre que precisar a comunidade está à disposição. Bons estudos.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Horários Duplicados Empty Re: [Resolvido]Horários Duplicados

    Mensagem  DamascenoJr. 12/6/2019, 02:14

    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: 29/7/2021, 13:46