Questo sito utilizza cookie, anche di terze parti, per migliorare la tua esperienza e offrire servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie

Rimani informato sugli aggiornamenti di SOS-OFFICE. Inserisci il tuo indirizzo e-mail: Informativa sulla privacy

Abbiamo visto un post precedente quanto possono essere utili le query di Excel. Sono uno strumento potente e spesso poco utilizzato. Per renderlo ancora più efficace, può essere necessario un piccolo correttivo, dovuto al fatto, che Excel memorizza il percorso assoluto del file su cui si esegue la query, questo anche se si esegue la query sui dati contenuti nello stesso file in cui ne si chiede la restituzione (magari filtrati). Questo fa si che, anche se si ha a che fare con un file solo, se si sposta questo file, le query potrebbero non funzionare più.

Per risolvere facilmente il problema, basta eseguire, all'apertura della cartella di lavoro che contiene la query, del codcie VBA che aggiorna il nome del file sui cui si esegue la query, recuperandolo dal nome e dal percorso del file in uso (ActiveWorkbook.Path, ActiveWorkbook.Name)

Private Sub Workbook_Open()
Dim strPercoso As String
Dim strFile As String

strPercorso = ActiveWorkbook.Path
strFile = ActiveWorkbook.Name
strPercorsoCompleto = strPercorso & "/" & strFile

strConn = "ODBC; DSN=Excel Files;DBQ=" & strPercorsoCompleto & ";DefaultDir=" & _
strPercorso & ";DriverId=1046;MaxBufferSize=2048;PageTimeout=5;"

For Each connessione In ActiveWorkbook.Connections

With connessione.ODBCConnection
.BackgroundQuery = True
.Connection = strConn
.RefreshOnFileOpen = True
.SavePassword = False
.SourceConnectionFile = ""
.SourceDataFile = ""
.ServerCredentialsMethod = xlCredentialsMethodIntegrated
.AlwaysUseConnectionFile = False
End With
connessione.Refresh
Next
End Sub

Questo codice va scritto nel foglio di codice relativo alla cartella di lavoro. Non per uno specifico foglio

Commenti   

Alessandra
#2 Alessandra 2014-05-02 09:07
Citazione lovejester:
Attualmente il codice restituisce un runtime error 1004 :sad:


mi dispiace, ma mi è dificile capire il perchè...
Citazione
lovejester
#1 lovejester 2014-04-29 15:46
Attualmente il codice restituisce un runtime error 1004 :sad:
Citazione
Joomla templates by a4joomla