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]Tratamento de erro

    leoavila7
    leoavila7
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 149
    Registrado : 04/12/2011

    [Resolvido]Tratamento de erro Empty Tratamento de erro

    Mensagem  leoavila7 2/3/2013, 01:02

    Amigos, boa noite

    Tentei adaptar no meu codigo uma mensagem de erro no caso de registro duplicado, mas todas as minhas tentativas acabam dando errado. Será que poderiam me ajudar com esse problema? O codigo é o seguinte:

    Código:

    Private Sub btAdicionar_Click()
    'By JPaulo ® Maximo Access
    Dim Db As DAO.Database
    Dim rs As DAO.Recordset
    On Error Resume Next

    'verifica se as caixas de texto estão vazias
    If IsNull(Me.txtNome) Or Me.txtNome = "" Then
    MsgBox "Campos vazios encontrados...", vbCritical
    'Cancel = True
    Me.txtNome.SetFocus
    Exit Sub
    Else

    'abre o recordset da tabela
    Set Db = CurrentDb
    Set rs = CurrentDb.OpenRecordset("Select * from Eleitorado")
    'adiciona na tabela
    rs.AddNew
    rs("Código") = Me.txtCódigo
    rs("Nome") = Me.txtNome
    rs("DataNascimento") = Me.txtDataNascimento
    rs("Genero") = Me.txtGenero
    rs("Profissao") = Me.txtProfissao
    rs("Instrucao") = Me.txtInstrucao
    rs("Religiao") = Me.txtReligiao
    rs("Endereco") = Me.txtEndereco
    rs("Numero") = Me.txtNumero
    rs("Bairro") = Me.txtBairro
    rs("Cidade") = Me.txtCidade
    rs("Cep") = Me.txtCep
    rs("TelefoneResidencial") = Me.txtTelefoneResidencial
    rs("TelefoneCelular") = Me.txtTelefoneCelular
    rs("Email") = Me.txtEmail
    rs("TipoEntidade") = Me.txtTipoEntidade
    rs("NomeEntidade") = Me.txtNomeEntidade
    rs("Observacoes") = Me.txtObservacoes
    rs("Indicacao") = Me.txtIndicacao
    rs("CPF") = Me.txtCPF
    rs("TituloEleitoral") = Me.txtTituloEleitoral
    rs("Zona") = Me.txtZona
    rs("Secao") = Me.txtSecao
    rs("Filiado") = Me.txtFiliado
    rs("StatusVoto") = Me.txtStatusVoto
    rs("Relacionamento") = Me.txtRelacionamento
    rs("AutorizacaoImovel") = Me.txtAutorizacaoImovel
    rs("AutorizacaoVeiculo") = Me.txtAutorizacaoVeiculo
    rs.Update
    MsgBox "Registro adicionado com sucesso...", vbInformation
    Call fncCarregaCboC
    End If
    rs.Close
    Set rs = Nothing
    Set Db = Nothing

    'limparCam
    Me.txtNome.SetFocus
    'limpa as caixas de texto
    Me.txtCódigo.Value = ""
    Me.txtNome.Value = ""
    Me.txtDataNascimento.Value = ""
    Me.txtGenero.Value = ""
    Me.txtProfissao.Value = ""
    Me.txtInstrucao.Value = ""
    Me.txtReligiao.Value = ""
    Me.txtEndereco.Value = ""
    Me.txtNumero.Value = ""
    Me.txtBairro.Value = ""
    Me.txtCidade.Value = ""
    Me.txtCep.Value = ""
    Me.txtTelefoneResidencial.Value = ""
    Me.txtTelefoneCelular.Value = ""
    Me.txtEmail.Value = ""
    Me.txtTipoEntidade.Value = ""
    Me.txtNomeEntidade.Value = ""
    Me.txtObservacoes.Value = ""
    Me.txtIndicacao.Value = ""
    Me.txtIdade.Value = ""
    Me.txtCPF.Value = ""
    Me.txtTituloEleitoral.Value = ""
    Me.txtZona.Value = ""
    Me.txtSecao.Value = ""
    Me.txtFiliado.Value = ""
    Me.txtStatusVoto.Value = ""
    Me.txtRelacionamento.Value = ""
    Me.txtAutorizacaoImovel.Value = ""
    Me.txtAutorizacaoVeiculo.Value = ""
    DoCmd.Requery

    End Sub

    O formulario é desvinculado, esse codigo se refere ao botão Adicionar registro, tentei usar um GoTo Tataerro, mas não esta saindo exatamente como quero. Queria que fosse aberta uma mensagem que relata a duplicidade do registro e que cancelasse o evento inserir, voltando o foco pro campo txtCPF, que é onde ocorre a duplicidade.

    Obrigado pela força

    Leonardo
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Tratamento de erro Empty Re: [Resolvido]Tratamento de erro

    Mensagem  criquio 2/3/2013, 11:45

    Já tentou algo assim?

    Código:
    ...
    Set rs = CurrentDb.OpenRecordset("Select * from Eleitorado WHERE CPF='" & Me.txtCPF & "'")
    'Verifica a quantidade de registros com o CPF na tabela
    If rs.RecordCount > 0 Then
        MsgBox "Já existe um registro com esse CPF.", vbCritical, "Registro duplicado"
    Else
        'adiciona na tabela
        rs.AddNew
        ...
    End If


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    leoavila7
    leoavila7
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 149
    Registrado : 04/12/2011

    [Resolvido]Tratamento de erro Empty Tratamento de erro

    Mensagem  leoavila7 2/3/2013, 15:51

    Não funcionou Criquio;

    Pus esse codigo no evento after_update do campo txtCPF, esta certo?

    Veja como ficou:

    Código:

    'A introdução do CPF terá de ser feita sem máscara de entrada
    'Os dois campos terão de estar como texto na tabela

    Private Sub txtCpf_BeforeUpdate(Cancel As Integer)
    Dim Db As DAO.Database
    Dim rs As DAO.Recordset
    If Me.txtCPF.Value <> fCPF(Me.txtCPF) Then
    MsgBox "CPF Invalido, introduza novamente...", vbInformation
    Me.Undo
            Cancel = True
        Else
    MsgBox "CPF válido."
    'Me.txtCPF.InputMask = "000\.000\.000\-00"
    End If
    Set rs = CurrentDb.OpenRecordset("Select * from Eleitorado WHERE CPF='" & Me.txtCPF & "'")
    'Verifica a quantidade de registros com o CPF na tabela
    If rs.RecordCount > 0 Then
        MsgBox "Já existe um registro com esse CPF.", vbCritical, "Registro duplicado"
    Else
        'adiciona na tabela
        rs.AddNew

    End If
    End Sub
    Obrigado pela ajuda
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Tratamento de erro Empty Re: [Resolvido]Tratamento de erro

    Mensagem  criquio 2/3/2013, 15:56

    Se você só quer verificar se o registro já existe, retire o rs.AddNew, pois a função dele é adicionar registros na tabela.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    leoavila7
    leoavila7
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 149
    Registrado : 04/12/2011

    [Resolvido]Tratamento de erro Empty Tratamento de erro

    Mensagem  leoavila7 2/3/2013, 16:08

    Funcionou perefeitamente amigo Criquio.

    Obrigado por toda a ajuda que voce e os outros mestres tem me dado.

    Um grande abraço e bom fim de semana

    Conteúdo patrocinado


    [Resolvido]Tratamento de erro Empty Re: [Resolvido]Tratamento de erro

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 23/11/2024, 15:14