Notifications
Clear all

Buscar ultimos valores inseridos no BD

13 Posts
3 Usuários
0 Reactions
3,063 Visualizações
wfranca
(@wfranca)
Posts: 297
Reputable Member
Topic starter
 

Tenho o seguinte código que me faz a consulta e me retorna o valor inserido com base na minha pesquisa.

O meu problema é o seguinte:

eu tenho na minha tabela os seguintes valores:

Descrição -- Código ---- ID
teste1 - - ABC1 ---- 1
teste2 - - ABC2 ---- 2
teste3 - - ABC3 ----- 3
teste1 - - ABC4 ---- 4
teste1 - - ABC5 ----- 5
teste1 - - ABC6 ----- 6

O que eu preciso é que com base no meu código de busca, adaptar para que ele me retorne os 3 últimos valores lançados na tabela de acordo com minha descrição.

Nesse caso ficaria assim:
Ao realizar a pesquisa: "teste1"

me retorno os valores:

Textbox1 = ABC6
Textbox2 = ABC5
Textbox3 = ABC4

' Dim valor_pesq As String
 Dim ComandoSQL As String
    
    valor_pesq = Me.cmb_material
                                                    
   ComandoSQL = "select * from TB_Valores where Material_Desc like '*" & valor_pesq & "*' "
  '
    
    
    'Chama a rotina que faz a conexão com o BD
    Call Conecta
    
    'Atribui a variável objeto de BD a execução dos comandos SQL
    Set consulta = banco.OpenRecordset(ComandoSQL)
    
    'Tratamento de erro de acesso aos dados. Se houver erro, desvia o comando para o rótulo Sai
    On Error Resume Next
              
    
    'Tratamento de erro de acesso aos dados. Se houver erro, desvia o comando para o rótulo Sai
'    On Error GoTo sai
 
   
   
   Me.txt_DI = consulta("DI")
   
   txt_custo_forn1 = consulta("Valor_Unit") & ""
   
   
      consulta.Update
       
    Call Desconecta
End Sub

Welington Gonçalves

 
Postado : 26/09/2017 12:47 pm
wfranca
(@wfranca)
Posts: 297
Reputable Member
Topic starter
 

Seria algo parecido com isso. Mas não consegui adaptar.

https://social.msdn.microsoft.com/Forums/pt-BR/aa5aa21d-f481-4b4a-ba71-2790a3060368/selecionar-o-penltimo-valor-de-uma-tabela-id-sem-auto-incremento-e-outra-pergunta-selecionar?forum=520

Welington Gonçalves

 
Postado : 27/09/2017 6:42 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

wfranca,

Bom dia!

Acrescente no seu código SQL, na cláusula Where, And ID > 3 e ,mande o resultado ser ordenado em ordem decrescente (Order By Desc ID.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 27/09/2017 7:54 am
wfranca
(@wfranca)
Posts: 297
Reputable Member
Topic starter
 

Wagner, tentei realizar a alteração mas não consegui.

Tenho no BD materiais que cadastro.
ao consultar esses materiais quero que me retorne o ID dos últimos 3 que foram cadastrados. Com o código que estou usando o valor a ser retornado é apenas do ultimo.
anexei o arquivo junto com o BD para melhor entendimento.

Private Sub consultar()
 Dim ComandoSQL As String
 ComandoSQL = "SELECT id FROM TB_valores where Material_Desc ORDER BY id DESC "
 
    'Chama a rotina que faz a conexão com o BD
    Call Conecta
    
    'Atribui a variável objeto de BD a execução dos comandos SQL
    Set consulta = banco.OpenRecordset(ComandoSQL)
    
    'Tratamento de erro de acesso aos dados. Se houver erro, desvia o comando para o rótulo Sai
    On Error Resume Next 
    
    'Tratamento de erro de acesso aos dados. Se houver erro, desvia o comando para o rótulo Sai
'    On Error GoTo sai
   
  Me.TextBox1 = consulta("ID")
  Me.TextBox2 = consulta("ID")
  Me.TextBox3 = consulta("ID")
   
        consulta.MoveNext
       
    Call Desconecta
End Sub

Welington Gonçalves

 
Postado : 27/09/2017 10:29 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Não consigo abrir arquivo .ldb.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 27/09/2017 1:39 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

O programa está tentando abrir um arquivo .mdb e não consegue, porque nem o arquivo existe e nem o caminho é o que está na rotina.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 27/09/2017 1:43 pm
wfranca
(@wfranca)
Posts: 297
Reputable Member
Topic starter
 

Wagner,

teria que entrar no módulo e mudar o caminho do arquivo para sua maquina

Welington Gonçalves

 
Postado : 27/09/2017 1:45 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Sim, claro. Entretanto, preciso do arquivo .mdb. Preciso, inclusive, ver a estrutura do arquivo .mdb.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 27/09/2017 2:12 pm
wfranca
(@wfranca)
Posts: 297
Reputable Member
Topic starter
 

Opa..

descupe, não tinha visto.

segue anexo

Welington Gonçalves

 
Postado : 27/09/2017 2:23 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

wfranca,

Infelizmente, nesse momento estou super sem tempo pois terei que fazer uma viagem daqui há alguns minutos. Estou disponibilizando um arquivo onde faço o acesso a dados. Tente estudar um pouco as rotinas e adapte às suas necessidades.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 27/09/2017 3:05 pm
wfranca
(@wfranca)
Posts: 297
Reputable Member
Topic starter
 

Wagner,

agradeço, mas mesmo assim não consegui..

consegui até um certo ponto...

o código abaixo ele consegue realiza a consulta na tabela.

 Dim ComandoSQL As String
 Dim Codigo As String
Codigo = teste1

    ComandoSQL = "SELECT * FROM TB_Valores where Material_Desc "
    ComandoSQL = ComandoSQL & "Order by ID"
        
......   
End Sub

mas não sei como jogar os resultados para as textbox.

 Dim ComandoSQL As String
 Dim Codigo As String


Codigo = teste1


    ComandoSQL = "SELECT * FROM TB_Valores where Material_Desc "
    ComandoSQL = ComandoSQL & "Order by ID"
        
   
  
    
   
'ComandoSQL = "SELECT id FROM TB_valores where Material_Desc ORDER BY id DESC "

  '
    
    
    'Chama a rotina que faz a conexão com o BD
    Call Conecta
    
    'Atribui a variável objeto de BD a execução dos comandos SQL
    Set consulta = banco.OpenRecordset(ComandoSQL)
    
    'Tratamento de erro de acesso aos dados. Se houver erro, desvia o comando para o rótulo Sai
    On Error Resume Next
            
     
          
    
    'Tratamento de erro de acesso aos dados. Se houver erro, desvia o comando para o rótulo Sai
'    On Error GoTo sai
   
   While Not consulta.EOF
         Me.TextBox1 = consulta("ID")
  Me.TextBox2 = consulta("ID")
  Me.TextBox3 = consulta("ID")
  
  consulta.MoveNext
    Wend

   

   
        
       
    Call Desconecta
End Sub

Welington Gonçalves

 
Postado : 27/09/2017 5:49 pm
cleiton jm
(@cleiton-jm)
Posts: 115
Estimable Member
 

Da uma olhada se é isso que você precisa :D ....

 
Postado : 27/09/2017 6:59 pm
wfranca
(@wfranca)
Posts: 297
Reputable Member
Topic starter
 

me atendeu bem Cleiton
Muito Obrigado.

Welington Gonçalves

 
Postado : 01/11/2017 5:36 pm