none
Consulta referenciando celula no excel RRS feed

  • Pergunta

  • Boa noite pessoal, se alguem puder ajudar desde já agradeço.

    Estou usando essa instrução para pesquisar numa sheet do Excel o numero do pedido:

    select NF, Operacao, Cfop, Cliente, Emissao, Produto, Qtde, Valor, Estoque, Descricao, Pedido, VendaFutura from [Plan1$] Where Pedido=10434

    eu gostaria de referenciar uma celula (L9) onde nela eu colocaria o numero do pedido ao inves de toda vez ir la e trocar na instrução. Tem como fazer isso?
    terça-feira, 19 de maio de 2020 23:41

Todas as Respostas

  • Se eu não estiver enganado você pode fazer assim:

    select NF, Operacao, Cfop, Cliente, Emissao, Produto, Qtde, Valor, Estoque, Descricao, Pedido, VendaFutura from [Plan1$] Where Pedido=[Plan1$L9]

    quarta-feira, 20 de maio de 2020 10:15
  • Dessa forma que voce está tentando fazer não é possível.

    Acredito que será necessário criar uma função CLR para ler essa célula em especifico e ai voce incluir em sua consulta.


    Fabiano Carvalho

    quarta-feira, 20 de maio de 2020 13:26
  • Bom dia, tentei usar a instrução cfe. vc passou...porem da um erro.

    Mesmo assim agradeço pela atenção.
    quarta-feira, 20 de maio de 2020 14:37
  • Fabiano, bom dia. Não sei como fazer isso. Tem algum lugar onde possa ver como se faz dessa maneira?
    quarta-feira, 20 de maio de 2020 14:38
  • Boa noite pessoal, se alguem puder ajudar desde já agradeço.

    Estou usando essa instrução para pesquisar numa sheet do Excel o numero do pedido:

    select NF, Operacao, Cfop, Cliente, Emissao, Produto, Qtde, Valor, Estoque, Descricao, Pedido, VendaFutura from [Plan1$] Where Pedido=10434

    eu gostaria de referenciar uma celula (L9) onde nela eu colocaria o numero do pedido ao inves de toda vez ir la e trocar na instrução. Tem como fazer isso?

    Kalebe1970,

    Sinceramente referenciar uma célula em específica, talvez não seia desta forma.

    Vamos por parte, voce criou um Linked Server entre o Excel e o SQL Server?


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 20 de maio de 2020 21:33
  • Boa noite junior, posso mandar o arquivo caso queira dar uma olhada

    quarta-feira, 20 de maio de 2020 21:57
  • Kalebe1970,

    Não, não, gostaria de entender como você esta se conectando ao SQL Server e Excel?


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 20 de maio de 2020 22:06
  • estou usando dois arquivos (base = contendo os dados) e (Consulta = onde faço a pesquisa)

    uso esse código para acessar o arquivo do excel chamado base:

    Option Explicit
    'Criação das variáveis globais para utilização em todos os módulos
    Global str_Conexao 'As String
    Global ado_Conexao 'As ADODB.Connection
    Global str_Versao 'As String


    Sub Conectar_Excel()
      
        Dim Caminho As String
        Dim Arquivo As String
        
        Caminho = Planilha2.Range("c4")
        Arquivo = Planilha2.Range("c6")
        
        'Define string de Conexão
        str_Conexao = _
            "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};" & _
                    "DSN=TESTE_SQL;DBQ=" & Caminho & Arquivo & ";" _
                    & "ReadOnly=0;DefaultDir=" & Caminho & ";" _
                    & "DriverId=1046;FIL=excel 12.0;MaxBufferSize=2048;PageTimeout=5;"
        
        'Seta ADODB
        Set ado_Conexao = CreateObject("ADODB.Connection")
        
        'Abre Conexão
        ado_Conexao.Open str_Conexao
        
        
    End Sub
    quinta-feira, 21 de maio de 2020 02:35
  • Kalebe1970,

    Ok, obrigado, então você esta estabelecendo a conexão via aplicação!

    Então, desta forma que você esta fazendo, infelizmente não vai conseguir, temos alguma alternativas que seria através do uso do Linked Server combinando com a função OpenRowSet.

    O link abaixo poderá lhe ajudar a pensar na possibilidade de utilizar o Integration Services:

    https://www.sqlservercentral.com/articles/how-to-read-excel-cells-from-sql-server-integration-services


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quinta-feira, 21 de maio de 2020 22:35
  • sim.
    quarta-feira, 3 de junho de 2020 17:04