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]Impedir duplicidade de datas

    tauron
    tauron
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1118
    Registrado : 07/12/2011

    [Resolvido]Impedir duplicidade de datas Empty [Resolvido]Impedir duplicidade de datas

    Mensagem  tauron em 1/11/2019, 19:33

    no projeto de controle de viagens, na tabela existem dentre outros, os campos "Matricula" (chave primaria) Tipo Texto e o campo "DtSaida", tipo Data (data abreviada) e, gostaria que ao digitar a data de saida (dtsaida) verificasse na tabela se ja existe registro para tal data.

    Ex: no dia 28/10/2019 houve o registro para a data de 27/10/2019 para a matricula 11588641. Hoje, 01/11/2019 chegou uma solicitação para novo registro da  matricula 11588641 para 27/10/2019. Sendo assim haveria duplicidade de informações, pois o mesmo motorista fazendo duas viagens no mesmo dia o que não é permitido. então gostaria não fosse permitido a duplicidade de datas para a mesma matricula.
    Anexos
    [Resolvido]Impedir duplicidade de datas AttachmentDiariasTeste.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (134 Kb) Baixado 9 vez(es)
    avatar
    renpv
    Avançado
    Avançado

    Respeito às Regras 100%

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

    [Resolvido]Impedir duplicidade de datas Empty Re: [Resolvido]Impedir duplicidade de datas

    Mensagem  renpv em 3/11/2019, 12:46

    Amigo, se eu entendi bem seu problema a solução é usar chave primária composta.
    tauron
    tauron
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1118
    Registrado : 07/12/2011

    [Resolvido]Impedir duplicidade de datas Empty Re: [Resolvido]Impedir duplicidade de datas

    Mensagem  tauron em 3/11/2019, 15:44

    Acho que não resolveria pois, um mesma "matricula" será usada para várias datas e várias "matriculas" para uma mesma data.
    Celso Roberto
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 956
    Registrado : 01/03/2014

    [Resolvido]Impedir duplicidade de datas Empty Re: [Resolvido]Impedir duplicidade de datas

    Mensagem  Celso Roberto em 3/11/2019, 17:07

    olá

    teste no evento antes de atualizar do campo data do subformulario
    Código:
    Private Sub DtSaida_BeforeUpdate(Cancel As Integer)
     
        'On Error Resume Next

        If DCount("DtSaida", "tblDetalhes", "Matricula = " & Me.Parent!Matricula & " And DtSaida = #" & DtSaida & "#") > 0 Then
                   
            'avisa
            MsgBox "Já existe um Agendamento para esta matricula" & Space(2) & "" _
            & DLookup("[Matricula]", "tblDetalhes", "[Matricula] = " & Me.Parent!Matricula & "") & vbCrLf & "" _
            & "Agendado para esta Data" & vbCrLf & "" _
            & DLookup("[DtSaida]", "tblDetalhes", "[DtSaida] = #" & Format(Me!DtSaida, "mm/dd/yyyy") & "#") & vbCrLf & "" _
            & "Verifique e Confira os dados", vbInformation, "Verificação"
            'desfaz a digitação
            Me.Undo
            Cancel = True
        End If
    End Sub


    Aguardamos

    Abraços


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    Maicon
    Maicon
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 167
    Registrado : 08/09/2012

    [Resolvido]Impedir duplicidade de datas Empty Re: [Resolvido]Impedir duplicidade de datas

    Mensagem  Maicon em 3/11/2019, 17:41

    Acho que o amigo renpv , que dizer é que a data deveria ser uma chave primária , já usei isto em um projeto deveria fazer a distribuição por dia então seria algo tipo assim :

    Tabela DataAbertura  - Deveria fazer abertura do dia ou seja inserir a data do serviço esta tabela seria mais ou menos assim .



    DataAbertura_tbl                           Rotas_tbl  
    {}Id_Servicos---------------------->{}Chave_Estrangeira_DataTbl (Idexidado,Sim,DuplicaçãoAutorizada,Não)
    [] Data                                         []Motorista    
                                                       []Partida
                                                       []Destino


    {} Chave primária
    [] Campo formulário

    Desulpe Celso não havia visto seu POST . Acho que é mais adequado. Mas como já havia postado fica desta outra alternativa.


    .................................................................................
    "O talento vence jogos, mas só o trabalho em equipe ganha campeonatos."
    Michael Jordan

    Bons Estudos.
    Celso Roberto
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 956
    Registrado : 01/03/2014

    [Resolvido]Impedir duplicidade de datas Empty Re: [Resolvido]Impedir duplicidade de datas

    Mensagem  Celso Roberto em 3/11/2019, 17:58

    Olá Maicon,

    Não tem que se desculpar, estamos todos a dar idéias e sugestões a que solicita

    Abraços e sucesso


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    tauron
    tauron
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1118
    Registrado : 07/12/2011

    [Resolvido]Impedir duplicidade de datas Empty Re: [Resolvido]Impedir duplicidade de datas

    Mensagem  tauron em 3/11/2019, 19:59

    Boa tarde,

    Celso, esta dando erro 3464 - tipo de dados incompativel na expressao de criterio

    Ja tentei como data e texto.
    Celso Roberto
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 956
    Registrado : 01/03/2014

    [Resolvido]Impedir duplicidade de datas Empty Re: [Resolvido]Impedir duplicidade de datas

    Mensagem  Celso Roberto em 3/11/2019, 20:23

    Olá tauron,

    No exemplo que disponibilizou esta Ok, sem erro.

    qual linha da o erro?

    verifique qual campo e corrija as Aspas para texto ou numer

    Aguardo


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    avatar
    renpv
    Avançado
    Avançado

    Respeito às Regras 100%

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

    [Resolvido]Impedir duplicidade de datas Empty Re: [Resolvido]Impedir duplicidade de datas

    Mensagem  renpv em 4/11/2019, 00:10

    Chave primária composta. Veja como fazer
    tauron
    tauron
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1118
    Registrado : 07/12/2011

    [Resolvido]Impedir duplicidade de datas Empty Re: [Resolvido]Impedir duplicidade de datas

    Mensagem  tauron em 4/11/2019, 13:26

    Amigo renpv, na tblFuncionarios há chave composta, o fato é que preciso que a inserção de dados seja interrompida quando houver duplicidade de data (dtsaida) e, como eu disse na mensagem anterior, uma matricula terá varias datas e várias matriculas poderão ter a mesma data.
    tauron
    tauron
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1118
    Registrado : 07/12/2011

    [Resolvido]Impedir duplicidade de datas Empty Re: [Resolvido]Impedir duplicidade de datas

    Mensagem  tauron em 4/11/2019, 15:01

    Muito obrigado a Renpv e Celso Roberto.

    O codigo ficou assim:

    Código:
    Private Sub DtSaida_BeforeUpdate(Cancel As Integer)
     
        'On Error Resume Next

        If DCount("DtSaida", "tblDetalhes", "Matricula = [color=#0000ff]'"[/color] & Me.Parent!Matricula & [color=#0000ff]"'[/color] And DtSaida = #" & DtSaida & "#") > 0 Then
                   
            'avisa
            MsgBox "Já existe um Agendamento para esta matricula" & Space(2) & "" _
            & DLookup("[Matricula]", "tblDetalhes", "[Matricula] = [color=#0000ff]'"[/color] & Me.Parent!Matricula & [color=#0000ff]"'"[/color]) & vbCrLf & "" _
            & "Agendado para esta Data" & vbCrLf & "" _
            & DLookup("[DtSaida]", "tblDetalhes", "[DtSaida] = #" & Format(Me!DtSaida, "mm/dd/yyyy") & "#") & vbCrLf & "" _
            & "Verifique e Confira os dados", vbInformation, "Verificação"
            'desfaz a digitação
            Me.Undo
            Cancel = True
        End If
    End Sub
    avatar
    renpv
    Avançado
    Avançado

    Respeito às Regras 100%

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

    [Resolvido]Impedir duplicidade de datas Empty Re: [Resolvido]Impedir duplicidade de datas

    Mensagem  renpv em 4/11/2019, 16:30

    Obrigado pelo retorno. Sucesso.
    Celso Roberto
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 956
    Registrado : 01/03/2014

    [Resolvido]Impedir duplicidade de datas Empty Re: [Resolvido]Impedir duplicidade de datas

    Mensagem  Celso Roberto em 12/11/2019, 04:05

    Olá..

    Retornando de um breve descanso!!

    Ficamos felizes por ter ajudado cheers cheers cheers

    Abraços e sucesso


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    tauron
    tauron
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1118
    Registrado : 07/12/2011

    [Resolvido]Impedir duplicidade de datas Empty Re: [Resolvido]Impedir duplicidade de datas

    Mensagem  tauron em 12/11/2019, 11:42

    Bom dia mestres, Estou reabrindo este topico devido ao fato que começou a ocorrer um fato inusitado, como meu projeto, o codigo que o Celso Roberto postou funfou blz, até ontem (11/11/2019). Agora se eu registro uma data para uma matricula, não consigo realizar para outro motorista.

    Ex. Já registrei o dia 17/06/2019 para a matricula 11588641 e dia 18/06/2019 para a matricula 22699752, quando tento registrar a data 18/06/2019 para a matricula 11588641 informe que já há agendamento.

    fazendo os testes no arquivo que disponibilizei não ocorre nenhum erro a alteração foi quanto a divisão do projeto em Front End e Back End.
    Celso Roberto
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 956
    Registrado : 01/03/2014

    [Resolvido]Impedir duplicidade de datas Empty Re: [Resolvido]Impedir duplicidade de datas

    Mensagem  Celso Roberto em 13/11/2019, 14:36

    Olá...

    Fiz aqui uma simulação em rede com seu exemplo e não apresentou nenhum problema, cadastrei varias matriculas e simulei com datas de saida iguais e foi tudo normal.

    Verifique se o problema ocorre em todas as maquinas, pois pode ser configuração por maquina com sistema operacional diferente.

    Lembro que tive um caso similar e o problema era este acima e solucionei formatando a data.

    Então faça teste alterando esta linha abaixo.

    Código:
    If DCount("DtSaida", "tblDetalhes", "Matricula = " & Me.Parent!Matricula & " And DtSaida = #" & Format(Me!DtSaida, "mm/dd/yyyy") & "#") > 0 Then


    Mas antes não esqueça de verificar todas as maquinas, verificando quais apresenta o problema e quais não, assim voce altera só as que apresentos o problema.

    e também verifique se fez a transição dos codigos corretamente

    Aguardamos

    Abraços


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    tauron
    tauron
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1118
    Registrado : 07/12/2011

    [Resolvido]Impedir duplicidade de datas Empty Re: [Resolvido]Impedir duplicidade de datas

    Mensagem  tauron Ontem à(s) 12:08

    Obrigado pela resposta rapida. Eu não consigo entender o que esta acontecendo, porque quando implementei o codigo, funcionou perfeitamente, e nao semana seguinte começou.

    Por enquanto, somente roda em uma maquina (onde projetei o aplicativo). Mas vou fazer os testes.

    Mais uma vez obrigado.

    Conteúdo patrocinado

    [Resolvido]Impedir duplicidade de datas Empty Re: [Resolvido]Impedir duplicidade de datas

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 15/11/2019, 03:50