Executar uma consulta SQL com um parâmetro do Excel 2007

21

Eu tenho uma consulta em uma tabela do Excel. Eu segui isso para fazer isso.

Mas como posso adicionar um parâmetro de uma célula à minha consulta?

Estou procurando uma maneira de fazer isso:

select *
from dbo.Customers
where CustomerID = Cell.A2

O Cell.A2 não funciona. Mas como posso adicionar algo parecido, para que o conteúdo de uma célula seja usado na minha consulta?

Vaccano
fonte
Você já tentou nomear a célula e depois usar o nome na consulta em vez da referência à célula?

Respostas:

17

Não sei por que a MS tornou isso tão complicado, você terá que usar o Microsoft Query.

Clique em Dados -> De Fontes Externas -> Da Microsoft Query. Escolha a fonte de dados. Selecione SQL Server, insira os detalhes de autenticação e selecione a tabela

insira a descrição da imagem aqui

Clique em Avançar, não selecione nenhum critério de filtragem, escolha classificar por critérios, clique em Avançar. Agora, clique em Exibir / Editar no MS Query em vez de selecionar Retornar ao Excel

insira a descrição da imagem aqui

Clique em Concluir. Agora no MS Query, clique em Critérios -> Adicionar Critérios, escolha o operador e deixe o valor ser[]

insira a descrição da imagem aqui

Clique em Arquivo -> retornar dados ao Excel. Agora, o Excel deve solicitar o parâmetro, selecione a célula relevante

insira a descrição da imagem aqui

Para editar os parâmetros, clique em Dados -> Propriedades -> ícone de dedo -> Definição -> parâmetros

insira a descrição da imagem aqui


Você também pode usar o editor de consultas SQL e digitar a consulta com as junções e colocar um ?no campo em que o parâmetro deve ser buscado.

insira a descrição da imagem aqui

Sathyajith Bhat
fonte
Infelizmente, os parâmetros estão desativados.
Vaccano
@Vaccano: Revamped minha resposta, por favor, dê uma olhada
Sathyajith Bhat
Obrigado pelo esforço neste Sathya. Infelizmente, percebi que, porque minha consulta tem algumas junções, o MS Query não pode exibi-lo graficamente. Isso faz com que você não possa ter parâmetros. Eu vou fazer isso como uma função VBA. Estou concordando com você porque sua resposta foi completa.
Vaccano 11/11/10
2
@Vaccano: Você pode escrever a consulta usando o editor de SQL, e colocar um ?contra o campo no qual o parâmetro tem que ser selecionado i.imgur.com/NgXxc.png
Sathyajith Bhat
2
Descobri que, uma vez que a consulta está no Excel, você pode ir para a tela de parâmetros de consulta e editá-la lá sem entrar no MS Query novamente. Basta soltar um? onde os critérios vão. Em seguida, volte para a tela de propriedades da conexão e atribua esse parâmetro a uma célula na planilha.
precisa
1

Nunca é tarde para um plug descarado ...

Existe este ótimo plugin para Excel ... (aviso: sou o autor)

É um plug-in do Excel que adiciona um mecanismo de banco de dados e um IDE SQL ao Excel.

Ele permite que você execute operações SQL em qualquer coisa marcada como uma tabela dentro do Excel. Você pode consultar as pastas de trabalho e também usar tabelas de um banco de dados externo (SQL Server / Sqlite / Postgres / Access / MySql) na mesma consulta.

Possui destaque de sintaxe SQL, conclusão de instruções e várias outras coisas interessantes. Ele usa o SQLite sob o capô, mas pode usar mecanismos db externos para processar os dados também.

Eu cobro por isso, mas há uma avaliação gratuita que você pode usar por 30 dias. Chama-se ThingieQuery.

Desculpe pelo plugue, espero que não seja muito inapropriado.

Antonio Nakic Alfirevic
fonte
-1

Coloque o valor como

where employeecode = '?'

Isso ativará o botão de parâmetro, mas quando você pressionar ok, ele será solicitado.

Aprendiz lento
fonte