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


4 participantes

    [Resolvido]Duplicação

    avatar
    José Afonso Toffanello
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 04/07/2017

    [Resolvido]Duplicação Empty [Resolvido]Duplicação

    Mensagem  José Afonso Toffanello 27/3/2019, 18:32

    Bom dia, por gentileza necessito resolver esta rotina:



    Validar na Tabela três campos em Access.

    No meu Formulário de entrada de dados: digito, matricula funcional, data início e data final, após tenho que validar estes 3 campos na Tabela, para não permitir a duplicidade.

    Uma vez existindo a duplicidade devera desconsiderar o que foi digitado, para propiciar uma nova entrada de dados.

    Não estou conseguindo montar no VBA esta rotina, se possível gostaria de uma ajuda.

    Montei  a rotina usando os exemplos, abaixo porem ocorreu o erro 424i

    Private Sub Data_Final_BeforeUpdate(Cancel As Integer)
    MsgBox " passe1"
    ' set variavel recordset
    Set tab_diarias_vencidas = Me.RecordsetClone
       With tab_diaras_vencidas
            ' verifica se a inforamação já existe
            .FindFirst "id_funcional=" & Me.ID_funcional & "' and [data_inicial]= '" & Me.Data_Inicial & "'"
            ' se encontrou então
            If Not .NoMatch Then
              'defaz o registro
              Me.Undo
              Cancel = True
              MsgBox "Registro existente", vbCritical, "ATENÇÃO"
              ' exibe o registro ja cadastrado
              Me.Bookmark = .Bookmark
            End If
       End With
    Set tab_diarias_vencidas = Nothing
    End Sub

    Atenciosamente

    José Afonso Toffanello


    Última edição por DamascenoJr. em 26/11/2021, 00:32, editado 2 vez(es) (Motivo da edição : não resolvi estou anexando a rotina ocorreu o erro 424 e a estrutura da tabela)
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5074
    Registrado : 20/04/2011

    [Resolvido]Duplicação Empty Re: [Resolvido]Duplicação

    Mensagem  Silvio 27/3/2019, 18:47

    Olá, boa tarde....

    Usando o sistema de busca aqui do fórum temos vários meios para evitar a duplicação de registros

    https://www.maximoaccess.com/search?mode=searchbox&search_keywords=duplicidade&show_results=topics

    Um desses tópicos com certeza vai lhe atender perfeitamente.

    Bons estudos.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    avatar
    José Afonso Toffanello
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 04/07/2017

    [Resolvido]Duplicação Empty Duplicação

    Mensagem  José Afonso Toffanello 4/4/2019, 19:45

    Bom dia, sou novo no Negócio.
    Minha dificuldade:
    Digito três campos, Id_funcional, data_ inicio e data_final após a digitação do último campo preciso testar se os três campos digitados são iguais.
    Se forem duplicados invalida a digitação, não pode ter duplicidade de diárias com estes critérios.
    Consultando os exemplos usei o modelo abaixo porem deu erro 424:
    Fiz o “Private Sub no campo Data_Final “ já que é o 3 campo que digito não sei se está correto.

    Private Sub Data_Final_BeforeUpdate(Cancel As Integer)
    MsgBox " passe1"
    ' set variavel recordset
    Set tab_diarias_vencidas = Me.RecordsetClone
    With tab_diaras_vencidas
    ' verifica se a inforamação já existe
    .FindFirst "id_funcional=" & Me.ID_funcional & "' and [data_inicial]= '" & Me.Data_Inicial & "'"
    ' se encontrou então
    If Not .NoMatch Then
    'defaz o registro
    Me.Undo
    Cancel = True
    MsgBox "Registro existente", vbCritical, "ATENÇÃO"
    ' exibe o registro ja cadastrado
    Me.Bookmark = .Bookmark
    End If
    End With
    Set tab_diarias_vencidas = Nothing
    End Sub
    Usei esta rotina, talvez usando o comando dcount ou if (not inull(dlookup.......) serja mais fácil.
    Já tentei usar e não deu certo, estou atrapalhado, não é complicado, mas não consegui acertar.
    Em anexo estou remetendo o PRG de digitação ‘ BD_TesteDuplicidade’
    marcelo3092
    marcelo3092
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 294
    Registrado : 19/08/2010

    [Resolvido]Duplicação Empty Duplicação

    Mensagem  marcelo3092 6/4/2019, 02:33

    Boa noite amigo essa sua duvida ficou sem explicação vc quer comparar os campos datas do formulario ou vc quer busca na tabela e comparar o que esta lá com o digitado para melhor te ajudar seria bom vc coloca parte do projeto e envia para que possamos dar uma olhada.
    avatar
    José Afonso Toffanello
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 04/07/2017

    [Resolvido]Duplicação Empty Duplicação

    Mensagem  José Afonso Toffanello 8/4/2019, 20:23

    Estou remetendo o BD preciso testar 3 campos id_funcional/data_inicio/data_final
    avatar
    José Afonso Toffanello
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 04/07/2017

    [Resolvido]Duplicação Empty Re: [Resolvido]Duplicação

    Mensagem  José Afonso Toffanello 8/4/2019, 20:32

    Os três campos estão sendo digitado(id_funcional/data_inicio e data_final) quando digito o ultimo data_final ele deve comparar os três com a tabela e verificar se já existe esta informação.
    avatar
    José Afonso Toffanello
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 04/07/2017

    [Resolvido]Duplicação Empty [Resolvido]Detetar Duplicação

    Mensagem  José Afonso Toffanello 10/4/2019, 14:35

    Bom dia, já me ajudo anteriormente, se possível gostaria de uma nova ajuda.

    Minha dificuldade:
    Digito três campos,  Id_funcional, data_ inicio e data_final após a digitação do último campo preciso testar se os três campos digitados são iguais na tabela.
    Se forem iguais invalida a digitação, não pode ter duplicidade de diárias.
    Fiz o “Private Sub no campo Data_Final “ no ultimo campo digitado, não sei se esta correto.
    Instrução:
    Private Sub Data_Final_BeforeUpdate(Cancel As Integer)
    MsgBox " passe1"
    If (Not IsNull(DLookup("[data_final]", "tab_diarias_vencidas", "[data_final]= ' & Me!Data_Final & '" And Data_Inicial = " & Me!Data_Inicial & " And ID_funcional = " & Me!id_funcional & """))) Then
       MsgBox "Já cadastrado"
       Cancel = True
       Me.Undo
    End If
    End Sub
    Está ocorrendo erro “em tempo de execução 13”
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Duplicação Empty Re: [Resolvido]Duplicação

    Mensagem  JPaulo 10/4/2019, 15:02

    Olá;

    Teste e retorne por favor;

    Código:
    Private Sub Data_Final_BeforeUpdate(Cancel As Integer)
    'By JPaulo ®️ Maximo Access
    Dim rs As DAO.Recordset
    Dim cheka$

    Set rs = CurrentDb.OpenRecordset("SELECT * FROM tab_diarias_vencidas", dbOpenDynaset)
        Do While Not rs.EOF
        cheka = rs("Data_Inicial").Value & rs("Data_final").Value & rs("ID_funcional")
        If cheka = (Me.Data_Inicial & Me.Data_Final & Me.ID_funcional) Then
           MsgBox "Já Cadastrado...", vbCritical, "Aviso"
           Me.Undo
           Cancel = True
           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]Duplicação Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Duplicação Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Duplicação Folder_announce_new Instruções SQL como utilizar...
    avatar
    José Afonso Toffanello
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 04/07/2017

    [Resolvido]Duplicação Empty Duplicação

    Mensagem  José Afonso Toffanello 10/4/2019, 20:45

    Vou testar, aviso se der certo, muito obrigado
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Duplicação Empty Re: [Resolvido]Duplicação

    Mensagem  JPaulo 11/4/2019, 10:16

    Ok, no aguardo.


    .................................................................................
    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]Duplicação Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Duplicação Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Duplicação Folder_announce_new Instruções SQL como utilizar...
    avatar
    José Afonso Toffanello
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 29
    Registrado : 04/07/2017

    [Resolvido]Duplicação Empty Duplicação

    Mensagem  José Afonso Toffanello 11/4/2019, 14:28

    JPaulo muito obrigado funciono.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Duplicação Empty Re: [Resolvido]Duplicação

    Mensagem  JPaulo 11/4/2019, 15:08

    Fico feliz.

    Bom final de semana.


    .................................................................................
    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]Duplicação Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Duplicação Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Duplicação Folder_announce_new Instruções SQL como utilizar...

    Conteúdo patrocinado


    [Resolvido]Duplicação Empty Re: [Resolvido]Duplicação

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 22:32