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


    Ele esta salvando nomes iguais

    crysostomo
    crysostomo
    Super Avançado
    Super Avançado

    Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 879
    Registrado : 23/01/2018

    Ele esta salvando nomes iguais Empty Ele esta salvando nomes iguais

    Mensagem  crysostomo em 20/3/2019, 18:44

    meu amigos boa tarde , estou com um frm que no botão salvar ele tem que verificar se o nome ja está na tabela , se caso não estiver ele salva se já estiver ele desfaz , mas o problema é que ele está verificando tudo ok , mas está salvando assim mesmo.
    aonde estou errando.
    Código:
    If (Not IsNull(DLookup("[nome]", "tblSample", _
    "[nome] ='" & Me![nome] & "'"))) Then
    MsgBox "O cliente " & Me.nome & " ja é cadastrado.", vbInformation, "Arquivamento"
    'Me.nome.Undo
    Cancel = True 'cancela o evento.
    Else

    DoCmd.Save
    Me.Recalc
    DoCmd.RunCommand acCmdRecordsGoToNew

    MsgBox " Cadastro salvo", vbInformation, "Arquivamento"
    End If
    End Sub


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3900
    Registrado : 06/11/2009

    Ele esta salvando nomes iguais Empty Re: Ele esta salvando nomes iguais

    Mensagem  Assis em 20/3/2019, 18:57

    Teste assim:


    If (Not IsNull(DLookup("[nome]", "tblSample", _
    "[nome] ='" & Me![nome] & "'"))) Then
    MsgBox "O cliente " & Me.nome & " ja é cadastrado.", vbInformation, "Arquivamento"
    Me.nome.setfocus
    Me.nome=""
    Exit Sub

    Else

    DoCmd.Save
    Me.Recalc
    DoCmd.RunCommand acCmdRecordsGoToNew

    MsgBox " Cadastro salvo", vbInformation, "Arquivamento"
    End If


    .................................................................................
    *** Só sei que nada sei ***
    toyebom
    toyebom
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1121
    Registrado : 18/07/2012

    Ele esta salvando nomes iguais Empty ele esta salvando nomes iguais

    Mensagem  toyebom em 20/3/2019, 21:55

    Tira o ' em 'Me.nome.Undo
    e acho que chega Me.Undo


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.
    crysostomo
    crysostomo
    Super Avançado
    Super Avançado

    Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 879
    Registrado : 23/01/2018

    Ele esta salvando nomes iguais Empty Re: Ele esta salvando nomes iguais

    Mensagem  crysostomo em 21/3/2019, 02:41

    beleza, Assis , a mensagem constinua , mesmo o evento sendo cancelado a mensagem cadastro salvo continua , mas toyebom, se não estiver o método undo, ele não desfaz do evento , pois o cancel = true não funciona e eu colocando o Undo e tanto o valor ="" ela adiciona mais uma linha em branco na tabela.
    Ja fiz de outros eventos , cancel =true, sub exit , me.nome="".
    e mais pra frente vou querer contar registros , que não posso contar registro vazio.
    Porque se eu não colocar o botão salvar para verificar se o campo nome esta vazio , ele me retorna o erro do codigo do novo registro (DoCmd.RunCommand acCmdRecordsGoToNew)


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Celso Roberto
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

    Ele esta salvando nomes iguais Empty Re: Ele esta salvando nomes iguais

    Mensagem  Celso Roberto em 21/3/2019, 04:17

    Olá...
    Tente desta forma abaixo:

    Obs: No evento ao clicar o Cancel=True Não tem efeito.
               
    Código:
    If (Not IsNull(DLookup("[nome]", "tblSample", _
    "[nome] ='" & Me![nome] & "'"))) Then
    MsgBox "O cliente " & Me.nome & " ja é cadastrado.", vbInformation, "Arquivamento"

    DoCmd.CancelEvent
    Me.Nome = "" 'desfaz a digitação.
    Me.Nome.SetFocus

    Else

    DoCmd.Save
    Me.Recalc
    DoCmd.RunCommand acCmdRecordsGoToNew

    MsgBox " Cadastro salvo", vbInformation, "Arquivamento"
    End If
    End Sub


    Obrigado por ter verificado os seus tópicos

    Abraços e sucesso


    Última edição por Celso Roberto em 21/3/2019, 19:35, editado 2 vez(es)


    .................................................................................
    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.....
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3900
    Registrado : 06/11/2009

    Ele esta salvando nomes iguais Empty Re: Ele esta salvando nomes iguais

    Mensagem  Assis em 21/3/2019, 08:35

    Bom dia crysostomo

    Poste aí só a tabela e o formulário

    Aguardo


    .................................................................................
    *** Só sei que nada sei ***
    Celso Roberto
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

    Ele esta salvando nomes iguais Empty Re: Ele esta salvando nomes iguais

    Mensagem  Celso Roberto em 21/3/2019, 15:12

    Olá...

    Acredito que seria desta forma:

    Código:
    If (Not IsNull(DLookup("[nome]", "tblSample", "[nome] ='" & Me!nome & "'"))) Then
          If MsgBox("O cliente " & Me.nome & " ja é cadastrado." & Space(2) & "" _
          & "Deseja Continuar !! ", vbYesNo + vbExclamation + vbDefaultButton2, "Confirmação") = vbYes Then
                         
      Else
          DoCmd.CancelEvent
          Me.nome= Null 'desfaz a digitação.
          Me.nome.SetFocus
      End If
      End If


    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.....
    crysostomo
    crysostomo
    Super Avançado
    Super Avançado

    Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 879
    Registrado : 23/01/2018

    Ele esta salvando nomes iguais Empty Re: Ele esta salvando nomes iguais

    Mensagem  crysostomo em 21/3/2019, 16:16

    Boa tarde.
    coloquei o campo nome para atualizar se o nome ja existe na tabela .
    veja bem , estou verificando o campo para que não seja vazio , reparem que a primeira vez que você clica no botão salvar(v) ele fala que precisa preencher os campos , ok , mas na segunda vez que você tenta salvar o mesmo nome ele retorna que o cliente está cadastrado o ruim é que ele adiciona mais uma linha em branco na tabela, que futuramente vou querer contar os ID mas manda a mensagem que cadastro salvo, e voce pode ver também que o comando ao mover o mouse é impedido por alguma comando.
    e quando  alguma cadastro for salvo o comando novo(DoCmd.RunCommand acCmdRecordsGoToNew) volta com erro.
    por gentileza poderia salvar em 2007?


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3900
    Registrado : 06/11/2009

    Ele esta salvando nomes iguais Empty Re: Ele esta salvando nomes iguais

    Mensagem  Assis em 21/3/2019, 17:19

    Boa tarde

    Teste

    - Atenção alterei o campo "Cod" para numero, não automático. Ao gravar ele fica automático

    - Formulário desvinculado

    Digite um nome de cliente "Assis" para testar pois vai um cliente gravado com esse nome.
    Anexos
    Ele esta salvando nomes iguais AttachmentArquivamento - Assis.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (159 Kb) Baixado 6 vez(es)


    .................................................................................
    *** Só sei que nada sei ***
    crysostomo
    crysostomo
    Super Avançado
    Super Avançado

    Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 879
    Registrado : 23/01/2018

    Ele esta salvando nomes iguais Empty Re: Ele esta salvando nomes iguais

    Mensagem  crysostomo em 21/3/2019, 19:05

    tem hora que ele grava e tem hora que ele deixa de gravar as tabelas ficam varias , vou dar uma olhada nisso aqui, ou algum erro de versão


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3900
    Registrado : 06/11/2009

    Ele esta salvando nomes iguais Empty Re: Ele esta salvando nomes iguais

    Mensagem  Assis em 21/3/2019, 20:11

    Testou no exemplo que enviei, ou já copiou para o seu BD.


    .................................................................................
    *** Só sei que nada sei ***
    Celso Roberto
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

    Ele esta salvando nomes iguais Empty Re: Ele esta salvando nomes iguais

    Mensagem  Celso Roberto em 21/3/2019, 21:09

    Olá a todos...

    Na minha opinião:

    Eu deixaria a verificação de duplicidade no evento antes de atualizar do campo "Nome", porque este evento tem a função "Cancel" que se caso haja a duplicidade ele cancela o evento e manter o foco no campo.

    Ficando assim

    Código:
    Private Sub nome_BeforeUpdate(Cancel As Integer)
        If (Not IsNull(DLookup("[nome]", "tblSample", "[nome] ='" & Me!nome & "'"))) Then
            MsgBox "O cliente " & Me.nome & Space(2) & " ja é cadastrado.", vbInformation, "Arquivamento"
            Cancel = True
            Me.nome.Undo 'desfaz a digitação.
            
        Else
        End If
    End Sub

    Também faria como o Assis,alteraria o campo "Cod" na tabela para numero e no botão salvar colocaria desta forma:

    Código:
    Private Sub Imagem50_Click()
        If IsNull(Me.nome) Then
            MsgBox "Para salvar os campos tem que está preenchidos.", vbCritical, "Arquivamento"
            Me.nome.SetFocus
        Else
            Me.cod = Nz(DMax("cod", "tblsample")) + 1 ' Gera novo código
            DoCmd.RunCommand acCmdSaveRecord
            MsgBox "Cadastro salvo com Sucesso!", vbExclamation + vbOKOnly + vbDefaultButton1, "Aviso"
            'MsgBox " Cadastro salvo", vbInformation, "Arquivamento"
            DoCmd.GoToRecord , , acNewRec
            Me.nome.SetFocus
        End If
    End Sub


    E no botão fechar para poder fechar com campo "cod" vazio:

    Código:
    On Error Resume Next
        If IsNull(Me.cod) Or Me.cod = "" Then
            DoCmd.Close
            Exit Sub
        End If


    Quanto ao formulário ser vinculado ou desvinculado é questão de gosto

    Espero que ajude


    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.....

    Conteúdo patrocinado

    Ele esta salvando nomes iguais Empty Re: Ele esta salvando nomes iguais

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 24/8/2019, 23:31