MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]VBA para tratar erro de duplicidade no 'CodigoDoCliente'

    Compartilhe

    Baumgratz
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 05/10/2015

    [Resolvido]VBA para tratar erro de duplicidade no 'CodigoDoCliente'

    Mensagem  Baumgratz em Seg 26 Out 2015, 18:34

    Olá Forumeiros de plantão !  Smile

    Não raro preciso telefonar para alguns clientes e levantar algumas informações. Então tenho a tabela TabContato para armazenar esta pesquisa.

    O formulário ForTabContato é ligado a duas tabelas (TabClientes/TabContato) por meio de uma consulta (ConTabContato).

    Neste formulário, ForTabContato, a tabela TabClientes fornece o código do cliente através do campo TxtCdc para preenchimentos junto com outros campos destinado à tabela TabContato.

    O que preciso é: tratar o erro e fazer saltar uma mensagem ao digitar um número no campo TxtCdc de ForTabContato diferente do armazenado em TxtCdc de TabClientes.

    Será que consegui ser bem claro ?   Rolling Eyes

    De antemão eu agradeço!!


    Última edição por Baumgratz em Qui 19 Nov 2015, 13:54, editado 1 vez(es)

    Baumgratz
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 05/10/2015

    VBA para tratar erro de duplicidade no 'CodigoDoCliente'

    Mensagem  Baumgratz em Seg 26 Out 2015, 18:41

    Olá Colegas !

    Na tabela do banco de dados tem um campo que não é numeração automática que chamo de TxtCdc e que não pode haver repetição, pois é o código do cliente.
    Quando eu provoco uma repetição e salvo o formulário sou enviado para o depurador de VBA. Quem pode me ajudar a corrigir isso ?

    Estou usando este código:

    Private Sub BtnSalvar_Click()
    DoCmd.Save
    DoCmd.RunCommand acCmdRefresh
    DoCmd.GoToRecord , , acLast
    End Sub

    O erro é : "Erro de tempo de execução '3022': as alterações solicitadas para a tabela não foram satisfatórias já que criariam valores duplicados no índice, chave primária ou ...

    Obrigado!

    gilberlanio
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 597
    Registrado : 30/08/2010

    Re: [Resolvido]VBA para tratar erro de duplicidade no 'CodigoDoCliente'

    Mensagem  gilberlanio em Seg 26 Out 2015, 19:52

    Tente assim:
    Código:
    Private Sub BtnSalvar_Click()
    Dim rst As dao.Recordset
        Dim strCriteria As String

        strCriteria = "[CodCli] Like '" & Me.TxtCdc & "'"

        Set rst = Me.RecordsetClone
        rst.FindFirst strCriteria
        If rst.NoMatch Then
        
            DoCmd.Save
            DoCmd.RunCommand acCmdRefresh
            DoCmd.GoToRecord , , acLast
          
        Else
            
            MsgBox "Item já Adicionado!", vbExclamation, "Aviso"
            Me.Undo
                Me.Bookmark = rst.Bookmark
        End If
        
         Set rst = Nothing
    End Sub


    .................................................................................
    VIDEO CURSO DE ACCESS - Criando um sistema de vendas

    [Você precisa estar registrado e conectado para ver este link.]

    Loja virtual - Gilberlânio Rocha

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2488
    Registrado : 29/06/2012

    Re: [Resolvido]VBA para tratar erro de duplicidade no 'CodigoDoCliente'

    Mensagem  Noobezinho em Ter 27 Out 2015, 07:49

    Dando um pitaco

    Como o campo da tabela TxtCdc  não tem incremento automático, precisa incrementa-lo via código.
    Fazer isso manualmente, sempre trará problemas.
    A caixa de texto TxtCdc , deixe bloqueado, para não mudarem o código.

    Então, na primeira caixa de texto do formulário, digamos que seja  a caixa de texto
    NomeDoCliente, no evento ao Sair, coloque:

    Me.TxtCdc = Nz(dmax("txtCdc","TabClientes"),0)+1

    Pronto, quando sair dessa textbox, o código txtCdc, receberá o novo número.

    Rodrigo: Postou a mesma dúvida 2 vezes no fórum e isso vai contra as regras.
                       Procure não repetir o erro para não sofrer penalidades.


    Eu uni os dois tópicos.

    [ ]'s


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    Baumgratz
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 05/10/2015

    [RESOLVIDO] VBA para tratar erro de duplicidade no 'CodigoDoCliente'

    Mensagem  Baumgratz em Ter 03 Nov 2015, 15:45

    [  RESOLVIDO !!  ]

    muito obrigado professor Gilberlanio.


    Pessoal !
    O professsor Gilberlanio tem no Youtube muitas aulas boas sobre Access !!!
    .
    .

      Data/hora atual: Dom 04 Dez 2016, 09:09