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 = NothingAlgué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, 3e o
rs.Open [Ô]select Max(DataBD),Num_ContratoBD from tblBanco where FormaBD=[ô]CNH[ô][Ô], db, 3, 3també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
                    
                


