Passar parâmetro do Excel para a consulta do Access

4

Eu tenho um banco de dados Access (2010, mas eu também tentei o Office 2003) com muitas tabelas, formulários e consultas aninhadas que dependem de dados inseridos em um formulário, por exemplo. %código%. Agora quero vincular essa consulta ao Excel como fonte de dados externa, mas isso cria problemas:

Se eu usar a abordagem padrão "Dados - > Acesso", as consultas que dependem de formulários nem serão exibidas. Se eu criar um link para outra consulta e depois alterar o texto de comando na janela de propriedades da conexão para apontar para a consulta que realmente quero, recebo uma mensagem de erro ("A consulta não foi executada ou a tabela do banco de dados não pôde ser aberta. ").

Se eu usar o MS Query ("Dados - > De outras fontes - > Microsoft Query"), posso selecionar a consulta desejada, mas receber a mensagem de erro "Poucos parâmetros. Esperado 1".

Isso, é claro, faz todo o sentido porque a consulta depende de um formulário que não está disponível no Excel. Tentei usar parâmetros de consulta "reais" nessas consultas, mas é a mesma coisa. Eu realmente quero que o Excel pegue o valor em uma determinada célula e passe para a consulta do Access como parâmetro.

Assim, o mundo ideal ficaria assim: No Access, tenho um monte de consultas que dependem de parâmetros para fazer o seu trabalho. No Access, posso usar um formulário para permitir que o usuário insira esses valores. No Excel, esses parâmetros devem ser obtidos de determinadas células. Isso é possível?

    
por CaptainProton 15.04.2011 / 18:15

2 respostas

2

Capitão,

É possível, tenho 90% de certeza, fazer isso usando uma propriedade DAO.querydef e "parameters". Você também pode reescrever suas consultas sem parâmetros e usar o Gerenciador de consultas no Excel. Para obter ajuda sobre essas duas ideias, você pode começar em link .

    
por 17.04.2011 / 03:06
1

Eu nunca faço referência a um controle de formulário em uma consulta salva, a menos que seja absolutamente necessário, pela mesma razão que você encontrou - isso torna as consultas menos amplamente utilizáveis em virtude da dependência externa do formulário ser aberto.

O Access fornece várias maneiras de aplicar critérios a conjuntos de registros em tempo de execução, portanto, quase nunca há necessidade de configurar uma dependência em um controle de formulário.

Dito isto, se você pode se conectar ao seu banco de dados com DDE, ele deve ser capaz de fazer o trabalho. O DDE costumava ser o padrão para a mesclagem do Word dos bancos de dados do Access (para meu incômodo eterno). Ele inicia uma nova instância do Access (o que significa que, se você tiver segurança em nível de usuário, ela aguardará com um prompt de nome de usuário / senha e nunca abrirá seu banco de dados) e se comunicará com ele por meio de comandos DDE de estilo antigo . No seu caso, deve funcionar se você abrir os formulários necessários nos utilitários de inicialização do seu banco de dados. No entanto, se eles precisarem que os dados sejam preenchidos pelo usuário em tempo de execução, isso também não funcionará.

A solução final é dissociar suas consultas salvas dos formulários ou usar a sequência SQL bruta no Excel para recuperar os dados (sem a referência do formulário).

    
por 18.04.2011 / 01:41