Come aggiornare rapidamente una tabella collegata quando viene modificato il nome del file esterno

Condividi ora:

Le tabelle collegate possono essere straordinariamente utili (anche se non sempre ovviamente), in particolare quando hai a che fare con informazioni esterne che cambiano regolarmente. Un tipico esempio potrebbe essere quando un fornitore ti dà accesso al suo attuale file dei prezzi mensili. Ma cosa succede quando rilasciano il file il mese prossimo e il nome del file cambia da "Pricelist-01-01-2016" a "Pricelist-01-02-2016"? La prima cosa che accadrà è che il tuo collegamento si interromperà, quindi dovrai aggiornarlo manualmente. Ogni volta che cambiano il nome del file. Questo vale anche per i nomi dei tavoli (ovviamente!). C'è un modo per farlo in modo rapido e semplice, chiedi? Siamo lieti che tu l'abbia chiesto: continua a leggere e scopri come...

Impostazione della scena - lo scenario

Gestore tabelle collegateIn questo articolo userò uno scenario immaginario, ma sono sicuro che lo riconoscerai rapidamente!

Ogni mese, Acme trading ci invia un listino prezzi aggiornato per tutti i materiali di consumo utilizzati a DataNumen. Per sapere quanto spenderemo per la cancelleria ogni mese, ci colleghiamo a quel file nel nostro database di gestione dell'ufficio.

Cambia il nome del fileIl problema è che, anche se il formato del file rimane lo stesso, il nome del file cambia ogni mese. Il mese scorso era “stazionario costs Jan 2017.xls”, questo mese è “stazionario costs feb 2017.xls”.

Non è un gran cambiamento, sono sicuro che sarai d'accordo, ma a meno che non affrontiamo il problema di rinominare il file manualmente (una volta che abbiamo spostato o eliminato il vecchio file), o non passiamo attraverso il processo di ricollegare la tabella tramite il gestore tabelle collegate in Access.

Poiché non volevamo farlo, abbiamo creato il seguente codice per farlo, molto più semplice come sono sicuro che vedrai:

Public Sub UpdateLink (tableName As String, newFileName As String)
    Dim objDB As Database
    Dim objTableDef As TableDef
    Dim newConnect as String
    
    Set objDB = CurrentDb
    Set objTableDef = objDB.TableDefs(tableName)

    'format of the connection string in our case, for example, is:
    ' Excel 5.0;HDR=YES;IMEX=2;DATABASE=File name including path and extension type
    newConnect = "Excel 5.0;HDR=YES;IMEX=2;DATABASE=" & newFileName
    objTableDef.Connect = newConnect
    objTableDef.RefreshLink

    Set objTableDef = Nothing
    Set objDB = Nothing
End Sub

Spiegazione del codice

Come puoi vedere, passiamo il nome della tabella (collegata), insieme al nome del nuovo file a cui la tabella dovrebbe essere collegata. Il nome del file deve includere il percorso completo del file. Una potenziale area con cui potresti lottare alla start sta ottenendo il formato corretto per la stringa di connessione da inserire nella variabile "newConnect". Sebbene ci siano molte fonti per scoprire il formato corretto, una delle più facili che ho trovato è semplicemente guardare la stringa di connessione della tabella collegata corrente. Per farlo, aggiungi semplicemente la seguente riga direttamente sotto la riga "Set objTableDef = objDB.TableDefs(tableName)":

Debug.Print (objTableDef.Connect)

Ciò stamperà la stringa di connessione esistente nella finestra di debug/immediata dell'editor di codice (se non è già visibile, premi CTRL-G dalla schermata dell'editor di codice VBA per attivare o disattivare la visibilità della finestra Immediata prima di eseguire il codice.

Un avvertimento

Come sempre, non dimenticare che mentre lo snippet di codice sopra può aiutarti a risparmiare tempo quando devi modificare il file a cui è collegata una tabella, ciò che non può fare è aiutarti se ne incontri uno Accedi ai file danneggiati, quindi assicurati di conservare i backup e di sapere a chi rivolgerti se tutto il resto fallisce.

Introduzione dell'autore:

Mitchell Pond è un esperto di recupero dati in DataNumen, Inc., che è il leader mondiale nelle tecnologie di recupero dati, tra cui riparare i danni SQL ed eccellere prodotti software di recupero. Per maggiori informazioni visita www.datanumen.com

Condividi ora:

I commenti sono chiusi.