- Dettagli
- Scritto da Alessandra
- Pubblicato: 26 Ottobre 2011
- Visite: 15056
In post precedente avevamo spiegato come realizzare, tramite una query, una tabella pivot che riepiloga i dati di più fogli di lavoro.
Avevamo già accennato al fatto che l'indirizzo del file coi dati, anche se è lo stesso dove si trova la tabella pivot, è memorizzato con tutto il suo percorso, all'interno del file con la tabella pivot e che, dunque, se si sposta o rinomina il file occorre aggiornare la stringa di connessione.
Oggi vi proponiamo la routine visual basic che aggiorna automaticamente la connessione. Noi abbiamo i dati e la pivot nello stesso file, per cui in apertura, andremo a leggere il nome e il percorso del nostro file e con quello costruiremo la stringa di connessione della query, che risulterà sempre corretta, anche se spostiamo il file.
Se i dati si trovano in un file diverso da quello con la pivot, potreste scrivere il nome e il percorso in apposite celle e leggerlo da li, magari non all'apertura del file, ma alla pressione di un apposito pulsante.
Noi abbiamo scritto questo codice sul modulo associato all'intera cartella di lavoro
Private Sub Workbook_Open()
Dim strPercoso As String
Dim strFile As String
strPercorso = ActiveWorkbook.Path
strFile = ActiveWorkbook.Name
strConn = "ODBC; DSN=Excel Files;DBQ=" & strPercorso & "" _
& strFile & ";DefaultDir=" & _
strPercorso & ";DriverId=1046;MaxBufferSize=2048;PageTimeout=5;"
ActiveWorkbook.PivotCaches(1).Connection = strConn
End Sub
Noi immaginiamo che nel file ci sia solo una tabella pivot. PivotCaches è un insieme rappresenta tutte le cache di tabella pivot nella cartella di lavoro specificata. Fra le parentesi tonde indichiamo il numero di indice della tabella pivot su cui vogliamo intervenire.