PEGAR O ÊLTIMO REGISTRO PELA DATA
meus amigos, preciso pegar o último registro cadastrado conforme código abaixo, vi em um tutorial mas estou quebrando a cabeça aqui
meu banco de dados é Access:
Alguém tem ideia de como se faz?
meu banco de dados é Access:
ConnectDB
rs.Open [Ô]select Num_ContratoBD from tblBanco where FormaBD=[ô]CNH[ô] and DataBD=[Ô] & Last(Date) & [Ô][ô][Ô], db, 3, 3
MsgBox rs
rs.Close: Set rs = Nothing
db.Close: Set db = Nothing
Alguém tem ideia de como se faz?
Use a clausula ORDER BY DESC no final do comando
assim vai pegar o ultimo registro
rs.Open [Ô]select Num_ContratoBD from tblBanco where FormaBD=[ô]CNH[ô] ORDER BY DESC[Ô], db, 3, 3
Se não aparecer nada pode ser a maneira que esta se conectando
Sintaxe do propio Access
SELECT fieldlist
FROM table
WHERE selectcriteria
[ORDER BY field1 [ASC | DESC ][, field2 [ASC | DESC ]][, ...]]]
assim vai pegar o ultimo registro
rs.Open [Ô]select Num_ContratoBD from tblBanco where FormaBD=[ô]CNH[ô] ORDER BY DESC[Ô], db, 3, 3
Se não aparecer nada pode ser a maneira que esta se conectando
Sintaxe do propio Access
SELECT fieldlist
FROM table
WHERE selectcriteria
[ORDER BY field1 [ASC | DESC ][, field2 [ASC | DESC ]][, ...]]]
Quase deu certo ,eu ordenei pelo código, com o [Ô]DESC[Ô] não deu erro, o problema é que ele traz todos o valores, eu só queria o último pois preciso fazer um cálculo:
ConnectDB
Dim vValor As Long
Dim vRetornoBanco As String
Dim vDadosVet() As String
Dim vResultado As String
rs.Open [Ô]select Num_ContratoBD from tblBanco where FormaBD=[ô]CNH[ô] ORDER BY CodigoBD[Ô], db, 3, 3
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
Use o limitador LIMIT 1,1, ele limita a pesquisa no numero que pretende
rs.Open [Ô]select Num_ContratoBD from tblBanco where FormaBD=[ô]CNH[ô] ORDER BY DESC CodigoBD LIMIT 1,1[Ô], db, 3, 3
Boa sorte, T+.
rs.Open [Ô]select Num_ContratoBD from tblBanco where FormaBD=[ô]CNH[ô] ORDER BY DESC CodigoBD LIMIT 1,1[Ô], db, 3, 3
Boa sorte, T+.
Se vc precisa do ultimo e tiver um campo como referencia, ou a data for a referencia, utilize por exemplo : Select max(nomedocampo) as Maximo
é o nilson ta certo o mais correto é utilizar o max, ficaria algo mais ou menos assim
rs.Open [Ô]select Max(DataBD),Num_ContratoBD from tblBanco where FormaBD=[ô]CNH[ô][Ô], db, 3, 3
Deu esse erro....
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
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
Num_contratoBd, vc não selecionou esse campo na query.
coloca rs!Maximo
coloca rs!Maximo
coloca a query assim
rs.Open [Ô]select Max(databd)as Maximo, * from tblBanco where FormaBD=[ô]CNH[ô][Ô], db, 3, 3
deu o erro acima ao usar:
e o
também dá erro
O código abaixo funciona perfeitamente, só que ele me traz o primeiro valor e eu preciso do último:
rs.Open [Ô]select Max(databd)as Maximo, * from tblBanco where FormaBD=[ô]CNH[ô][Ô], db, 3, 3
e o
rs.Open [Ô]select Max(DataBD),Num_ContratoBD from tblBanco where FormaBD=[ô]CNH[ô][Ô], db, 3, 3
também dá erro
O código abaixo funciona perfeitamente, só que ele me traz o primeiro valor e eu preciso do último:
rs.Open [Ô]select Num_ContratoBD from tblBanco where FormaBD=[ô]CNH[ô][Ô], db, 3, 3
Mar,
Se vc coloca *From , não pode selecionar campos na query, isso é para selecionar todos os campos, O Marcelo cometeu um erro ali.
seria assim:
rs.Open [Ô]select Max(databd)as Maximo,Num_contratoBD from tblBanco where FormaBD=[ô]CNH[ô][Ô], db, 3, 3
Se vc coloca *From , não pode selecionar campos na query, isso é para selecionar todos os campos, O Marcelo cometeu um erro ali.
seria assim:
rs.Open [Ô]select Max(databd)as Maximo,Num_contratoBD from tblBanco where FormaBD=[ô]CNH[ô][Ô], db, 3, 3
Tópico encerrado , respostas não são mais permitidas