Condividi tramite

Creazione query Excel 2010 con parametri provenienti da una cella

Anonimo
2011-11-14T10:50:15+00:00

Buongiorno,

avrei la necessità di effettuare una query da excel su DB IBM DB2 risiedente su un server, quindi importando dati dall'esterno del client, ma passando come valori dei dati provenienti da una cella.

Esempio:

Cella A1 (risiede il numero contratto) - Cella A2 Formula --> Select (dal Server dove risiede il DB)Intestatario_contratto from (Tabella_Numero_Contratto) where Tabella_numero_contratto.numero_contratto=A1

Grazie mille

Saluti

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

5 risposte

Ordina per: Più utili
  1. Anonimo
    2011-11-16T14:47:23+00:00

    Devo passargli un valore alla volta, quindi la cella b1 farà riferimento alla a1 per prendere il parametro che gli serve x fare la query, la b2 dall'a2 etc.

    Questa soluzione, dovrò darla ai miei colleghi e l'intenzione è di dargli istruzioni e non fargli utilizzare macro, in modo che siano autosufficienti.

    Ti ringrazio del link che mi hai proposto ed ho dato un'occhiata ma non coincide con quanto vorrei fare.

    Mi sono accorto che non ho specificato che a livello di ODBC, ho già installato i driver e creato la connessione con il DB.

    A me servirebbe una funzione simile all'sql.request.

    Di seguito ti incollo sia l'esempio che l'indirizzo che c'è sulla pagina del supporto office (che corrisponde perfettamente a quanto vorrei fare)

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

    http://office.microsoft.com/it-it/excel-help/sql-request-funzione-sql-request-HP010342916.aspx

    Ciao e grazie per l'aiuto

    Roberto

    Che è supportato solo in Excel 2002( mi sembra di capire). E tu hai Excel 2010.  L'unica soluzione che mi viene in mente è una macro. Aspettiamo e vediamo se qualcuno ha un'altra risposta.

    0 commenti Nessun commento
  2. Anonimo
    2011-11-16T14:12:42+00:00

    Devo passargli un valore alla volta, quindi la cella b1 farà riferimento alla a1 per prendere il parametro che gli serve x fare la query, la b2 dall'a2 etc.

    Questa soluzione, dovrò darla ai miei colleghi e l'intenzione è di dargli istruzioni e non fargli utilizzare macro, in modo che siano autosufficienti.

    Ti ringrazio del link che mi hai proposto ed ho dato un'occhiata ma non coincide con quanto vorrei fare.

    Mi sono accorto che non ho specificato che a livello di ODBC, ho già installato i driver e creato la connessione con il DB.

    A me servirebbe una funzione simile all'sql.request.

    Di seguito ti incollo sia l'esempio che l'indirizzo che c'è sulla pagina del supporto office (che corrisponde perfettamente a quanto vorrei fare)

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

    http://office.microsoft.com/it-it/excel-help/sql-request-funzione-sql-request-HP010342916.aspx

    Ciao e grazie per l'aiuto

    Roberto

    0 commenti Nessun commento
  3. Anonimo
    2011-11-15T05:44:37+00:00

    Grazie per la risposta

    La soluzione che sto cercando è di collegarmi ad un DB DB2 direttamente dalla cella passandogli i valori da ricercare presenti in un'altra cella.

    Ho letto che con office 2000/2002 c'era l'addin sql.request, ma non è stato implementato nell'excel 2010.

    Per implementare l'esempio, nell'excel di un client, nella colonna A ho tutta una serie di numeri di contratto e nella colonna B voglio eseguire una query, che punta ad uno specifico server DB DB2,  che dia come risultato i dati anagrafici che corrispondono allo specifico contratto della colonna A

    Spero di essere riuscito ad essere più preciso

    Grazie

     

    Non ho capito se devi prelevare *un dato* solo alla volta(esempio solo per il contratto che hai nella cella A1) o per tutti i contratti presenti nella colonna A.

    In entrambi i casi, io lo farei con una macro(codice). Nel primo caso indicherò in qualche modo *quale cella* è quella che contiene il dato da passare al db per la ricerca, nel secondo caso ciclo tutte le celle della colonna ripetendo quanto sopra, oppure porto i dati in Excel per poi unirli alle celle(io preferisco la seconda soluzione).

    Qui trovi invece un articolo(sono tre pagine) che spiega come collegare Excel a DB2 con i wizard: http://www.databasejournal.com/features/db2/article.php/3685391/DB2-9-and-Microsoft-Excel-2007---Part-1-Getting-the-Data.htm

    0 commenti Nessun commento
  4. Anonimo
    2011-11-14T22:49:10+00:00

    Grazie per la risposta

    La soluzione che sto cercando è di collegarmi ad un DB DB2 direttamente dalla cella passandogli i valori da ricercare presenti in un'altra cella.

    Ho letto che con office 2000/2002 c'era l'addin sql.request, ma non è stato implementato nell'excel 2010.

    Per implementare l'esempio, nell'excel di un client, nella colonna A ho tutta una serie di numeri di contratto e nella colonna B voglio eseguire una query, che punta ad uno specifico server DB DB2,  che dia come risultato i dati anagrafici che corrispondono allo specifico contratto della colonna A

    Spero di essere riuscito ad essere più preciso

    Grazie

    0 commenti Nessun commento
  5. Anonimo
    2011-11-14T11:25:40+00:00

    Buongiorno,

    avrei la necessità di effettuare una query da excel su DB IBM DB2 risiedente su un server, quindi importando dati dall'esterno del client, ma passando come valori dei dati provenienti da una cella.

    Esempio:

    Cella A1 (risiede il numero contratto) - Cella A2 Formula --> Select (dal Server dove risiede il DB)Intestatario_contratto from (Tabella_Numero_Contratto) where Tabella_numero_contratto.numero_contratto=A1

    Grazie mille

    Saluti

    Non conoscendo il tuo contesto e neppure *che tipo di query* stai facendo e con *cosa*(codice? wizard? altro?), diventa difficile rispondere.

    La stringa SQL da passare ad un db SQLServer/Access sarebbe questa:

    "SELECT * FROM NOME_DELLA_TABELLA WHERE NOME_DEL_CAMPO = '" & NOME_DEL_FOGLIO.Range("A1").Value & "'"

    Occhio all'apice semplice dopo = e all'interno degli ultimi due doppi apici.

    Poi, come apri la connessione al server, questo non lo spieghi.

    0 commenti Nessun commento