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]Comparar 2 campos em Form e Subform

    avatar
    vileman
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 569
    Registrado : 25/05/2011

    [Resolvido]Comparar 2 campos em Form e Subform Empty [Resolvido]Comparar 2 campos em Form e Subform

    Mensagem  vileman em 16/10/2019, 12:30

    Bom dia,
    * Access 2013 - 64bits

    Tentei adaptar o que preciso com a rotina sugerida neste tópico: https://www.maximoaccess.com/t6621-resolvidocomparar-2-valores-em-form-com-subform
    mas não obtive êxito, pois ao colocar a rotina no evento Current do subform e no evento Após Atualizar do campo ‘CPFVinculo’, não funcionou e não aconteceu nada, nem mesmo uma mensagem de erro, porisso nem tive como testar e complementar o restante que queria.

    Fiz o seguinte: no subformulário
    Private Sub CPFVinculo_AfterUpdate()
         If Forms!F30_LDBPessoas.CPFPessoa = Me.CPFVinculo Then
             MsgBox "Alerta: Cadastro existente na Base de Dados!"
          Else
             MsgBox “Deseja abrir o cadastro existente na Base de dados?” , vbYesNo, “Sistema informa”
             ‘Se sim: abre formulário F30_LDBPessoas no CPF coincidente
          Else ‘Não faz nada
          End If
    End Sub

    Onde:
    F30_LDBPessoas = formulário principal com campo a ser comparado: CPFPessoa
    F301_LDBPessoasXVinculos = subformulário com campo de onde parte a comparação: CPFVinculo

    PS: ambos formulários estão relacionados pelos campos CodPessoa (Autonumeração) e IDPessoa (Número), respectivamente com as tabelas: T30_LDBPessoas e T301_PessoasXVinculos

    Preciso do seguinte:
    No campo ‘CPFVinculo’ do subformulário ao sair ou após atualizar: Pesquisar no formulário principal se o CPF digitado existe. Caso exista: Emitir uma mensagem “Cadastro existente na Base de Dados” e oferece 2 opções: Deseja acessar o cadastro encontrado? Caso sim: Abre o formulário principal no registro do CPF coincidente. PS: salva o registro atual no subformulário mesmo assim. Caso Não: não emite nenhuma mensagem e salva o registro atual no subformulário e continua a inclusão/edição.

    O objetivo é apenas informar se tal CPF existe no cadastro principal e se coincide com esse que está sendo incluído no subformulário, independente de existir ou não sempre será salvo o registro do CPF no subformulário.

    Pode ser de outra forma, caso alguma possa ajudar.
    tauron
    tauron
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1139
    Registrado : 07/12/2011

    [Resolvido]Comparar 2 campos em Form e Subform Empty Re: [Resolvido]Comparar 2 campos em Form e Subform

    Mensagem  tauron em 18/10/2019, 01:48

    Geralmente estes codigos necessitam de algumas configurações nos campos (não sei se sera o caso):


    1- Chave primaria
    2- Limitado a uma lista = sim


    se preferir poste para darmos uma olhada.
    avatar
    vileman
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 569
    Registrado : 25/05/2011

    [Resolvido]Comparar 2 campos em Form e Subform Empty Comparar 2 campos em Form e Subform

    Mensagem  vileman em 20/10/2019, 16:32

    Boa tarde, Tauron

    Vou preparar o arquivo e envio em seguida.
    avatar
    vileman
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 569
    Registrado : 25/05/2011

    [Resolvido]Comparar 2 campos em Form e Subform Empty Comparar 2 campos em Form e Subform

    Mensagem  vileman em 21/10/2019, 15:16

    Bom dia,

    Segue arquivo em anexo
    Anexos
    [Resolvido]Comparar 2 campos em Form e Subform AttachmentFMA - Comparar 2 campos em Form e Subform.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.6 Mb) Baixado 8 vez(es)
    tauron
    tauron
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1139
    Registrado : 07/12/2011

    [Resolvido]Comparar 2 campos em Form e Subform Empty Re: [Resolvido]Comparar 2 campos em Form e Subform

    Mensagem  tauron em 26/10/2019, 23:31

    Me desculpe, acho que não compreendi direito sua demanda. Voce deseja que ao informar o cpf da pessoa vinculada, seja feita uma pesquisa na tabela t301, somente como verificação? É isso mesmo?
    De qualquer forma, veja se seria isso:

    If DCount("CPFPessoa", "T30_LDBPessoas", "CPFPessoa = '" & Me.CPFVinculo & "'") > 0 Then
    MsgBox "Alerta: Cadastro existente na Base de Dados!"
    avatar
    vileman
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 569
    Registrado : 25/05/2011

    [Resolvido]Comparar 2 campos em Form e Subform Empty Comparar 2 campos em Form e Subform

    Mensagem  vileman em 27/10/2019, 14:26

    Bom dia,

    Sim, a pesquisa é na tabela T30_LDBPessoas e caso encontre o CPF digitado emite a mensagem que encontrou e oferece 2 opções:

    Deseja acessar esse Registro? Sim: Mostra no formulário F30_LDBPessoas o registro com o CPF coincidente
    Não: Não faz nada e continua a edição do registro em questão

    Resumo:
    após informar o CPF no subformulário faz uma verificação na tabela T30_LDBPessoas que é a origem do formulário principal F30_LDBPessoas, e caso encontre emite uma mensagem perguntando se deseja abrir esse CPF encontrado ou não.
    avatar
    vileman
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 569
    Registrado : 25/05/2011

    [Resolvido]Comparar 2 campos em Form e Subform Empty Comparar 2 campos em Form e Subform

    Mensagem  vileman em 1/11/2019, 15:43

    Bom dia a todos.

    Tentei adaptar minha questão pelo tópico:
    https://www.maximoaccess.com/t30402-resolvidoverifica-e-alerta-duplicidade-em-formulario-e-consulta

    Private Sub CPFVinculo_AfterUpdate()
    'Ativa rotina de tratamento de erro
    On Error GoTo TrataErro

    'Declara variável do tipo recordset
    Dim rst As DAO.Recordset
       
    'Seta a variável
    Set rst = Me.RecordsetClone
       
    'Compara o Registro com o Recordset
    rst.FindFirst "[CPFPessoa] ='" & Me!CPFVinculo
     
           If Not rst.NoMatch Then 'verifica se não é fim de arquivo
              If MsgBox("ALERTA: CPF com Cadastro existente na Base de Dados!" & Space(2) & "" _
                 & DLookup("[CPFPessoa]", "T30_LDBPessoas", "[CPFPessoa] = '" & Me.CPFVinculo & "'") & vbCrLf & "Deseja ir para o C.P.F encontrado?", vbYesNo + vbExclamation + vbDefaultButton2, "Confirmação") = vbYes Then
                 Me.Undo 'desfaz a digitação
                 Me.Bookmark = rst.Bookmark 'mostra o registro correspondente
              Else
                 Me.Undo
              End If
           End If

       rst.Close         'Fecha o recordset
       Set rst = Nothing 'Libera memoria
       
    'Tratamento de erro
    Exit_Trataerro:
       Exit Sub

    TrataErro:
       'exibe mensagem com o erro ocorrido
       MsgBox "Erro número: " & Err.Number & " - " & Err.Description & " (" & Me.Name & " - " & Me.ActiveControl.Name & " - BeforeUpdate).", vbCritical, "Mensagem de Erro"
       Resume Next
    End Sub

    Mas não funcionou, apareceu a mensagem de erro: "Erro número 3077 - Erro de sintaxe na cadeia na expressão. (F301_LDBPessoasXVinculos - CPFVinculo - BeforeUpdate)"

    Tentei também:
    Private Sub CPFVinculo_AfterUpdate()
    On Error GoTo TrataErro
          Dim rst As Recordset
          Set rst = CurrentDb.OpenRecordset("SELECT * FROM T301_PessoasXVinculos")

           Do While Not rst.EOF
           If rst![CPFVinculo] = Me.CPFVinculo.value Then
               If MsgBox("Já existe um C.P.F. de Código nº" & Space(2) & "" _
               & DLookup("[CPFPessoa]", "T30_LDBPessoas", "[CPFPessoa] = '" & Me!CPFVinculo & "'") & vbCrLf _
               & "Deseja ir para Registro e conferir dados? ", vbYesNo + vbExclamation + vbDefaultButton2, "Confirmação") = vbYes Then
                   'Me.Undo                    'desfaz a digitação
                   Me.Bookmark = rst.Bookmark 'mostra o registro correspondente
           Exit Do
           Else
           Me.Undo
           'faz o procedimento de incluir ou salvar
           End If
           End If
         
           rst.MoveNext
           Loop
           rst.Close
           
    'Tratamento de erro
    Exit_Trataerro:
       Exit Sub

    TrataErro: 'exibe mensagem com o erro ocorrido
       MsgBox "Erro número: " & Err.Number & " - " & Err.Description & " (" & Me.Name & " - " & Me.ActiveControl.Name & " - BeforeUpdate).", vbCritical, "Mensagem de Erro"
       Resume Next
    End Sub

    Também não funcionou, apareceu a mensagem de erro: "Erro número 3159 - Marcador inválido. (F301_LDBPessoasXVinculos - CPFVinculo - BeforeUpdate)"

    Se alguém puder ajudar além de Tauron, agradeço.
    avatar
    vileman
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 569
    Registrado : 25/05/2011

    [Resolvido]Comparar 2 campos em Form e Subform Empty Comparar 2 campos em Form e Subform

    Mensagem  vileman em 1/11/2019, 16:13

    Mais uma tentativa que busquei adaptar com outra rotina, mas não funcionou:

    Dim StrID As String 'Variável criada para a rotina do controle CPF_Exit

    Private Sub CPFVinculo_AfterUpdate()
    Dim x As Integer
    If DCount("CPFPessoa", "T30_LDBPessoas", "CPFPessoa = '" & Me.CPFVinculo & "'") > 0 Then
      x = MsgBox("ALERTA: Cadastro existente na Base de Dados!" & vbCrLf & " " & vbCrLf & "Sim: Acessa Cadastro encontrado" & vbCrLf & "Não: Continua edição atual", vbYesNo, "Sistema")
      If x = vbNo Then 'Se Não
         Cancel = True
      Else             'Se Sim
         Me.VaiParaRegistro
      End If
    End If
    End Sub
    '----------------------------------------------------------------------------------------------------
    Sub VaiParaRegistro() 'AUTOR: JPaulo (Mostra Cadastro encontrado em Duplicidade x CPF)
      'Localizar o registo que corresponde ao controle em Duplicidade
       Dim rs As Object
      'Me.NomePessoa.SetFocus
       Set rs = Me.Recordset.Clone
       rs.FindFirst "[CPFPessoa] = '" & StrID & "'"
       If Not rs.EOF Then
          Me.Bookmark = rs.Bookmark
       End If
    End Sub
    avatar
    vileman
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 569
    Registrado : 25/05/2011

    [Resolvido]Comparar 2 campos em Form e Subform Empty Comparar 2 campos em Form e Subform

    Mensagem  vileman em 5/11/2019, 11:52

    Up
    avatar
    vileman
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 569
    Registrado : 25/05/2011

    [Resolvido]Comparar 2 campos em Form e Subform Empty Comparar 2 campos em Form e Subform

    Mensagem  vileman em 8/11/2019, 14:33

    Up !!
    avatar
    vileman
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 569
    Registrado : 25/05/2011

    [Resolvido]Comparar 2 campos em Form e Subform Empty Comparar 2 campos em Form e Subform

    Mensagem  vileman em 10/11/2019, 16:23

    Up !!!
    avatar
    zcarloslopes
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 210
    Registrado : 28/10/2010

    [Resolvido]Comparar 2 campos em Form e Subform Empty Re: [Resolvido]Comparar 2 campos em Form e Subform

    Mensagem  zcarloslopes em 11/11/2019, 18:29

    Boa noite!

    Veja se é isto que pretende.

    O código corre Após Atualizar no Campo CPFVinculo do SubForm.

    Caso seja o pretendido adapte para o seu propósito.
    Anexos
    [Resolvido]Comparar 2 campos em Form e Subform AttachmentFMA - Comparar 2 campos em Form e Subform_v2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (395 Kb) Baixado 3 vez(es)
    avatar
    vileman
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 569
    Registrado : 25/05/2011

    [Resolvido]Comparar 2 campos em Form e Subform Empty Comparar 2 campos em Form e Subform

    Mensagem  vileman em 11/11/2019, 20:32

    Boa tarde, zcarloslopes

    Amigo, ficou perfeito, muitíssimo obrigado.

    Um abraço!


    Conteúdo patrocinado

    [Resolvido]Comparar 2 campos em Form e Subform Empty Re: [Resolvido]Comparar 2 campos em Form e Subform

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 15/12/2019, 18:07