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

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ă a fost „staționar costs Jan 2017.xls”, luna aceasta este „staționar costs februarie 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) 'formatul șirului de conexiune în cazul nostru, de exemplu, este: ' Excel 5.0;HDR=YES;IMEX=2;DATABASE=Numele fișierului, inclusiv calea și tipul de extensie newConnect = "Excel 5.0;HDR=YES;IMEX=2;DATABASE=" & newFileName objTableDef.Connect = newConnect objTableDef.RefreshLink Set objTableDef = Nimic Set objDB = Nimic End Sub

Explicarea codului

După cum puteți vedea, transmitem numele tabelului (legat), împreună cu numele noului fișier la care ar trebui să fie legat tabelul. Numele fișierului ar trebui să includă calea completă către fișier. Un domeniu potențial cu care vă puteți lupta la start obține formatul corect pentru șirul de conexiune pentru a fi plasat în variabila „newConnect”. Deși există o mulțime de surse pentru a afla formatul corect, una dintre cele mai ușoare pe care le-am găsit este să mă uit pur și simplu la șirul de conexiune al tabelului legat curent. Pentru a face asta, pur și simplu adăugați 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

Lasă un comentariu

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate *