Ir para conteúdo
Fórum Script Brasil
  • 0

Querys Através De Sql Em Vba


Elber Carretoni

Pergunta

Salve salve galera...

gostaria de executar consultas via sql através de VBA e armazenar os resultados em objetos Querys...

seria basicamente criar uma consulta do access, porém de modo virtual...

Armazenando os resultados em uma Query, gostaria posteriormente de chamá-lo e utilizar de valores que o mesmo possui, além de efetuar estatísticas de contagem, soma (sql)...enfim...

alguém poderia dar um help nesta parte de criar uma Query "virtualmente" e posteriormente utilizá-la?

Se for possível, gostaria de pedir exemplos de programação aqui no fórum ou tópicos de auxílio!

Vlw a atenção de todos, abraços!

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0
O que você quer dizer com "criar virtualmente"?

"criar virtualmente", me refiro a armazenar essa query em variáveis objetos do vb...como se fosse qualquer outra variável, e não criar uma consulta no Objeto Consulta do Access...

teria como?

bom...de qualquer forma, também gostaria de saber o seguinte:

Criar uma consulta no Objeto Consulta do Access, porém não indicar nenhum campo de nenhuma tabela...

posteriormente, executar a consulta em sql pelo vb e transferir os campos e os dados para o Objeto Consulta que foi criado no access...dessa forma, poderia usar apenas um objeto consulta mas sempre alterá-lo conforme as Sql do vba...também teria como?

peço desculpas pela demora da resposta...ontem não pude estar presente!

abraços, vlw a atenção de todos!

cara.. se você armazenar resultados de consultas.. você vai abarrotar o seu BD em pouquissimo tempo com dados redundantes..

mas essas querys serão tratadas como variáveis...

e se eu definir uma variável query pública e usar sempre a mesma para efetuar diversas consultas no banco de dados...

deu pra entender?

mesmo assim abarrota o bd?

Link para o comentário
Compartilhar em outros sites

  • 0

ummmm, entendi e achei interessante a ideia, vou ver se consigo bolar algo e se conseguir posto pra você, claro que se você conseguir antes espero disponibilize pra nós....

Link para o comentário
Compartilhar em outros sites

  • 0
ummmm, entendi e achei interessante a ideia, vou ver se consigo bolar algo e se conseguir posto pra você, claro que se você conseguir antes espero disponibilize pra nós....

rsrs...lógico, também estou correndo atrás disso e sempre quando encontro alguma solução posto no fórum...

usava esta idéia bastante em delph, quando utilizada um objeto query em uma data source e indicava como fonte deste objeto um parâmetro em sql...posteriormente eu consiguia acessar dados de até um campo específico da query e trabalhar normalmente como se fosse uma outra tabela do banco de dados...

senti mta falta disso quando comecei a mexer com vba! :(

Link para o comentário
Compartilhar em outros sites

  • 0
ummmm, entendi e achei interessante a ideia, vou ver se consigo bolar algo e se conseguir posto pra você, claro que se você conseguir antes espero disponibilize pra nós....

rsrs...lógico, também estou correndo atrás disso e sempre quando encontro alguma solução posto no fórum...

usava esta idéia bastante em delph, quando utilizada um objeto query em uma data source e indicava como fonte deste objeto um parâmetro em sql...posteriormente eu consiguia acessar dados de até um campo específico da query e trabalhar normalmente como se fosse uma outra tabela do banco de dados...

senti mta falta disso quando comecei a mexer com vba! :(

numa livraria vi isso de relance num livro...só não deu pra copiar a programação...rsrs

mas é bem rápido e simples...vou estar fazendo os testes

pelo que me lembro, você cria um objeto DAO database e outro objeto DAO QueryDef...posteriormente você seta o Data base com o seu banco de dados e depois o objeto DAO QueryDef com a SQL e depois seta alguma coisa com o banco de dados de novo...

não me lembro muito bem, infelizmente...

vi isso no livro "Integrando Access e Excel", da editora O'Reilly...acho que tem uma codorna na capa...

se alguém tiver o livro, por favoooooooor...

Link para o comentário
Compartilhar em outros sites

  • 0

Consegui alguma coisa...

na realidade, não consegui criar uma consulta pelo VBA, mas consegui alterar a instrução sql de uma consulta já criada...deu pra entender?

abaixo segue a linha de programação comentada...

alterei a instrução SQL da minha consulta e posteriormente indiquei que um objeto listbox recebesse o resultado desta consulta, ou seja, se atualizasse...vai lá:

'declara variáveis objetos de Database e Query

Dim db As Database, qdf As QueryDef

'seta variavel db (database) com meu banco de dados atual

Set db = CurrentDb

'seta variavel qdf (querydef) com minha consulta qCliente do meu banco de dados atual

Set qdf = db.QueryDefs("qCliente")

'altera a SQL da minha varial qdf que, como está em conjuto, altera a instrução sql da minha consulta qCliente do meu banco de dados

qdf.SQL = "SELECT C.Cliente_Nome FROM tblCliente AS C;"

'faz o objeto listbox (lstQuery) do meu formulário receber o valor da consulta qCliente

Me.lstQuery.RowSource = qdf.SQL

Bom, isso já ajuda bastante...

mas gostaria de realmente criar uma consulta pelo VBA, não alterar a instrução de uma consulta...

tamo ainda na correria pra isso!

Retirei algumas informações do site "JR's Faq's"...créditos ao mesmo, gracias!

Abraços,

Link para o comentário
Compartilhar em outros sites

  • 0
Consegui alguma coisa...

na realidade, não consegui criar uma consulta pelo VBA, mas consegui alterar a instrução sql de uma consulta já criada...deu pra entender?

abaixo segue a linha de programação comentada...

alterei a instrução SQL da minha consulta e posteriormente indiquei que um objeto listbox recebesse o resultado desta consulta, ou seja, se atualizasse...vai lá:

'declara variáveis objetos de Database e Query

Dim db As Database, qdf As QueryDef

'seta variavel db (database) com meu banco de dados atual

Set db = CurrentDb

'seta variavel qdf (querydef) com minha consulta qCliente do meu banco de dados atual

Set qdf = db.QueryDefs("qCliente")

'altera a SQL da minha varial qdf que, como está em conjuto, altera a instrução sql da minha consulta qCliente do meu banco de dados

qdf.SQL = "SELECT C.Cliente_Nome FROM tblCliente AS C;"

'faz o objeto listbox (lstQuery) do meu formulário receber o valor da consulta qCliente

Me.lstQuery.RowSource = qdf.SQL

Bom, isso já ajuda bastante...

mas gostaria de realmente criar uma consulta pelo VBA, não alterar a instrução de uma consulta...

tamo ainda na correria pra isso!

Retirei algumas informações do site "JR's Faq's"...créditos ao mesmo, gracias!

Abraços,

Hello Galera do VB.

Curte ai...

Pra criar uma consulta em VBA, você faz isso aki...

Dim dbsAgTrei As DAO.Database
    Dim rstAgTrei As DAO.Recordset
    Dim strSql As String

'Uma consulta de atualização do campo ativo quando o te´rmino for menor que agora!

        strSql = "UPDATE Agenda SET Ativo = 0 WHERE ([Agenda].Termino)< Now();"
        DoCmd.RunSQL strSql, True

'Tambem pode ser uma Select.
        
        strSql_ = "SELECT Agenda.Colaborador FROM Agenda WHERE ([Agenda].Colaborador) = [me.colaborador] WITH OWNERACCESS OPTION;"
        DoCmd.RunSQL strSql_

Entendeu?

Espero ter ajudado

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...