potrebbe capitare che pur avendo fatto vari tentativi, analisi e riavii del file una tabella SQL non si riesca a fare il refresh, dia un errore di connessione al database anche se la tabella punta direttamente ad un'altra scheda dello stesso file
prima di provare la procedura per lo sblocco manuale fa queste verifiche ed operazioni
verifiche
salvataggio dati/file
se la tabella che non si aggiorna é connessa con una scheda interna del file protrebbe essere che devi prima dell'aggiornamento fare il salvataggio del file
Excel va a prelevare i dati del file salvato, non quelli in memoria.
settaggi connessione
- proprietà connessione
verificha che nelle proprietà di connessione si tutto regolare e che la stringa del path e del file nella Connection file sia la stessa che appare nella Connection string
- path nel SQL FROM
non ci sia la path nel eventuale nome del file csv nel FROM della query SQL
la path non serve perché già presente nella Connection file quindi va rimossa
formato dati
- formato dati di origine
verifica che il formato dei dati nella colonna di orgine sia corretto
se si usano funzioni di conversione nella SELECT (CDbl, CDate, ecc...) occorre fare molta attenzione che i dati di origine abbiano lo stesso formato, cioé che la formattazione della colonna della tabella sia corretta
SQL verifica anche il formato di visualizzazione della colonna della tabella mentre prende i dati
- verifica e modifica solo i dati, non le intestazioni, delle colonne della tabella di origine interessati alle formule di conversione
- modificare quindi il formato dei dati delle colonne incide sul funzionamento della query
- errore 00/01/1990
controlla bene le date e soprattutto lo 0 che nelle date diventa 00/01/1990
capita che da un copia ed incolla Excel di colonne date non metta 0 ma una stringa "00/01/1990", a vista non si vede la diffrenza ma SQL non funziona
l'errore resituito in questo caso é
metti l'intera colonna in formato Generale e verifica che le date diventino tutte numeri, non restino sctitte come date (xx/xx/xxxx)
sovrascivi con uno 0 le eventuali date rimaste 00/01/1990
- origine dati da VLOOK
in caso nella colonna di origine non ci siano dei dati fissi ma delle formule di tipo VLOOK allora occorre verificare la provenienza del dato, il tipo ed un eventuale conversione automatica di Excel
se nella SQL é previsto che il dato sia un numero occorre fare attenzione che nel prelevare il dato con una VLOOK Excel esegue delle conversioni
esempio: un numero negativo -100 potrebbe essere convertito in testo senza che te ne accorgi anche se la colonna di destinazione é in formato Numero
fare quindi delle forzature inserendo nella formula VLOOK una funzione di conversione come VALORE (VALUE)
SQL UNION
se la query é una UNION con molte origini e molte tabelle a volte Excel da un errore senza reale motivo
individua la tabella nella union che da errore provandole tutte singolarmente
possibili soluzioni:
- righe vuote alla fine
potrebbe essere che una delle tabelle generi delle righe vuote alla fine senza ragione
inserire quindi una condizione WHERE in modo da impedire eventuali aggiunte
questo errore si verifica quando nelle SQL ci sono formule di conversione (CDbl, CDate, ecc...) che danno errore proprio nelle righe vuote aggiunte
esempio: limta il numero di righe automatiche importate impedendo le vuote
WHERE `_RowNum` >= 0
- ordine delle tabelle
modifica l'ordine delle tabelle nella UNION
metti all'inizio quella che magari da errore
procedura di sblocco manuale della situazione caso limte
segui bene la procedura e attento a non premere OK nel momento sbagliato
dalla finestra della Connection Properties
- fa una copia di backup del file prima di procedere
- copia sul un Notepad tutta la query SQL
- Command Type:→ Table
- bottone Browser: ripristina la connessione al file e della tabella/cartella
- NON PREMERE OK
- Connection string: la scritta da Write → None
- Command Type: da Table → SQL
- incolla la query SQL dal Notepad
- premi OK
in teoria hai ripristinato la connessione di nuovo ed ora eventuali errori dovrebbero essersi corretti