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


2 participantes

    [Resolvido]Localizar registros duplicados por datas

    avatar
    amelioneto
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 63
    Registrado : 02/04/2013

    [Resolvido]Localizar registros duplicados por datas Empty Localizar registros duplicados por datas

    Mensagem  amelioneto 7/8/2013, 14:45

    Amigos,

    Estou trabalhando em um sistema de locação de equipamentos e preciso que ao clicar no botão para imprimir a solicitação de locação o sistema verifique se o equipamento que está sendo alugado já foi alugado naquele mesmo periodo.

    Para isto eu tenho um formulário principal que contem os dados do locador com um subformulario com as informações dos equipamentos que serão alugados.

    Confesso que já pesquisei no forum diversos tópicos com códigos semelhantes, mas, infelizmente não consegui fazer funcionar esta função.

    Agradeceria se puderem colaborar.

    E precisando posso postar o sistema sem problemas.

    Abraços
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  JPaulo 7/8/2013, 15:14

    E como é que quer fazer essa validação ?

    Ao digitar ?


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Instruções SQL como utilizar...
    avatar
    amelioneto
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 63
    Registrado : 02/04/2013

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  amelioneto 7/8/2013, 16:22

    Ao clicar no botão que gera o relatorio para impressão!

    Funciona da seguinte forma, ao clicar no botão que gera o abre o relatorio em modo de visualização de impressão o sistema precisa fazer o seguinte:

    1. Verificar se os equipamentos que estao sendo exibidos no subformulário ja existem na Tabela dos Equipamentos alugados.
    2. Caso existam, verificar se a data ou intervalo de datas em que ele esta sendo alugado coincide com o de alguma locação anterior.
    3. Se SIM, ou seja temos um mesmo equipamento que estamos tentando alugar para uma data no qual ele esta alugado, o sistema permanece na tela do Formulario.
    4 Caso NÃO, o sistema abre a tela do relatorio em modo de visualização de impressão, permitindo finalizar o processo.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  JPaulo 7/8/2013, 17:27

    Então desculpe que lhe diga, mas está a construir a casa pelo telhado.

    Na minha humilde opinião, essa validação de alugar um equipamento que nesse intervalo de datas já está alugado, seria no acto da inserção dos dados no formulario, ou subformulario.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Instruções SQL como utilizar...
    avatar
    amelioneto
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 63
    Registrado : 02/04/2013

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  amelioneto 7/8/2013, 17:42

    JPaulo, obrigado por sua atenção
    Prefere que eu envie o sistema para facilitar?

    Segue em anexo.

    Ao acessar entre como administrador e utilize a senha 999999.

    Clique no botão 'Criar ACP' e abrirá o formulario 'ACP'.
    O que eu gostaria é que este procedimento de verificação fosse feito ao clicar no botao "Gerar ACP".
    Anexos
    [Resolvido]Localizar registros duplicados por datas AttachmentSistema Locacoes Final - Versao 0708-TESTE.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (290 Kb) Baixado 8 vez(es)


    Última edição por amelioneto em 7/8/2013, 18:06, editado 1 vez(es)
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  JPaulo 7/8/2013, 17:59

    É sempre bom anexar aqui parte do seu banco, ou até um pequeno exemplo, assim acredite que muitas feras o vão ajudar.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Instruções SQL como utilizar...
    avatar
    amelioneto
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 63
    Registrado : 02/04/2013

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  amelioneto 7/8/2013, 18:12

    Já está ai em anexo! Está conseguindo ver???
    avatar
    amelioneto
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 63
    Registrado : 02/04/2013

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  amelioneto 8/8/2013, 03:16

    Boa noite mestres, será que algum de vocês consegue me ajudar??
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  JPaulo 8/8/2013, 09:05

    REGRAS DO FÓRUM

    1. Tenha paciência com quem coloca aqui as suas duvidas.
    2. Clareza nos títulos dos tópicos e duvidas, evite a linguagem MSN.
    3. Não colocar diversas vezes a mesma dúvida.
    4. Explicar detalhadamente o problema e informar a versão do seu Office + Sistema Operativo.
    5. Retorne sempre se deu certo, esse retorno é muito importante.
    6. Respeite toda a equipe Staff e demais membros deste fórum.
    7. Use sempre o botão Busca, sempre que tiver uma dúvida e antes de abrir tópicos.
    8. Não usar palavras como "Urgente". O fórum é livre e ninguém é obrigado a responder com urgência.
    9. A publicidade é proíbida e só pode ser feita pelo Administrador ou depois de aprovada pelo Administrador.
    10. Se o seu tópico não for respondido, tem o direito de fazer um Up ao final de 24horas!
    11. A colocação de Códigos ou Exemplos, devem constar sempre os créditos de quem o elaborou.
    12. Fale, não GRITE! Só letras Maiúsculas, na Internet é o mesmo que gritar!
    13. É proibido tirar duvidas nas Salas de Repositório, devem abrir um novo tópico nas salas de duvidas, relacionando o Exemplo em causa.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Instruções SQL como utilizar...
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  JPaulo 8/8/2013, 09:52

    No meu entendimento, quando um equipamento está alugado, estaria marcado no campo "SelectItem" na tabela "TBL_EquipContrato", e quando existir a data de fim "DtFim", estaria desmarcado, para se saber que já está disponivel.

    Sendo este o meu raciocinio, a abertura de um recordset para validar, deveria estar no botão "Inserir" do formulario "FrmPesquisa".
    Código:

    Private Sub btnInserir_Click()
    Dim StrIDACP As Long
    Dim lngEquip As String
    Dim Linha As String

    'By JPaulo ® Maximo Access
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TBL_EquipContrato WHERE Equipamento='" & Me.lstEquip.Column(2) & "'", dbOpenDynaset)
       Do While Not rs.EOF
       If rs("SelectItem").Value = True Then
          MsgBox "O Equipamento: " & Me.lstEquip.Column(2) & vbNewLine & " está alugado.", vbQuestion, "Aviso"
          Exit Sub
          Else
       End If
       rs.MoveNext
    Loop

       StrIDACP = Forms!ACP!txtIDAcp
       For ncount = 0 To Me.lstEquip.ListCount - 1
           If Me.lstEquip.Selected(ncount) Then
               lngEquip = Me.lstEquip.Column(2, ncount)
               CurrentDb.Execute "insert into TBL_EquipACP (idACP, Equipamento, IdContrato, TBL_Equipamentos_Identificador, Unidade, VlrReferencia, Quantidade, VlrUnitario, DtIniContrato, DtFimContrato, NumContrato) values (""" & StrIDACP & """ , """ & lngEquip & """, """ & Me.lstEquip.Column(1) & """, """ & Me.lstEquip.Column(3) & """, """ & Me.lstEquip.Column(4) & """, """ & Me.lstEquip.Column(5) & """, """ & Me.lstEquip.Column(6) & """, """ & Me.lstEquip.Column(7) & """, """ & Me.lstEquip.Column(9) & """, """ & Me.lstEquip.Column(10) & """, """ & Me.lstEquip.Column(12) & """)"
               CurrentDb.Execute "UPDATE TBL_EquipContrato set SelectItem = -1 WHERE IdContrato = " & Me.lstEquip.Column(1) & " And Identificador = '" & Me.lstEquip.Column(3, ncount) & "'"
           End If
       Next
    Me.lstEquip.Requery
    Forms!ACP.CONST_Contrato.Form.Requery
    rs.Close
    Set rs = Nothing
    DoCmd.Close
    End Sub


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Instruções SQL como utilizar...
    avatar
    amelioneto
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 63
    Registrado : 02/04/2013

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  amelioneto 8/8/2013, 12:30

    JPaulo,

    Obrigado por sua ajuda!
    Seu entendimento está correto em parte, pois, quando um equipamento está alugado, ele realmente fica marcado no campo "SelectItem" na tabela "TBL_EquipContrato", porem ao criar uma nova ACP ele tem de estar desmarcado para poder ser utilizado novamente.

    Vou dar um exemplo:

    Imagine que eu aluguei um carro por 10 dias (De 01/08/2013 ate o dia 10/08/2013), portanto ele estará marcado no campo "SelectItem" na tabela "TBL_EquipContrato" e a data de inicio e fim registradas na tabela "TBL_EquipACP".

    Imagine que você tenta alugar o mesmo carro por 5 dias, quando você clicar no botão "Inserir" do formulario "FrmPesquisa" o carro tem que estar disponivel para ser alugado. Ao selecionar o carro, você escolhe alugar para os dias (10/08/2013 a 15/08/2013).

    Neste caso o sitema deve fazer uma critica e avisar que o carro ja esta alugado, pois existe uma coincidencia na data do dia 10/08/2013.

    Portanto o carro só pode se alugado, quando as datas não coincidam com nenhum outro dia do intervalo de 01/08/2013 a 11/08/2013.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  JPaulo 8/8/2013, 12:40

    Ok, entendi, mas nesse caso terá de validar apenas a data de fim, se a DtFim for igual ou maior que hoje.

    Seria isto ?

    E seria pela tabela "TBL_EquipACP" que tem datas, ou pela "TBL_EquipContrato" ??? É que esta não tem datas.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Instruções SQL como utilizar...
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  JPaulo 8/8/2013, 12:49

    Inseri datas na tabela "TBL_EquipContrato" e funciona beleza na validação, teste por favor;

    Código:

    Private Sub btnInserir_Click()
    Dim StrIDACP As Long
    Dim lngEquip As String
    Dim Linha As String

    'By JPaulo ® Maximo Access
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TBL_EquipContrato WHERE Equipamento='" & Me.lstEquip.Column(2) & "'", dbOpenDynaset)
      Do While Not rs.EOF
      If rs("DtFim").Value >= Date Then
          MsgBox "O Equipamento: " & Me.lstEquip.Column(2) & vbNewLine & " está alugado.", vbQuestion, "Aviso"
          Exit Sub
          Else
      End If
      rs.MoveNext
    Loop

      StrIDACP = Forms!ACP!txtIDAcp
      For ncount = 0 To Me.lstEquip.ListCount - 1
          If Me.lstEquip.Selected(ncount) Then
              lngEquip = Me.lstEquip.Column(2, ncount)
              CurrentDb.Execute "insert into TBL_EquipACP (idACP, Equipamento, IdContrato, TBL_Equipamentos_Identificador, Unidade, VlrReferencia, Quantidade, VlrUnitario, DtIniContrato, DtFimContrato, NumContrato) values (""" & StrIDACP & """ , """ & lngEquip & """, """ & Me.lstEquip.Column(1) & """, """ & Me.lstEquip.Column(3) & """, """ & Me.lstEquip.Column(4) & """, """ & Me.lstEquip.Column(5) & """, """ & Me.lstEquip.Column(6) & """, """ & Me.lstEquip.Column(7) & """, """ & Me.lstEquip.Column(9) & """, """ & Me.lstEquip.Column(10) & """, """ & Me.lstEquip.Column(12) & """)"
              CurrentDb.Execute "UPDATE TBL_EquipContrato set SelectItem = -1 WHERE IdContrato = " & Me.lstEquip.Column(1) & " And Identificador = '" & Me.lstEquip.Column(3, ncount) & "'"
          End If
      Next
    Me.lstEquip.Requery
    Forms!ACP.CONST_Contrato.Form.Requery
    rs.Close
    Set rs = Nothing
    DoCmd.Close
    End Sub


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Instruções SQL como utilizar...
    avatar
    amelioneto
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 63
    Registrado : 02/04/2013

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  amelioneto 8/8/2013, 14:30

    JPaulo,

    A validação se dá pela tabela "TBL_EquipACP" que tem datas

    E não apenas terá de validar a data de fim, mas, se alguma data do equipamento que estou inserindo está dentro do intervalo entre DtInicio e DtFim de algum equipamento já existentente na tabela "TBL_EquipACP" dentro seu respectivo intervalo entre DtInicio e DtFim.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  JPaulo 8/8/2013, 14:33

    Então a validação terá de ser efetuada no momento da inserção das datas DtInicio e DtFim no subform e ae poderá não funfar corretamente.

    Note que eu apenas estou a tentar que a coisa seja o mais simples possivel.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Instruções SQL como utilizar...
    avatar
    amelioneto
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 63
    Registrado : 02/04/2013

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  amelioneto 8/8/2013, 14:50

    Entendo que sim, afinal quanto mais simples, menor a probabilidade de erros.

    Mas realmente preciso q ocorra desta forma.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  JPaulo 8/8/2013, 15:21

    Bem testei aqui, e funciona beleza.

    Faz a validação, no evento depois de atualizar no campo "DtFim", no subform.

    Teste por favor e retorne;

    Exemplo Aqui

    Código:
    Private Sub DtFim_AfterUpdate()
    'By JPaulo ® Maximo Access
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TBL_EquipACP WHERE Equipamento='" & Me.Equipamento.Value & "'", dbOpenDynaset)

    If Me.DtFim > Me.DtFimContrato Then
        Call MsgBox("A data especificada está fora do período contratual", vbCritical, "Aviso")
        DoCmd.CancelEvent
        Me.DtFim.SetFocus
    ElseIf Me.DtFim < Me.DtInicio Then
        Call MsgBox("A data final deve ser maior que a data início do período", vbCritical, "Aviso")
        DoCmd.CancelEvent
        Me.DtInicio.SetFocus
    End If

       Do While Not rs.EOF
       If rs("DtInicio").Value >= Me.DtInicio.Value And rs("DtFim").Value <= Me.DtFim.Value Or rs("DtFim").Value >= Me.DtInicio.Value Or rs("DtFim").Value >= Me.DtFim.Value Then
          MsgBox "O Equipamento: " & Me.Equipamento & vbNewLine & " já está locado para esse período de datas...", vbQuestion, "Aviso"
          Me.Undo
          DoCmd.CancelEvent
          Me.DtInicio.SetFocus
            Exit Sub
          Else
       End If
       rs.MoveNext
    Loop

    rs.Close
    Set rs = Nothing
    End Sub


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Instruções SQL como utilizar...
    avatar
    amelioneto
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 63
    Registrado : 02/04/2013

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  amelioneto 8/8/2013, 16:04

    JPaulo, é quase isso!

    Fiz o teste apenas com um equipamento na tabela "TBL_EquipACP" e continua acusando repetição.

    Eu acho que ele esta fazendo referencia a ele mesmo.

    É possivel alterar o Select pra que ele só faça a consulta o IdACP for diferente do dele???
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  JPaulo 8/8/2013, 16:27

    Teste por favor;

    Código:
    Private Sub DtFim_AfterUpdate()
    'By JPaulo ® Maximo Access
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TBL_EquipACP WHERE Equipamento='" & Me.Equipamento.Value & "'", dbOpenDynaset)

    If Me.DtFim > Me.DtFimContrato Then
        Call MsgBox("A data especificada está fora do período contratual", vbCritical, "Aviso")
        DoCmd.CancelEvent
        Me.DtFim.SetFocus
    ElseIf Me.DtFim < Me.DtInicio Then
        Call MsgBox("A data final deve ser maior que a data início do período", vbCritical, "Aviso")
        DoCmd.CancelEvent
        Me.DtInicio.SetFocus
    End If

      Do While Not rs.EOF
      If (rs("DtInicio").Value >= Me.DtInicio.Value And rs("DtFim").Value <= Me.DtFim.Value And rs("IdACP") <> Me.IdACP.Value) Or rs("DtFim").Value >= Me.DtInicio.Value Or (rs("DtFim").Value >= Me.DtFim.Value And rs("IdACP") <> Me.IdACP.Value) Then
          MsgBox "O Equipamento: " & Me.Equipamento & vbNewLine & " já está locado para esse período de datas...", vbQuestion, "Aviso"
          Me.Undo
          DoCmd.CancelEvent
          Me.DtInicio.SetFocus
            Exit Sub
          Else
      End If
      rs.MoveNext
    Loop

    rs.Close
    Set rs = Nothing
    End Sub


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Instruções SQL como utilizar...
    avatar
    amelioneto
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 63
    Registrado : 02/04/2013

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  amelioneto 8/8/2013, 16:42

    Continua aparecendo o aviso!
    Testei com apenas um equipamento e coloquei as datas10/06/2013 a 15/06/2013, e resolvi alterar a DtFim para 20/06/2013, neste ponto ele deu a mensagem de aviso como se existisse outro equipamento.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  JPaulo 8/8/2013, 16:59

    Diga-me, limpou a tabela ?


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Instruções SQL como utilizar...
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  JPaulo 8/8/2013, 17:09

    Tem razão faltava uma validação;

    Teste por favor;

    Código:
    Private Sub DtFim_AfterUpdate()
    'By JPaulo ® Maximo Access
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TBL_EquipACP WHERE Equipamento='" & Me.Equipamento.Value & "'", dbOpenDynaset)

    If Me.DtFim > Me.DtFimContrato Then
        Call MsgBox("A data especificada está fora do período contratual", vbCritical, "Aviso")
        DoCmd.CancelEvent
        Me.DtFim.SetFocus
    ElseIf Me.DtFim < Me.DtInicio Then
        Call MsgBox("A data final deve ser maior que a data início do período", vbCritical, "Aviso")
        DoCmd.CancelEvent
        Me.DtInicio.SetFocus
    End If

       Do While Not rs.EOF
       If (rs("DtInicio").Value >= Me.DtInicio.Value And rs("DtFim").Value <= Me.DtFim.Value And rs("IdACP") <> Me.IdACP.Value) Or (rs("IdACP") <> Me.IdACP.Value And rs("DtFim").Value >= Me.DtInicio.Value) Or (rs("DtFim").Value >= Me.DtFim.Value And rs("IdACP") <> Me.IdACP.Value) Then
          MsgBox "O Equipamento: " & Me.Equipamento & vbNewLine & " já está locado para esse período de datas...", vbQuestion, "Aviso"
          Me.Undo
          DoCmd.CancelEvent
          Me.DtInicio.SetFocus
            Exit Sub
          Else
       End If
       rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    End Sub



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Instruções SQL como utilizar...
    avatar
    amelioneto
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 63
    Registrado : 02/04/2013

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  amelioneto 12/8/2013, 11:55

    JPaulo, muito obrigado por sua ajuda!
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  JPaulo 12/8/2013, 12:18

    Obrigado pelo retorno o forum agradece.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Localizar registros duplicados por datas Folder_announce_new Instruções SQL como utilizar...

    Conteúdo patrocinado


    [Resolvido]Localizar registros duplicados por datas Empty Re: [Resolvido]Localizar registros duplicados por datas

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/4/2024, 23:46