Notifications
Clear all

[Resolvido] Dúvida se tem como usar uma variável para informar um campo para buscar dados no bd acess

9 Posts
3 Usuários
0 Likes
1,609 Visualizações
(@drbeil)
Posts: 37
Eminent Member
Topic starter
 

Quero abrir um bd porém queria usar uma variavel que será definida em uma textbox.

Tenho formulario no excel com os dados no acess.

 

Essa é a linha para abrir: rs.Open "select * from Dados_Source where & Despesa_Fixa_Desp", MiConexao, 3, 3

Tenho dois campos(colunas) que posso buscar os dados que quero.

Campos: Despesa_Fixa_Desp e Despesa_Variavel_Desp

 

rs.Open "select * from Dados_Source where  VARIAVEL ", MiConexao, 3, 3

 

Unico jeito que consegui fazer funcionar é fazendo duas buscas.

rs.Open "select * from Dados_Source where Despesa_Fixa_Desp", MiConexao, 3, 3

rs("Despesa_Fixa_Desp") = Me.c_despesasdb_item_alterar

rs.Update

rs.close


rs.Open "select * from Dados_Source where Despesa_Variavel_Desp", MiConexao, 3, 3

rs("Despesa_Variavel_Desp") = Me.c_despesasdb_item_alterar

rs.Update

rs.close

Editado pela Moderação. Motivo: Procure utilizar o botão Código (< >) sempre que for inserir código VBA ou Fórmulas.

Daniel Rodrigo

 
Postado : 11/01/2021 1:03 pm
Raygsson
(@raygsson)
Posts: 68
Trusted Member
 

Não entendi muito bem sua pergunta, voce quer apenas alterar o coluna/campo consultada na tabela? 

Se for só isso tira esse * e entra com o nome da coluna:

              rs.Open "select " & SuaVariavel & " from Dados_Source", MiConexao, 3, 3

 

Se quiser trazer as duas colunas faz assim:

              rs.Open "select  *  from Dados_Source", MiConexao, 3, 3

Editado pela Moderação. Motivo: Procure utilizar o botão Código (< >) sempre que for inserir código VBA ou Fórmulas.

 
Postado : 11/01/2021 8:00 pm
(@drbeil)
Posts: 37
Eminent Member
Topic starter
 

@raygsson

Deu certinho, valeu.

Daniel Rodrigo

 
Postado : 13/01/2021 10:04 am
(@drbeil)
Posts: 37
Eminent Member
Topic starter
 

@anderson obrigado vou ver sim o video, deve ter varias dicas.

Daniel Rodrigo

 
Postado : 13/01/2021 11:10 am
(@drbeil)
Posts: 37
Eminent Member
Topic starter
 

@raygsson bom dia,

Já coloquei como resolvido, mas teria como nessa linha: (rs.Open "select " & SuaVariavel & " from Dados_Source", MiConexao, 3, 3) colocar mais um "argumento". Como nesse usando o like : (rs.Open "select * from Base_compras where Compra_empresa Like '%" & Me.c_compra_empresa & "%'", MiConexao, 3, 3) ou assim: (rs.Open "select * from base_compras where Cod_Compras=" & id4, MiConexao, 3, 3)

Com o código que me passou consigo trocar o campo atraves da combobox, agora precisava um achar um dado definido por uma textbox.

 

Daniel Rodrigo

 
Postado : 14/01/2021 11:19 am
(@drbeil)
Posts: 37
Eminent Member
Topic starter
 

@anderson bom dia,

É só uma opiniao minha se estou com dúvida, busco resposta que esteja no mesmo raciocínio. Você manda esses videos que não tem o mesmo segmento que estou fazendo o meu código. Se for para ficar mandando apenas essas resposta pronta . Melhor nem responder, pula. Li suas mensagens, que depois você apagou, nos dois post que fiz apenas questionando não orientando.

Deve ganhar pontos colocando resposta pronta, deve ser.

 

Obrigado

Daniel Rodrigo

 
Postado : 14/01/2021 11:44 am
(@drbeil)
Posts: 37
Eminent Member
Topic starter
 

@anderson Cada pergunta é sobre ma questão especifica. No outro você disse que não dá. Ok, acabou o assunto. Essa questão é outra.

Umas das minhas tabelas tenho 15 mil linhas com 60 campos. Exemplo fiz 10 código de busca diferentes (um para cada campo) para buscar cada informação que quero. Com isso queria saber se tem como usar o codigo acima usando uma variavel (já foi possivel) porem queria definir a busca por um argumento, uma textbox. Assim eliminaria os 10 códigos é um só.

 

Exemplo 1, de código que tenho:

Call conecta
With frm_Listagem.ListBox1
.Clear
Set rs = New ADODB.Recordset
rs.Open "select * from Base_balcao where Data_Balcao Like '" & frm_Listagem.c_listagem_data & "%' order by Ident desc", MiConexao, 3, 3

frm_Listagem.ListBox1.ColumnWidths = "40; 70; 150; 60; 60; 60; 50; 40 ; 40 ; 90"

With frm_Listagem.ListBox1
.AddItem
.List(0, 0) = "Balcao"
.List(0, 1) = "Data"
.List(0, 2) = "Empresa"
.List(0, 3) = "Valor"
.List(0, 4) = "Operador"
.List(0, 5) = "Status"
.List(0, 6) = "Caixa"
.List(0, 7) = "Recibo"
.List(0, 8) = "NFe"
.List(0, 9) = "Pagamento"
End With

Do Until rs.EOF
.AddItem

.List(linhalistbox, 0) = Format(rs(0), "00000") 'cod
.List(linhalistbox, 1) = rs(1) 'data
.List(linhalistbox, 2) = rs(6) 'empresa
.List(linhalistbox, 3) = Format(rs(71), "#,##0.00") 'valor Format(rs(10), "#,##0.00")
.List(linhalistbox, 4) = rs(72) 'operador

 

-------------------------------------------------------------------------------------------------------------------------------------------

Exemplo 2, do código que tenho:

Call conecta
With frm_Listagem.ListBox1
.Clear
Set rs = New ADODB.Recordset
rs.Open "select * from Base_balcao where TOTAL Like '%" & frm_Listagem.c_listagem_adicional & "%' order by Ident desc", MiConexao, 3, 3

frm_Listagem.ListBox1.ColumnWidths = "40; 70; 150; 60; 60; 60; 50; 40 ; 40 ; 90"

With frm_Listagem.ListBox1
.AddItem
.List(0, 0) = "Balcao"
.List(0, 1) = "Data"
.List(0, 2) = "Empresa"
.List(0, 3) = "Valor"
.List(0, 4) = "Operador"
.List(0, 5) = "Status"
.List(0, 6) = "Caixa"
.List(0, 7) = "Recibo"
.List(0, 8) = "NFe"
.List(0, 9) = "Pagamento"
End With

Do Until rs.EOF
.AddItem

.List(linhalistbox, 0) = Format(rs(0), "00000") 'cod
.List(linhalistbox, 1) = rs(1) 'data
.List(linhalistbox, 2) = rs(6) 'empresa
.List(linhalistbox, 3) = Format(rs(71), "#,##0.00") 'valor Format(rs(10), "#,##0.00")
.List(linhalistbox, 4) = rs(72) 'operador

Daniel Rodrigo

 
Postado : 14/01/2021 1:30 pm
Raygsson
(@raygsson)
Posts: 68
Trusted Member
 

@drbeil

Você já tem tudo pra fazer esse ajuste, precisa apenas juntar uma coisa com a outra

ComandoSQL  = "SELECT " & SuaVariavel & " FROM Dados_Source"
ComandoSQL = ComandoSQL & " WHERE Compra_empresa LIKE '%" & Me.c_compra_empresa & "%'"
rs.Open ComandoSQL, MiConexao, 3, 3

Estudar um pouco sobre comandos básicos SQL vai te ajudar a entender com funciona:

https://www.devmedia.com.br/comandos-basicos-em-sql-insert-update-delete-e-select/37170

 
Postado : 14/01/2021 2:38 pm
(@anderson)
Posts: 203
Reputable Member
 
rs.Open "select * from Base_balcao where " & caixadetexto & " Like '%" & frm_Listagem.c_listagem_adicional & "%' order by Ident desc", MiConexao, 3, 3

Em 90% dos casos em que não se anexa o arquivo, ocorrem mal-entendidos, gerando perda de tempo de ambos os lados.

 
Postado : 14/01/2021 2:56 pm