SQL.REQUERER (Função SQL.REQUERER)
O conteúdo deste tópico pode não se aplicar a alguns idiomas.
Importante A função SQL.REQUERER não tem suporte no Microsoft Excel 2010. O Suplemento do Excel 2002: ODBC (XLODBC.XLA) só tem suporte no Excel 2002.
Este artigo descreve a sintaxe da fórmula e o uso da FUNÇÃO SQL.REQUERER no Excel.
Descrição
Conecta-se a uma fonte de dados externa e executa uma consulta a partir de uma planilha. SQL.REQUERER retorna o resultado como uma matriz e não é necessária a programação de macro. Se essa função não estiver disponível, instale o PROGRAMA SUPLEMENTAR ODBC (XLODBC.XLA) do Microsoft Excel. Você pode instalar o suplemento a partir do site Microsoft Office Web.
Sintaxe
SQL.REQUERER(cadeia_conexão,[ref_saída],[aviso_driver],[texto_consulta],[nomes_col_lógico])
A sintaxe da função SQL.REQUERER tem os seguintes ARGUMENTOS :
- cadeia_conexão Obrigatório. Fornece informações, como o nome da fonte de dados, identificação do usuário e senhas, exigidas pelo driver usado para conectar uma fonte de dados e deve seguir o formato do driver. A tabela a seguir fornece três exemplos de cadeias de conexão para três drivers.
| Driver | Cadeia_conexão |
|---|---|
| dBASE | DSN=NWind;PWD=test |
| SQL Server | DSN=MeuServidor;UID=dbayer;PWD=123;Database=Pubs |
| ORACLE | DNS=Minha fonte de dados Oracle;DBQ=MEUSERVIDOR;UID=JonhS;PWD=Sesame |
- Você deve definir o DSN (nome da fonte de dados) usado na cadeia_conexão antes de tentar conectá-la.
- Você pode inserir cadeia_conexão como uma matriz ou cadeia de caracteres. Se cadeia_conexão exceder 250 caracteres, insira-a como uma matriz.
- Se SQL.REQUERER não acessar as fontes de dados usando cadeia_conexão, o valor de erro #N/D será retornado.
- Ref_saída Opcional. Uma referência de célula na qual você deseja posicionar a cadeia de conexão completa. Se você inserir SQL.REQUERER em uma planilha, ref_saída será ignorada.
- Use ref_saída quando desejar que SQL.REQUERER retorne a cadeia de conexão completa (neste caso, insira SQL.REQUERER em uma folha de macro).
- Se você omitir ref_saída, SQL.REQUERER não retornará uma cadeia de conexão completa.
- Aviso_driver Opcional. Especifica quando a caixa de diálogo do driver é exibida e quais as opções disponíveis. Use um dos números descritos na tabela a seguir. Se aviso_driver for omitido, SQL.REQUERER usará 2 como padrão.
| Aviso_driver | Descrição |
|---|---|
| 1 | A caixa de diálogo do driver é sempre exibida. |
| 2 | A caixa de diálogo do driver só será exibida se as informações fornecidas pela cadeia de conexão e a especificação da fonte de dados não forem suficientes para completar a conexão. Todas as opções da caixa de diálogo estão disponíveis. |
| 3 | A caixa de diálogo do driver só será exibida se as informações fornecidas pela cadeia de conexão e a especificação da fonte de dados não forem suficientes para concluir a conexão. As opções da caixa de diálogo aparecem esmaecidas e não disponíveis caso não sejam obrigatórias. |
| 4 | A caixa de diálogo do driver não é exibida. Se a conexão não for bem-sucedida, um erro será retornado. |
- Texto_consulta Opcional. A instrução SQL que você deseja executar na fonte de dados.
- Se SQL.REQUEST não executar texto_consulta na fonte de dados especificada, o valor de erro #N/D será retornado.
- Você pode atualizar uma consulta concatenando referências em texto_consulta. No exemplo a seguir, sempre que $A$3 mudar, SQL.REQUERER usará o novo valor para atualizar a consulta.
"SELECT Nome FROM Clientes WHERE Saldo > "&$A$3&"".
O Microsoft Excel limita as cadeias de caracteres a um tamanho de 255 caracteres. Se texto_consulta ultrapassar esse tamanho, insira a consulta em um intervalo vertical de células e use o intervalo inteiro como texto_consulta. Os valores das células são concatenados para formar a instrução SQL completa.
- Nomes_col_lógico Opcional. Indica se nomes de coluna são retornados como a primeira linha dos resultados. Defina este argumento como VERDADEIRO se desejar que os nomes de coluna sejam retornados como a primeira linha dos resultados. Use FALSO se não desejar que os nomes de coluna sejam retornados. Se nomes_col_lógico for omitido, SQL.REQUERER não retornará nomes de coluna.
Valor de retorno
- Se esta função concluir todas as ações, ela retornará uma matriz de resultados de consulta ou o número de linhas afetadas pela consulta.
- Se SQL.REQUERER não acessar a fonte de dados usando cadeia_conexão, o valor de erro #N/D será retornado.
Comentários
- SQL.REQUERER pode ser inserida como uma matriz. Quando você inserir SQL.REQUERER como uma matriz, será retornada uma matriz que se ajuste ao tamanho do intervalo.
- Se o intervalo de células for maior do que o conjunto de resultados, SQL.REQUERER adicionará células vazias à matriz retornada para aumentá-la de acordo com o tamanho necessário.
- Se o conjunto de resultados for maior do que o intervalo inserido como uma matriz, SQL.REQUERER retornará a matriz inteira.
- Os argumentos de SQL.REQUERER encontram-se em uma ordem diferente daqueles da função SQLRequest no Visual Basic for Applications.
Exemplo
Suponha que você deseje fazer uma consulta em um banco de dados do dBASE denominado DBASE4. Quando você inserir a fórmula a seguir em uma célula, uma matriz de resultado de consulta será retornada, sendo que a primeira linha será composta por nomes de coluna:
SQL.REQUEST("DSN=NWind;DBQ=c:\msquery;FIL=dBASE4", c15, 2, "Select Custmr_ID, Due_Date from Orders WHERE order_Amt>100", TRUE)