Como em seu modelo/exemplo temos; por exemplo; "visitante" TESTE2 (entre outros) com uma entrada as 14hs e outra as 16:30hs; na consulta o retorno será de 2 registros,
Uma possibilidade para contornar esse "problema" será antes de preencher o formulario se posicionar no ultimo recordset da consulta
algo +/- assim
Código: Selecionar todos
Private Sub CbxNome_Change()
Application.ScreenUpdating = False
'On Error GoTo Erro
Set Rs = New ADODB.Recordset
ConectarBD
Rs.Open "SELECT Nome_Visitante, RG, CPF, Nome_Paciente, Setor, Leito, Hora_entrada, OBS, Max(Código)" & _
"FROM Banco_Visita WHERE Nome_Visitante='" & Cadastrado.CbxNome.Text & "'" & _
"Group by Nome_Visitante, RG, CPF, Nome_Paciente, Setor, Leito, Hora_entrada, OBS", Conexao, adOpenKeyset, adLockReadOnly
If Rs.RecordCount > 0 Then
Rs.MoveLast
Cadastrado.CbxNome.Text = Rs!Nome_Visitante
Cadastrado.TxtRG = Rs!RG
Cadastrado.TxtCPF = Rs!CPF
Cadastrado.TxtPaciente = Rs!Nome_Paciente
Cadastrado.TxtSetor = Rs!Setor
Cadastrado.TxtLeito.Text = Rs!Leito
''Cadastrado.TxtData = VBA.Date
Cadastrado.TxtHoras = Rs!Hora_entrada
Cadastrado.TxtOBS = Rs(8) 'Rs!OBS
Else
MsgBox "Não encontrado!", vbInformation, "ReCadastrado"
End If
Módulo1.Fechar_RS
DesconectarBD
Exit Sub
Erro:
MsgBox "Erro!", vbCritical, "ERRO"
Application.ScreenUpdating = True
End Subalgo +/- assim:
Código: Selecionar todos
Private Sub CbxNome_Change()
Application.ScreenUpdating = False
'On Error GoTo Erro
Set Rs = New ADODB.Recordset
ConectarBD
Rs.Open "SELECT Last(Nome_Visitante), Last(RG), Last(CPF), Last(Nome_Paciente), Last(Setor), Last(Leito), Last(Hora_entrada), Last(OBS), Last(Código) AS cod " & _
"FROM Banco_Visita WHERE Nome_Visitante='" & Cadastrado.CbxNome.Text & "' " & _
"ORDER BY Last(CPF), Last(Nome_Paciente), Last(Setor), Last(Leito), Last(Hora_entrada), Last(OBS), Last(Código)", Conexao, adOpenKeyset, adLockReadOnly
If Rs.RecordCount > 0 Then
Cadastrado.CbxNome.Text = Rs(0) 'Rs!Visitante
Cadastrado.TxtRG = Rs(1)
Cadastrado.TxtCPF = Rs(2)
Cadastrado.TxtPaciente = Rs(3)
Cadastrado.TxtSetor = Rs(4)
Cadastrado.TxtLeito.Text = Rs(5)
Cadastrado.txtCod.Text = Rs!cod
''Cadastrado.TxtData = VBA.Date
Cadastrado.TxtHoras = Rs(6)
Cadastrado.TxtOBS = Rs(7)
Else
MsgBox "Não encontrado!", vbInformation, "ReCadastrado"
End If
Módulo1.Fechar_RS
DesconectarBD
Exit Sub
Erro:
MsgBox "Erro!", vbCritical, "ERRO"
Application.ScreenUpdating = True
End Sub


