Boa tarde, Wagner
Obrigado por tentar ajudar.
Então fiz alguns testes usando o seu código e não consegui efetuar a consulta informando os campos ID, Nome ou CPF...
Está sempre retornando o cliente com o maior ID aqui no caso a "cliente" Mariana.
Como mencionei gostaria que o range da pesquisa ficasse restrito ao range da tabela (para evitar problemas caso a tabela mude de posição na planilha)
Por isso tentei escrever um código baseado no seu... ainda assim tem alguns erros (relacionados ao range da pesquisa)... pode tentar adaptá-lo para mim com seus conhecimentos?
Segue o código baseado na situação da minha tabela:
Private Sub Bto_Consultar_Click()
' Código para pesquisar o ID, Nome ou CPF inserido na tabela (banco de dados) e preencher as demais textbox e combobox
'a partir de uma das três informações inseridas (ID, Nome ou CPF)
'
'
' IMPORTANTE Range de pesquisa restrito à tabela - TB_Cadastro[ID], TB_Cadastro[Nome] e/ou TB_Cadastro[CPF]
'
' Código para bloquear as demais caixas de texto ao final da pesquisa, exceto ID, Nome e CPF
'
'
' Habilitasse o botão "ALTERAR" somente caso alguma alteração fosse feita a pesquisa
Dim tabela As ListObject
Dim lin As Long
Dim ULinha As Long
Set tabela = wsh_Cadastro.ListObjects("TB_Cadastro")
ULinha = tabela.ListRows(1).Range(1, 1).End(xlDown).Row
For lin = tabela.ListRows(1).Range(1, 1).Row To ULinha
If txt_ID.Text = Range("TB_Pacientes[[lin],[ID]]").Value Or txt_Nome.Text = Range("TB_Pacientes[[lin],[Nome]]") Or txt_CPF.Text = Range("TB_Pacientes[[lin],[CPF]]") Then
Me.txt_ID = Range[color=#FF0000]("TB_Cadastro[[lin],[ID]]")[/color].Value
Me.txt_Data.Text = Range[color=#FF0000]("TB_Cadastro[[lin],[Data]]")[/color].Value
Me.txt_Cadastro.Text = Range[color=#FF0000]("TB_Cadastro[[lin],[Cadastro]]")[/color].Value
Me.txt_Nome = Range[color=#FF0000]("TB_Cadastro[[lin],[Nome]]")[/color].Value
Me.cbb_Sexo = Range[color=#FF0000]("TB_Cadastro[[lin],[Sexo]]")[/color].Value
Me.txt_DataNasc = Range[color=#FF0000]("TB_Cadastro[[lin],[Data Nasc]]")[/color].Value
Me.txt_Idade = Range[color=#FF0000]("TB_Cadastro[[lin],[Idade]]")[/color].Value
Me.cbb_EstadoCivil = Range[color=#FF0000]("TB_Cadastro[[lin],[Nome]]")[/color].Value
Me.txt_CPF = Range[color=#FF0000]("TB_Cadastro[[lin],[CPF]]")[/color].Value
End If
Next
Set tabela = Nothing
End Sub
Private Sub Bto_Consultar_Click()
' Código para pesquisar o ID, Nome ou CPF inserido na tabela (banco de dados) e preencher as demais textbox e combobox
'a partir de uma das três informações inseridas (ID, Nome ou CPF)
'
'
' IMPORTANTE Range de pesquisa restrito à tabela - TB_Cadastro[ID], TB_Cadastro[Nome] e/ou TB_Cadastro[CPF]
'
' Código para bloquear as demais caixas de texto ao final da pesquisa, exceto ID, Nome e CPF
'
'
' Habilitasse o botão "ALTERAR" somente caso alguma alteração fosse feita a pesquisa
Dim tabela As ListObject
Dim lin As Long
Dim ULinha As Long
Set tabela = wsh_Cadastro.ListObjects("TB_Cadastro")
ULinha = tabela.ListRows(1).Range(1, 1).End(xlDown).Row
For lin = tabela.ListRows(1).Range(1, 1).Row To ULinha
If txt_ID.Text = Range("TB_Pacientes[[lin],[ID]]").Value Or txt_Nome.Text = Range("TB_Pacientes[[lin],[Nome]]") Or txt_CPF.Text = Range("TB_Pacientes[[lin],[CPF]]") Then
Me.txt_ID = Range("TB_Cadastro[[lin],[ID]]").Value
Me.txt_Data.Text = Range("TB_Cadastro[[lin],[Data]]").Value
Me.txt_Cadastro.Text = Range("TB_Cadastro[[lin],[Cadastro]]").Value
Me.txt_Nome = Range("TB_Cadastro[[lin],[Nome]]").Value
Me.cbb_Sexo = Range("TB_Cadastro[[lin],[Sexo]]").Value
Me.txt_DataNasc = Range("TB_Cadastro[[lin],[Data Nasc]]").Value
Me.txt_Idade = Range("TB_Cadastro[[lin],[Idade]]").Value
Me.cbb_EstadoCivil = Range("TB_Cadastro[[lin],[Nome]]").Value
Me.txt_CPF = Range("TB_Cadastro[[lin],[CPF]]").Value
End If
Next
Set tabela = Nothing
End Sub
Estou enviando a planilha novamente pq atribui o nome "TB_Cadastro" à tabela.
Quem mais puder ajudar... toda ajuda é sempre bem vinda.
Obrigado.
Postado : 06/09/2018 9:25 am