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
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.
@anderson obrigado vou ver sim o video, deve ter varias dicas.
Daniel Rodrigo
@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
@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
@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
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
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.