MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    Aviso de Período entre Data Ocupado

    avatar
    GinoBR01
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 42
    Registrado : 03/06/2019

    Aviso de Período entre Data Ocupado Empty Aviso de Período entre Data Ocupado

    Mensagem  GinoBR01 em Qua 10 Jun 2020, 2:15 pm

    Bom dia a Todos,

    Access 2016
    Windows 10

    A ideia é gerar um mapa de programação de frota. No período que um determinado frota estiver programado em um obra não deve ser possível um novo agendamento.
    A lotação do frota no período é feito em subform, então faço de várias ao mesmo tempo, assim constituo um mapa de equipamentos que estarão lotado nessa obra me informando por qual período.

    No Subform tenho os campos (além das chave primaria e relação com a chave da obra) o número frota, DataEntrada e DataSaida. Após preencher os campos datas preciso que busque na tabela se já há agendamento para esses dias (entre as datas de entrada e de saída) e me avise que a data está indisponível, mas que me permita agendar tanto para período anteriores ou posteriores.

    Já consultei um exemplo postado aqui no fórum, mas não se aplica a meu caso por eu ter um subform onde posso agendar vários frotas ao mesmo tempo.
    Anexos
    Aviso de Período entre Data Ocupado Attachmenttela.PNG
    Você não tem permissão para fazer download dos arquivos anexados.
    (13 Kb) Baixado 16 vez(es)
    avatar
    caique
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 45
    Registrado : 08/12/2015

    Aviso de Período entre Data Ocupado Empty Re: Aviso de Período entre Data Ocupado

    Mensagem  caique em Qua 19 Ago 2020, 6:30 pm

    Boa tarde, Gino.

    Use a função:

    Private Function ProcurarData(DataProcurada As Date) As Boolean

    Dim DB, tb

    Set DB = CurrentDb

    ' Abre o recordset.
    Set tb = DB.OpenRecordset("OS")

    ProcurarData = False

    Do Until tb.EOF ' Inicia o loop.

    If DataProcurada >= tb!DataEntrada And DataProcurada <= tb!DataSaida Then
    ProcurarData = True
    Exit Do ' se achou a data procurada sai da rotina
    End If
    tb.MoveNext ' Localiza o registro seguinte.

    Loop ' Fim do loop.

    tb.Close ' Fecha a tabela.
    DB.Close

    End Function

      Data/hora atual: Sex 04 Dez 2020, 8:27 am