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

    [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, 21: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, 16: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, 21: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!
    avatar
    gilberlanio
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  gilberlanio em Seg 26 Out 2015, 22: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
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

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

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

    Mensagem  Noobezinho em Ter 27 Out 2015, 10: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, 18:45

    [  RESOLVIDO !!  ]

    muito obrigado professor Gilberlanio.


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

      Data/hora atual: Seg 25 Set 2017, 03:26