Cum să actualizați rapid un tabel legat atunci când numele fișierului extern este schimbat

Distribuie acum:

Tabelele legate pot fi extraordinar de utile (deși nu tot timpul, desigur) – mai ales atunci când aveți de-a face cu informații externe care se schimbă în mod regulat. Un exemplu tipic ar putea fi atunci când un furnizor vă oferă acces la fișierul actual al prețurilor lunare. Dar ce se întâmplă atunci când emit fișierul luna viitoare și numele fișierului se schimbă din „Pricelist-01-01-2016” în „Pricelist-01-02-2016”? Primul lucru care se va întâmpla este că linkul dvs. se va rupe, așa că va trebui să îl actualizați manual. De fiecare dată când schimbă numele fișierului. Asta este valabil și pentru numele tabelelor (desigur!). Întrebați că există vreo modalitate de a face acest lucru rapid și ușor? Ne bucurăm că ați întrebat – citiți mai departe și aflați cum...

Stabilirea scenei – scenariul

Manager tabel conectatÎn acest articol, voi folosi un scenariu fictiv – dar unul pe care sunt sigur că îl veți recunoaște rapid!

În fiecare lună, Acme trading ne trimite o listă de prețuri actualizată pentru toate consumabilele utilizate la DataNumen. Pentru a ști cât de mult vom cheltui pe pape în fiecare lună, trimitem la acel fișier din baza noastră de date de gestionare a biroului.

Schimbați numele fișieruluiProblema este că, deși formatul fișierului rămâne același, numele fișierului se schimbă în fiecare lună. Luna trecută era „costuri staționare ian. 2017.xls”, iar luna aceasta este „costuri staționare feb. 2017.xls”.

Nu o schimbare prea mare, sunt sigur că veți fi de acord, dar dacă nu trecem prin problemele de a redenumi manual fișierul (odată ce am mutat fișierul vechi din cale sau l-am șters) sau trecem prin procesul de reconectarea tabelului prin managerul de tabel conectat în Access.

Pentru că nu am vrut să facem acest lucru, am creat următorul cod pentru a face acest lucru - mult mai ușor, așa cum sunt sigur că veți vedea:

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

Explicarea codului

După cum puteți vedea, transmitem numele tabelului (legat), împreună cu numele noului fișier la care tabelul ar trebui să fie legat. Numele fișierului ar trebui să includă calea completă către fișier. O problemă cu care ați putea întâmpina dificultăți la început este obținerea formatului corect pentru șirul de conexiune care să fie plasat în variabila „newConnect”. Deși există numeroase surse pentru a afla formatul corect, una dintre cele mai ușoare metode pe care le-am găsit este să vă uitați pur și simplu la șirul de conexiune al tabelului legat curent. Pentru a face acest lucru, adăugați pur și simplu următoarea linie direct sub linia „Set objTableDef = objDB.TableDefs(tableName)”:

Debug.Print (objTableDef.Connect)

Aceasta va imprima șirul de conexiune existent în fereastra de depanare/imediată a editorului de cod (dacă nu este deja vizibil, apăsați CTRL-G din ecranul editorului de cod VBA pentru a comuta vizibilitatea ferestrei Imediat înainte de a rula codul.

Un avertisment

Ca întotdeauna, nu uitați că, deși fragmentul de cod de mai sus vă poate ajuta să economisiți timp atunci când trebuie să schimbați fișierul la care este legat un tabel, ceea ce nu poate face este să vă ajute dacă întâlniți vreunul. Deteriorarea fișierului de acces, așa că asigurați-vă că păstrați copii de siguranță și știți unde să apelați dacă toate celelalte nu reușesc.

Introducerea autorului:

Mitchell Pond este un expert în recuperarea datelor DataNumen, Inc., care este lider mondial în tehnologiile de recuperare a datelor, inclusiv reparați daunele SQL și produse software de recuperare Excel. Pentru mai multe informații vizitați www.datanumen.com

Distribuie acum:

Comentariile sunt închise.