Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [Excel 2010] ActiveWorkbook.RefreshAll

    Buongiorno a tutti.
    descrivo il problema e faccio la domanda direttamente per utenti esperti.

    Ho riscontrato un bug molto grave nel codice ActiveWorkbook.RefreshAll

    Se ho un file excel con 2 tab, dove tramite driver odbc:
    collego nel primo tab una base dati collegata a una tabella presente in Access2010
    collego nel secondo tab una base dati collegata a una query presente in Access2010

    Quando tento l'aggiornamento tramite il codice vba il file si aggiorna correttamente.

    - Se però rinomino la tabella di access che è collegata nel primo tab e rieseguo il codice, excel tenta l'aggiornamento e non rilascia errori.
    Aggiorna la query del tab2 e lascia la tabella del tab1 con i vecchi dati. (sbagliato)

    - Se invece tolgo il tab con la query e tento l'aggiornamento il vba rilascia errore di odbc com'è giusto che faccia.

    Sembra quindi che la funzione ActiveWorkbook.RefreshAll funzioni correttamente senza questo bug solo se non si collegano fonti derivate da query.

    Qualcuno di voi ha già notato il problema e ha trovato una strada alternativa? (senza dover applicare l'aggiornamento singolo per ogni fonte, questo perchè alcuni dei file che gestisco sono enormi e diventerebbero molto poco gestibile oltre che scomodo)

    Grazie

  2. #2
    Ho avuto risposta dalla microsoft e mi è stato comunicato che è un effettivo bug che è stato preso in carico.

    Rimaniamo in attesa di un bel aggiornamento!

    Nel frattempo fate attenzione se collegate tabelle e query in tab differenti

  3. #3
    é un buco del software, sono passati alla parte di correzione del codice.. il problema verrà risolto con un futuro aggiornamento.

    Nel frattempo mi hanno dato questo codice:
    codice:
    CommandBars.FindControl(ID:=1952).Execute
    che permette di eseguire la stessa azione della funzione "ActiveWorkbook.RefreshAll" con la differenza che richiama il comando da menu. (il comando da menu non da problemi)

    by

  4. #4
    Dopo svariati test mi sono accorto che il codice fornito dalla microsoft non funziona bene.. in un determinato caso (che non sto qui a spiegarvi perchè è lunga) i dati non vengono aggiornati e non avete modo di accorgervene perchè non viene rilasciato nessun errore!

    Mi hanno fornito un nuovo codice che è decisamente più ottimale e dai test fatti su tutte le mie procedure sembra che finalmente ci siamo!

    A voi:

    codice:
    Dim i as integer
    For i = 1 To ActiveWorkbook.Connections.Count
        ActiveWorkbook.Connections(i).Refresh
    Next

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.