PEGAR O ÊLTIMO REGISTRO PELA DATA

MARIOANDRADE 07/09/2014 22:01:10
#441044
Nilson, fiz como você sugeriu e eis o resultado....
NILSONTRES 07/09/2014 22:16:48
#441045
Final de Domingo:
Faltou a clausula Group By
rs.Open [Ô]select Max(databd)as Maximo,Num_contratoBD from tblBanco where FormaBD=[ô]CNH[ô] Group By Num_contratoBD[Ô], db, 3, 3
MARIOANDRADE 07/09/2014 22:18:58
#441046
Meus amigos, acho que sei como resolver, só preciso pegar a última data agora, daí eu faço uma outra busca com ela, tentei o código abaixo que é mais simples mas mesmo assim aparece a mensagem que o item rs!databd não pertence a coleção.

 ConnectDB
Dim vValor As Long
Dim vRetornoBanco As String
Dim vDadosVet() As String
Dim vResultado As String
[ô]rs.Open [Ô]select Max(databd)as Maximo, * from tblBanco where FormaBD=[ô]CNH[ô][Ô], db, 3, 3
[ô]rs.Open [Ô]select Num_ContratoBD from tblBanco where FormaBD=[ô]CNH[ô][Ô], db, 3, 3
rs.Open [Ô]select Max(databd) as Maximo from tblBanco where FormaBD=[ô]CNH[ô][Ô], db, 3, 3
Dim resultado As Date
resultado = rs!databd
MsgBox resultado
[ô] vRetornoBanco = rs!Num_ContratoBD
[ô] vDadosVet = Split(vRetornoBanco, [Ô]-[Ô])
[ô] vValor = CLng(vDadosVet(0)) + 1
[ô] txtVNumCont = CStr(vValor) & [Ô]-[Ô] & vDadosVet(1)

rs.Close: Set rs = Nothing
db.Close: Set db = Nothing
MARIOANDRADE 07/09/2014 22:40:29
#441047
Erro ao usar o goup by

rs.Open [Ô]select Max(databd)as Maximo,Num_contratoBD  from tblBanco where FormaBD=[ô]CNH[ô] Group By Num_contratoBD[Ô], db, 3, 3 
NILSONTRES 07/09/2014 22:46:07
#441048
O seu erro agora é relativo a outra coisa, é de null, observe a mensagem:
Utilize:
vretornobanco=[Ô][Ô] & rs!num_contratobd
MARCELO.TREZE 07/09/2014 23:00:44
#441049

tente outro

rs.Open [Ô]select Num_ContratoBD from tblBanco where (select max(databd) from tblBanco FormaBD=[ô]CNH[ô][Ô]), db, 3, 3
MARIOANDRADE 07/09/2014 23:03:30
#441050
Ao colocar vretornobanco=[Ô][Ô] & rs!num_contratobd ele só me traz valores vazios e a msg [Ô]Subscript out of range[Ô] apontando para o vValor = CLng(vDadosVet(0)) + 1
NILSONTRES 07/09/2014 23:11:24
#441051
Citação:

Ao colocar vretornobanco=[Ô][Ô] & rs!num_contratobd ele só me traz valores vazios e a msg [Ô]Subscript out of range[Ô] apontando para o vValor = CLng(vDadosVet(0)) + 1


Exatamente, não a nada nesse registro, Por isso o erro.
FFCOUTO 08/09/2014 09:15:00
#441055
Resposta escolhida
Caro, M4R1O

Lendo os posts, na segunda resposta você afirma que [Ô]quase deu certo[Ô], pois o comando trazia todos os registros e você só precisava do último. Veja o seu comando:

Select Num_ContratoBD From tblBanco Where FormaBD=[ô]CNH[ô] ORDER BY CodigoBD;


Para trazer apenas o último faltou um TOP 1

Select [txt-color=#e80000]TOP 1[/txt-color] Num_ContratoBD From tblBanco Where FormaBD=[ô]CNH[ô] ORDER BY CodigoBD;

FILMAN 08/09/2014 14:08:48
#441062
Tente assim conforme o Marcelo-Traze postou:

Dim vSQL As String
Dim rst As New ADODB.Recorset

vSQL = [Ô]SELECT Num_ContratoDB FROM tblBanco WHERE TRIM(FormaDB) = [ô]CNH[ô] AND DataDB = (SELECT MAX(DataDB) FROM tblBanco)[Ô]

rst.Open vSQL, db, 3, 3

If rst.RecordCount > 0 Then
If IsNull(rst([Ô]Num_ContratoDB[Ô])) = False Then
MsgBox [Ô]Encontrou algum valor!![Ô]
Else
MsgBox [Ô]Retornou uma linha, mas esta nula!![Ô]
End If
Else
MsgBox [Ô]Não Encontrou nada!![Ô]
End If


Tente adaptar a sua realidade!
Página 2 de 4 [32 registro(s)]
Tópico encerrado , respostas não são mais permitidas