none
Alterar Consulta SQL RRS feed

  • Pergunta

  •  

    Galera,

     

    tenho um relatorio onde eu faço uma nova consulta a banco de dados, e consulto Via ODBC um banco de dados em SQL SERVER;

    So que minha instrução sql é a seguinte:

     

    SELECT * FROM Fornecedores

               WHERE UF = 'SP'

     

     

    So qeu ai o usuario precisa entrar na instrução SQL e alterar a UF, sempre que ele precisa fazer uma nova consulta em outro estado...

     

    tentei uma solução que foi, retirar o WHERE, e trazer todos e fazer um filtro, so que são muitos registro, ficou inviável.

     

    Queria saber se tem alguma coisa .. acho qe via macro.. para eu mandar a UF via paramentro para a instrução SQL, alguem sabe me informar isso ????

     

    Abraços,

     

     

     

     

    terça-feira, 27 de novembro de 2007 16:41

Respostas

  • No Excel você pode colocar um parâmetro assim:

     

    SELECT * FROM Fornecedores

               WHERE UF = ?

     

    Ao executar a consulta, ele pedirá o valor do parâmetro.

     

    quinta-feira, 29 de novembro de 2007 00:23
    Moderador

Todas as Respostas

  • Passe a instrução SQL construída dentro de uma String.

     

     

    Code Block

    Dim strsql As String        'Declare uma string

     

        'Carregue a string
        strsql = "SELECT * FROM Fornecedores "

       

    'Você pode estar uma condição, se tiver um checkbox para utilizar o filtro de UF
        If CheckBox1.Value = True Then
            strsql = strsql & " WHERE UF = '" & textbox1.Text & "'"
        End If

    'Então passe a string como instrução SQL

     

    Abs,

    terça-feira, 27 de novembro de 2007 19:02
  • Oi Filippe,

     

    de qual ferramenta você está falando, é do Access?

     

    Se for, a sua consulta é uma Pass-Through?

     

    O caminho para isto é mudar o SQL da consulta via código:

     

    Code Block

    CurrentDB.QueryDefs("TuaConsulta").SQL="SELECT * FROM Fornecedores WHERE UF='" & Me.TuaComboUF & "'"

     

     

     

    terça-feira, 27 de novembro de 2007 23:15
    Moderador
  •  

    Olá Luiz Claudio,

     

    Esqueci de informar, mais é Excel....

     

    Eu queria fazer justamente o que vc me passou ai . so que para o Excel ...

    tem como tb ???

     

    Obrigado

    quarta-feira, 28 de novembro de 2007 11:02
  • No Excel você pode colocar um parâmetro assim:

     

    SELECT * FROM Fornecedores

               WHERE UF = ?

     

    Ao executar a consulta, ele pedirá o valor do parâmetro.

     

    quinta-feira, 29 de novembro de 2007 00:23
    Moderador
  •  

    Luiz Claudio ...

     

    Obrigado .. era exatamente isso que eu estava precisando ....

    So me da mais uma ajuda ... Eu montei um Select mais ou menos assim:

     

    SELECT Tempo.CodColecao, Tempo.CodProduto, Tempo.CodTipoProd, Tempo.CodMarca, Tempo.CodModelo
    FROM AquariusPTK.dbo.Tempo Tempo
    WHERE (Tempo.CodColecao=?) AND (Tempo.CodProduto=?)

     

    Ai abre uma janela para o primeiro parametro .. e abre a segunda janela para o 2º parametro...

    Tem como colocar uma mensagem para informar qual o parametro que vc esta enviando ???

     

    Abraços

    quinta-feira, 29 de novembro de 2007 14:29
  • Use o texto entre colchetes:

     

    SELECT tbl_AreaCliente.CodAreaCliente, tbl_AreaCliente.DescAreaCliente
    FROM itlab_viverdi.dbo.tbl_AreaCliente tbl_AreaCliente
    WHERE CodAreaCliente=[Informe a área]

     

    quinta-feira, 29 de novembro de 2007 22:32
    Moderador
  •  

    Exatamente isso que eu estava precisando ....

     

    Deu certinho para o que eu precisava ....

     

     

    Abraços e obrigado por mais uma ...

    sexta-feira, 30 de novembro de 2007 10:47