MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

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

    [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 : 579
    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 : 1224
    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 : 579
    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 : 579
    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 10 vez(es)
    tauron
    tauron
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1224
    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 : 579
    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 : 579
    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 : 579
    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 : 579
    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 : 579
    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 : 579
    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 : 306
    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 4 vez(es)
    avatar
    vileman
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 579
    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!


      Data/hora atual: 23/9/2020, 16:52