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]Inconsistência em Agendamentos!

    Compartilhe
    avatar
    APJesus
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 343
    Registrado : 21/09/2010

    [Resolvido]Inconsistência em Agendamentos!

    Mensagem  APJesus em Qua 08 Nov 2017, 20:08

    Pessoal Boa Tarde!
    Estou com um problema que acredito ser formatação ou versão do access, pois quando criei o Bd usei o access 2003 e agota uso o 2016. Vamos lá:

    tenho uma tabela para agendamento de reserva de área de lazer em um condomínio conforme modelo abaixo no repositório de exemplos:

    [Você precisa estar registrado e conectado para ver este link.]

    No Form tenho os campos principais e outros como seguem:

    Data_Evento  (Nome_Form: TxtDataEvento)
    Hora_Inicio    (Nome_Form: TxtHoraInicial)
    Hora_Final     (Nome_Form: TxtHora_final)
    ID_Lazer ( Cx de combinação para escolha da área de lazer - Campo Texto) (Nome_Form: TxtTipoAgendamento)

    Uso o código abaixo, ou melhor usava e estou tentando adaptar. Uma hora aceita, outra Erro de Execução Estouro, etc... mas a crítica da mensagem que já foi usado aquele horário e naquela data não está funcionando. Segue:

    On Error Resume Next
    If DCount("*", "TAB_RESERVA", "Data_Evento=#" & TxtDataEvento & "# and ((Hora_inicio<=#" & TxtHoraInicial & "# and Hora_final>=#" & TxtHoraInicial & "#) or (Hora_inicio<=#" & TxtHoraFinal & "# and Hora_final>=#" & TxtHoraFinal & "#)) and ID_Lazer='" & TxtTipoAgendamento & "'") > 0 Then 'existe incompatibilidade de agendamento
    DoCmd.OpenForm "ATENCAO_RESERVAMARCADA" ' Msg Box personalizada para crítica de agendamento existente
    End If
    Me.SUBFORM_RESERVA.Requery ' Atualiza a lista de agendamentos

    Lembro que o exemplo pode ser baixado no repositório de exemplo:
    Login: Administrador
    Senha 123

    Aguardo a ajuda dos colegas aqui
    Caso algum colega tenha um exemplo melhor ou mais simples para esta finalidade, fico imensamente agradecido.
    Seria tipo uma agenda de compromissos, onde o evento não pode se repetir nos horários e data, mas precisa ser na grade de horário. ou seja se tenho um evento em 08/11/2017 no horário de 09:00 ás 09:30, e incluir outro na mesma data para horário 09:15 até as 09:50 ele me critique e não deixar gerar o agendamento.


    Última edição por APJesus em Qua 08 Nov 2017, 20:11, editado 1 vez(es) (Razão : Complemento do tópico)
    avatar
    CassioFabre
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 525
    Registrado : 18/01/2013

    Re: [Resolvido]Inconsistência em Agendamentos!

    Mensagem  CassioFabre em Qui 09 Nov 2017, 11:28

    Bom dia,

    Tente substituir o DCOUNT por:
    Código:
    If DCount("Data_Evento", "TAB_RESERVA", "Data_Evento=#" & TxtDataEvento & "# and ((Hora_inicio<=#" & TxtHoraInicial & "# and Hora_final>=#" & TxtHoraInicial & "#) or (Hora_inicio<=#" & TxtHoraFinal & "# and Hora_final>=#" & TxtHoraFinal & "#)) and ID_Lazer='" & TxtTipoAgendamento & "'") > 0 Then

    [...]

    End if

    Abraço.


    .................................................................................
    Só não tem código pra morte!
    avatar
    APJesus
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 343
    Registrado : 21/09/2010

    Re: [Resolvido]Inconsistência em Agendamentos!

    Mensagem  APJesus em Qui 09 Nov 2017, 11:56

    Cassio, Bom dia!
    Obrigado pela atenção, mas continua aceitando o evento mesmo já agendado.

    Tô ficando louco com isso aqui, pois este código funcionava e agora nada. E nada foi alterado nele.

    Obs: Foi alterado somente o "*" que seria todos os campos para um campo específico (Data_Evento) certo?

    Abraços,
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Inconsistência em Agendamentos!

    Mensagem  Alexandre Neves em Qui 09 Nov 2017, 14:07

    Boa tarde,
    reveja as condições
    se tiver já registado periodo das 0700 as 0900
    ele aceita registar periodo das 0600 as 0800


    .................................................................................
    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
    avatar
    APJesus
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 343
    Registrado : 21/09/2010

    Re: [Resolvido]Inconsistência em Agendamentos!

    Mensagem  APJesus em Qui 09 Nov 2017, 18:11

    Boa Tarde, Alexandre!
    Obrigado pela atenção.

    Na grade de horário também aceita. Ex: se tem agendado 09:00 as 09:30 e agendar outro para 09:20 ás 09:25 ele aceita e antes criticava. E se eu colocar o mesmo horário Ex: 09:00 as 09:30 ele também aceita e não critica. Vou rever as condições como sugerido...

    Se não me engano as dicas para construção desta condição foi você que me ajudou e muito e ficou sensacional, mas agora não funciona.
    avatar
    APJesus
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 343
    Registrado : 21/09/2010

    Re: [Resolvido]Inconsistência em Agendamentos!

    Mensagem  APJesus em Qui 09 Nov 2017, 19:29

    Alexandre, Boa tarde!
    Feito e Resolvido! Segue abaixo a alteração e implementação do código baseado na sua sugestão e funcionando.
    * Ao Cassio Fabre também segue meu agradecimento pela atenção dispensada.

    Agora mesmo com antecedência do agendamento é criticado.

    Muito obrigado por me fazer pensar ( rsrsrsrsr )

    Abraços>

    Segue código:

    If Nz(DCount("*", "TAB_RESERVA", "Data_Evento=#" & Format(Me.TxtDataEvento, "mm-dd-yyyy") & "# and ((Hora_inicio>=#" & TxtHoraInicial & _
    "# and Hora_final>=#" & TxtHoraFinal & "#) or (Hora_inicio<=#" & TxtHoraInicial & "# and Hora_final>=#" & TxtHoraInicial & "#) or (Hora_inicio<=#" & TxtHoraFinal & _
    "# and Hora_final>=#" & TxtHoraInicial & "#)) and ID_Lazer='" & TxtTipoAgendamento & "'"), 0) >= 1 Then 'existe incompatibilidade de agendamento
    DoCmd.OpenForm "ATENCAO_RESERVAMARCADA"
    DoCmd.CancelEvent
    End If
    Me.SUBFORM_RESERVA.Requery




    Última edição por APJesus em Qui 09 Nov 2017, 19:31, editado 1 vez(es) (Razão : Complemento da resposta.)

      Tópicos similares

      -

      Data/hora atual: Ter 21 Nov 2017, 17:33