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]Verificar Duplicidade ao Clicar no Botão

    avatar
    ifabio
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 59
    Registrado : 25/11/2011

    [Resolvido]Verificar Duplicidade ao Clicar no Botão Empty [Resolvido]Verificar Duplicidade ao Clicar no Botão

    Mensagem  ifabio 24/11/2014, 13:36

    Caros, amigos!

    Venho solicitar a ajuda de você para tentar resolver a seguinte dúvida:

    Preciso que "Ms Access 2007" me informe ao "clicar" no botão "salvar" se o CPF/CNPJ informado no campo "txt.cpf_cnpj" já existe na tabela. Vale informar que os "campos" do meu "form" não são "Acoplados" e que estou utilizado o código abaixo do Mestre JPaulo para cadastrar o registro na tabela.


    Obs.: Se possível, preciso algum código que eu possa incluir no código abaixo sem que dê erro.



    'By JPaulo ® Maximo Access
       Dim db As DAO.Database
       Dim rst As DAO.Recordset
    On Error Resume Next


    'verifica se as caixas de texto estão vazias
       
    If IsNull(Me.txtnome) Or Me.txtnome = "" Then
       End If
    If IsNull(Me.txttelefone) Or Me.txttelefone = "" Then
       End If
    If IsNull(Me.txtfantasia) Or Me.txtfantasia = "" Then
       End If
    If IsNull(Me.txtcelular) Or Me.txtcelular = "" Then
       End If
    If IsNull(Me.txtcpf) Or Me.txtcpf = "" Then
       End If
    If IsNull(Me.txtemail) Or Me.txtemail = "" Then
      End If
    If IsNull(Me.txtcep) Or Me.txtcep = "" Then
      End If
    If IsNull(Me.txtlogradouro) Or Me.txtlogradouro = "" Then
      End If
    If IsNull(Me.txtnumero) Or Me.txtnumero = "" Then
      End If
    If IsNull(Me.txtbairro) Or Me.txtbairro = "" Then
      End If
    If IsNull(Me.txtestado) Or Me.txtestado = "" Then
      End If
    If IsNull(Me.txtcidade) Or Me.txtcidade = "" Then


       
           MsgBox "Campo(s) de Preenchimento Obrigatorio(s) vazio(s)", vbCritical
           Cancel = True
       
       Exit Sub

    Else

    End If

       'abre o recordset da tabela
       
       Set rst = CurrentDb.OpenRecordset("Select * from tbl_cadcliente")
       
       'adiciona na tabela
       
                   rst.AddNew
                   
                   rst("razaosocial_nome") = Me.txtnome
                   rst("nomefantasia_apelido") = Me.txtfantasia
                   rst("cnpj_cpf") = Me.txtcpf
                   rst("ie_rg") = Me.txtie
                   rst("telefone") = Me.txttelefone
                   rst("celular") = Me.txtcelular
                   rst("fax") = Me.txtfax
                   rst("contato") = Me.txtcontato
                   rst("email") = Me.txtemail
                   rst("site") = Me.txtsite
                   rst("cep") = Me.txtcep
                   rst("logradouro") = Me.txtlogradouro
                   rst("numero") = Me.txtnumero
                   rst("complemento") = Me.txtcomplemento
                   rst("bairro") = Me.txtbairro
                   rst("estado") = Me.txtestado
                   rst("cidade") = Me.txtcidade
                   rst("observacao") = Me.txtobs
                   
               
                   rst.Update
           MsgBox "Registro Adicionado com Sucesso...", vbInformation

       rst.Close
       Set rst = Nothing

    'limpa as caixas de texto

                   Me.txtnome.Value = ""
                   Me.txtfantasia.Value = ""
                   Me.txtcpf.Value = ""
                   Me.txtie.Value = ""
                   Me.txttelefone.Value = ""
                   Me.txtcelular.Value = ""
                   Me.txtfax.Value = ""
                   Me.txtcontato.Value = ""
                   Me.txtemail.Value = ""
                   Me.txtsite.Value = ""
                   Me.txtcep.Value = ""
                   Me.txtlogradouro.Value = ""
                   Me.txtnumero.Value = ""
                   Me.txtcomplemento.Value = ""
                   Me.txtbairro.Value = ""
                   Me.txtestado.Value = ""
                   Me.txtcidade.Value = ""
                   Me.txtobs.Value = ""
                   
       Me.txtnome.SetFocus
                   
    End Sub




    Desde já, obrigado pela atenção de todos!
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3622
    Registrado : 21/04/2011

    [Resolvido]Verificar Duplicidade ao Clicar no Botão Empty Re: [Resolvido]Verificar Duplicidade ao Clicar no Botão

    Mensagem  Marcelo David 24/11/2014, 13:57

    No clique do botão ponha isso:

    If DCount("*", "tbl_cadcliente", "cnpj_cpf="& Me.txtcpf)>0 then
    MsgBox "CPF/CNPJ já existe.", vbInformation,"Informação"
    Else
    MsgBox "CPF/CNPJ ainda não foi cadastrado.", vbInformation,"Informação"
    End If



    .................................................................................
    Aprenda como criar formulário desacoplado.
    Clique aqui e conheça o treinamento.
    [Resolvido]Verificar Duplicidade ao Clicar no Botão Marcel11
    avatar
    ifabio
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 59
    Registrado : 25/11/2011

    [Resolvido]Verificar Duplicidade ao Clicar no Botão Empty Re: [Resolvido]Verificar Duplicidade ao Clicar no Botão

    Mensagem  ifabio 24/11/2014, 14:32

    Marcelo, boa noite!

    Primeiro, obrigado sua pela atenção! Tentei usar o código informado mas ocorre o erro: 3464 (Tipo de dados incompatível na expressão de critério).

    Será que esse erro tem haver com o código que estou utilizando no mesmo campo para mascara de entrada no evento "AfterUpdate" ?


    Select Case Len(Me.txtcpf)
    Case 14 ' É CNPJ
    Me.txtcpf.InputMask = "00\.000\.000\/0000\-00"
    Case 11 ' É CPF
    Me.txtcpf.InputMask = "000\.000\.000\-00"
    Case Else ' Não é CNPJ nem CPF
    Me.txtcpf.InputMask = ""
    End Select



    Abraço, Fábio
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3622
    Registrado : 21/04/2011

    [Resolvido]Verificar Duplicidade ao Clicar no Botão Empty Re: [Resolvido]Verificar Duplicidade ao Clicar no Botão

    Mensagem  Marcelo David 24/11/2014, 15:57

    A tá... O campo cpf é texto, não é?

    Então deve envolver o critério entre ''.

    Ficará assim:

    If DCount("*", "tbl_cadcliente", "cnpj_cpf='"& Me.txtcpf &"'")>0 then
           MsgBox "CPF/CNPJ já existe.", vbInformation,"Informação"
    Else
           MsgBox "CPF/CNPJ ainda não foi cadastrado.", vbInformation,"Informação"
    End If


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Clique aqui e conheça o treinamento.
    [Resolvido]Verificar Duplicidade ao Clicar no Botão Marcel11
    avatar
    ifabio
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 59
    Registrado : 25/11/2011

    [Resolvido]Verificar Duplicidade ao Clicar no Botão Empty Re: [Resolvido]Verificar Duplicidade ao Clicar no Botão

    Mensagem  ifabio 24/11/2014, 18:13

    Caro Marcelo,

    Agora funcionou sem erro! Contudo, gostaria de saber em que parte do código abaixo posso inserir o seu código ? Claro! se for possível. Pois até tentei

    colocá-lo logo no inicio conforme abaixo, mas o Ms Access 2007 acusa que o CPF/CNPJ já existe e depois salva o registro assim mesmo. E o que eu preciso é que o Ms Access 2007 só salve o registro se o CPF/CNPJ não tiver sido cadastrado anteriormente.




    Private Sub btao_salvar_Click()

    If DCount("*", "tbl_cadcliente", "cnpj_cpf='"& Me.txtcpf &"'")>0 then
    MsgBox "CPF/CNPJ já existe.", vbInformation,"Informação"
    Else
    MsgBox "CPF/CNPJ ainda não foi cadastrado.", vbInformation,"Informação"
    End If


    'By JPaulo ® Maximo Access
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    On Error Resume Next


    'verifica se as caixas de texto estão vazias

    If IsNull(Me.txtnome) Or Me.txtnome = "" Then
    End If
    If IsNull(Me.txttelefone) Or Me.txttelefone = "" Then
    End If
    If IsNull(Me.txtfantasia) Or Me.txtfantasia = "" Then
    End If
    If IsNull(Me.txtcelular) Or Me.txtcelular = "" Then
    End If
    If IsNull(Me.txtcpf) Or Me.txtcpf = "" Then
    End If
    If IsNull(Me.txtemail) Or Me.txtemail = "" Then
    End If
    If IsNull(Me.txtcep) Or Me.txtcep = "" Then
    End If
    If IsNull(Me.txtlogradouro) Or Me.txtlogradouro = "" Then
    End If
    If IsNull(Me.txtnumero) Or Me.txtnumero = "" Then
    End If
    If IsNull(Me.txtbairro) Or Me.txtbairro = "" Then
    End If
    If IsNull(Me.txtestado) Or Me.txtestado = "" Then
    End If
    If IsNull(Me.txtcidade) Or Me.txtcidade = "" Then



    MsgBox "Campo(s) de Preenchimento Obrigatorio(s) vazio(s)", vbCritical
    Cancel = True

    Exit Sub

    Else

    End If

    'abre o recordset da tabela

    Set rst = CurrentDb.OpenRecordset("Select * from tbl_cadcliente")

    'adiciona na tabela

    rst.AddNew

    rst("razaosocial_nome") = Me.txtnome
    rst("nomefantasia_apelido") = Me.txtfantasia
    rst("cnpj_cpf") = Me.txtcpf
    rst("ie_rg") = Me.txtie
    rst("telefone") = Me.txttelefone
    rst("celular") = Me.txtcelular
    rst("fax") = Me.txtfax
    rst("contato") = Me.txtcontato
    rst("email") = Me.txtemail
    rst("site") = Me.txtsite
    rst("cep") = Me.txtcep
    rst("logradouro") = Me.txtlogradouro
    rst("numero") = Me.txtnumero
    rst("complemento") = Me.txtcomplemento
    rst("bairro") = Me.txtbairro
    rst("estado") = Me.txtestado
    rst("cidade") = Me.txtcidade
    rst("observacao") = Me.txtobs


    rst.Update
    MsgBox "Registro Adicionado com Sucesso...", vbInformation

    rst.Close
    Set rst = Nothing

    'limpa as caixas de texto

    Me.txtnome.Value = ""
    Me.txtfantasia.Value = ""
    Me.txtcpf.Value = ""
    Me.txtie.Value = ""
    Me.txttelefone.Value = ""
    Me.txtcelular.Value = ""
    Me.txtfax.Value = ""
    Me.txtcontato.Value = ""
    Me.txtemail.Value = ""
    Me.txtsite.Value = ""
    Me.txtcep.Value = ""
    Me.txtlogradouro.Value = ""
    Me.txtnumero.Value = ""
    Me.txtcomplemento.Value = ""
    Me.txtbairro.Value = ""
    Me.txtestado.Value = ""
    Me.txtcidade.Value = ""
    Me.txtobs.Value = ""

    Me.txtnome.SetFocus

    End Sub



    Abraço, Fábio
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3622
    Registrado : 21/04/2011

    [Resolvido]Verificar Duplicidade ao Clicar no Botão Empty Re: [Resolvido]Verificar Duplicidade ao Clicar no Botão

    Mensagem  Marcelo David 24/11/2014, 19:09

    Poderá manter exatamente onde pôs, como na sua mensagem anterior,
    mas com a seguinte alteração:

    If DCount("*", "tbl_cadcliente", "cnpj_cpf='"& Me.txtcpf &"'")>0 then
              MsgBox "CPF/CNPJ já existe.", vbInformation,"Informação"
              Exit sub
    End If

    Assim, caso o CPF/CNPJ já exista, ele informa e não gravará os dados, caso contrário, ele não informa nada e grava os dados.


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Clique aqui e conheça o treinamento.
    [Resolvido]Verificar Duplicidade ao Clicar no Botão Marcel11
    avatar
    ifabio
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 59
    Registrado : 25/11/2011

    [Resolvido]Verificar Duplicidade ao Clicar no Botão Empty Re: [Resolvido]Verificar Duplicidade ao Clicar no Botão

    Mensagem  ifabio 24/11/2014, 21:08

    Marcelo, boa noite!

    Mais uma vez ... muito obrigado pela sua atenção e ajuda ! Funcionou perfeitamente. Aproveito para agradecer também ao fórum!



    Abraço, Fábio
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3622
    Registrado : 21/04/2011

    [Resolvido]Verificar Duplicidade ao Clicar no Botão Empty Re: [Resolvido]Verificar Duplicidade ao Clicar no Botão

    Mensagem  Marcelo David 25/11/2014, 01:02

    Ótimo que deu certo! Grato pelo retorno!


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Clique aqui e conheça o treinamento.
    [Resolvido]Verificar Duplicidade ao Clicar no Botão Marcel11

      Data/hora atual: 3/12/2022, 03:07