SQL.REQUEST (funzione SQL.REQUEST)

Questo articolo descrive la sintassi della formula e l'uso della funzione SQL.REQUEST in Microsoft Excel.

Importante : 

  • A partire da Excel 2010, l'esperienza Recupera e trasforma (Power Query) offre funzionalità avanzate per l'importazione dei dati da origini dati esterne e sostituisce efficacemente la funzione SQL.REQUEST.

  • La funzione SQL.REQUEST non è supportata nelle versioni successive a Microsoft Excel 2007.

  • Parte del contenuto di questo argomento potrebbe non essere applicabile per alcune lingue.

Descrizione

La funzione SQL.REQUEST si collega a un'origine dati esterna ed esegue una query da un foglio di lavoro. Restituisce quindi il risultato in forma di matrice senza necessità di programmare macro. Se la funzione non è disponibile, è necessario installare il componente aggiuntivo Microsoft Excel ODBC (XLODBC.XLA).

Sintassi

SQL.REQUEST(str_connessione; [rif_output],[driver_prompt]; [testo_query]; [logico_nomi_col])

Gli argomenti della sintassi della funzione SQL.REQUEST sono i seguenti:

  • Str_connessione     Obbligatorio. Fornisce al driver le informazioni necessarie, quali il nome dell'origine dati, l'ID utente e le password, per la connessione all'origine dati e deve essere conforme al formato del driver. Nella tabella seguente vengono illustrati tre esempi di stringhe di connessione per tre driver diversi.

Driver

str_connessione

dBASE

DSN=NWind;PWD=prova

SQL Server

DSN=MioServer;UID=elisab;PWD=123;Database=Alberghi

ORACLE

DNS=Fonte dati Oracle;DBQ=SERVER; UID=ChiaraL;PWD=Sesamo

  • È necessario definire il DSN (Nome della fonte dati, Data Source Name) utilizzato in str_connessione prima di connettersi.

  • È possibile immettere str_connessione come matrice o stringa. Se str_connessione supera i 250 caratteri, sarà necessario immetterlo come matrice.

  • Se SQL.REQUEST non è in grado di accedere alla fonte dati utilizzando str_connessione, la funzione restituirà il valore di errore #N/D.

  • Rif_output     Facoltativo. Riferimento di cella in cui si desidera venga inserita la stringa di connessione completa. Se viene digitato SQL.REQUEST in un foglio di lavoro, Rif_output verrà ignorato.

    • Utilizzare rif_output quando si desidera che SQL.REQUEST restituisca la stringa di connessione completa (in questo caso, SQL.REQUEST deve essere immesso su un foglio macro).

    • Se rif_output è omesso, SQL.REQUEST non restituirà una stringa di connessione completa.

  • Driver_prompt     Facoltativo. Specifica quando viene visualizzata la finestra di dialogo del driver e quali opzioni sono disponibili. Utilizzare uno dei numeri riportati nella tabella seguente. Se driver_prompt viene omesso, verrà considerato uguale a 2.

Driver_prompt

Descrizione

1

La finestra di dialogo del driver è sempre visualizzata.

2

La finestra di dialogo del driver viene visualizzata solo se le informazioni fornite dalla stringa di connessione e dalle specifiche della fonte dati non sono sufficienti per completare la connessione. Tutte le opzioni della finestra di dialogo sono disponibili.

3

La finestra di dialogo del driver viene visualizzata solo se le informazioni fornite dalla stringa di connessione e dalle specifiche della fonte dati non sono sufficienti per completare la connessione. Le opzioni della finestra di dialogo appaiono inattive e non sono disponibili se non vengono richieste.

4

La finestra di dialogo non è visualizzata. Se la connessione non viene effettuata, restituirà un errore.

  • Testo_query     Facoltativo. Istruzione SQL che si desidera eseguire sull'origine dati.

    • Se SQL.REQUEST non è in grado di eseguire testo_query sulla fonte dati specificata, restituirà il valore di errore #N/D.

    • È possibile aggiornare una ricerca concatenando dei riferimenti in testo_query. Nell'esempio che segue, ogni volta che $A$3 viene modificato, SQL.REQUEST utilizza il nuovo valore per aggiornare la query.

"SELECT Name FROM Customers WHERE Balance > "&$A$3&"".

In Microsoft Excel, la lunghezza delle stringhe è limitata a 255 caratteri. Se testo_query supera questa lunghezza, inserire la query in un intervallo di celle verticale e utilizzare l'intero intervallo come testo_query. I valori delle celle verranno concatenati in modo da creare l'istruzione SQL completa.

  • Logico_nomi_col     Facoltativo. Indica se i nomi di colonna vengono restituiti come prima riga dei risultati. Impostare questo argomento su VERO se si desidera che i nomi di colonna vengano restituiti come prima riga dei risultati. Utilizzare FALSO se non si desidera che i nomi di colonna vengano restituiti. Se logico_nomi_col viene omesso, SQL.REQUEST non restituirà i nomi di colonna.

Valore restituito

  • Se questa funzione esegue tutte le operazioni previste, restituirà una matrice con i risultati della query oppure il numero di righe interessate dalla query.

  • Se SQL.REQUEST non è in grado di accedere alla fonte dati utilizzando str_connessione, restituirà il valore di errore #N/D.

Osservazioni

  • La funzione SQL.REQUEST può essere immessa come matrice. In questo caso, SQL.REQUEST restituirà una matrice delle dimensioni dell'intervallo.

  • Se l'intervallo di celle è più esteso rispetto al risultato, SQL.REQUEST aggiungerà delle celle vuote alla matrice restituita per portarla alle dimensioni necessarie.

  • Se il risultato è più esteso rispetto all'intervallo immesso come matrice, SQL.REQUEST restituirà l'intera matrice.

  • Gli argomenti di SQL.REQUEST hanno un ordine diverso da quello degli argomenti della funzione di Visual Basic, Applications Edition SQLRequest.

Esempio

Si supponga di voler eseguire una query di un database dBASE denominato DBASE4. Quando si immette la seguente formula in una cella, verrà restituita una matrice dei risultati della query, avente come prima riga i nomi delle colonne.

SQL.REQUEST("DSN=NWind;DBQ=c:\msquery;FIL=dBASE4", c15, 2, "Select Custmr_ID, Due_Date from Orders WHERE order_Amt>100", TRUE)

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per i tuoi commenti e suggerimenti

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×