Notifications
Clear all

Clausula Where com Condicional Dinâmica

3 Posts
2 Usuários
0 Reactions
1,283 Visualizações
(@heliofaria)
Posts: 50
Trusted Member
Topic starter
 

Pessoal tudo bem?

Estou com um problema num código que busca informações num banco no Access. A questão é o seguinte: o Where que indica a condicional a ser atendida para retornar os valores, precisa ser definido no codigo, porém preciso que ele seja dinâmico pois essa condicional será alterada com frequência. Ex:

Rst.Open "SELECT * FROM Base Where Lote='389-2015'",

Preciso que no lugar do '389-2015' seja possivel inserir uma variavel definida em outro lugar.

Alguem tem alguma sugestão?

Segue o arquivo com o código.

Muito obrigado!

 
Postado : 16/04/2016 1:10 am
(@tarcelles)
Posts: 61
Trusted Member
 
Dim variavel
Sub Importar_do_Access()
Plan2.Select
Plan2.Range("A2").Select
Set Rst = New ADODB.Recordset

Call Conecta

' A LINHA ABAIXO TRAZ APENAS A CONDICIONAL FIXA, OU SEJA, OS LOTES 389-2015. PRECISO QUE O NUMERO DO LOTE SEJA ARMAZENADO NUMA_
'VARIÁVEL DE FORMA QUE FIQUE DINAMICA. QUANDO EU ALTERAR O LOTE NA PLAN2.RANGE(I1) A CLAUSULA WHERE DEVE CONSIDERAR A NOVA CONDICIONAL.


variavel = Plan2.Range("A2")

Rst.Open "SELECT * FROM Base Where Lote='" & variavel & "'", Conexao, adOpenKeyset, adLockOptimistic, adCmdText


' TENTEI O SEGUINTE CODIGO MAS NÃO DEU CERTO.
    'var = Cells(1, 9).Value
    'Rst.Open "SELECT * FROM Base Where Lote = Var", Conexao, adOpenKeyset, adLockOptimistic, adCmdText


            While Not Rst.EOF
            Linha = ActiveCell.Row
                          With Rst
        Plan2.Cells(Linha, 1) = .Fields("Lote")
        Plan2.Cells(Linha, 2) = .Fields("Fornecido (kg)")
        Plan2.Cells(Linha, 3) = .Fields("Previsto (kg)")
        Plan2.Cells(Linha, 4) = .Fields("Desvio (kg)")
        Plan2.Cells(Linha, 5) = .Fields("Desvio (%)")
             'Se houver erro
      On Error Resume Next
                                    
      End With
                         
              Rst.MoveNext
              ActiveCell.Offset(1, 0).Select
                           Wend
                           
Call Desconectar
Exit Sub
       
End Sub
 
Postado : 18/04/2016 7:02 am
(@heliofaria)
Posts: 50
Trusted Member
Topic starter
 

Muito obrigado tarcelles.

Funcionou perfeitamente. Valeu mesmo!!!!!!

:D :D :D

 
Postado : 18/04/2016 10:58 am