PEGAR O ÊLTIMO REGISTRO PELA DATA
Nilson, fiz como você sugeriu e eis o resultado....
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
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
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
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
O seu erro agora é relativo a outra coisa, é de null, observe a mensagem:
Utilize:
vretornobanco=[Ô][Ô] & rs!num_contratobd
Utilize:
vretornobanco=[Ô][Ô] & rs!num_contratobd
tente outro
rs.Open [Ô]select Num_ContratoBD from tblBanco where (select max(databd) from tblBanco FormaBD=[ô]CNH[ô][Ô]), db, 3, 3
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
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.
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:
Para trazer apenas o último faltou um TOP 1
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;
Tente assim conforme o Marcelo-Traze postou:
Tente adaptar a sua realidade!
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!
Tópico encerrado , respostas não são mais permitidas