Ako rýchlo aktualizovať prepojenú tabuľku pri zmene názvu externého súboru

Prepojené tabuľky môžu byť fantasticky užitočné (aj keď nie vždy), najmä keď pracujete s externými informáciami, ktoré sa pravidelne menia. Typickým príkladom môže byť prípad, keď vám dodávateľ poskytne prístup k ich aktuálnemu súboru s mesačnými cenami. Čo sa však stane, keď súbor vydajú budúci mesiac a názov súboru sa zmení z „Cenník 01“ na „Cenník 01“? Prvá vec, ktorá sa stane, je, že sa váš odkaz pokazí, takže ho budete musieť manuálne aktualizovať. Zakaždým, keď zmenia názov súboru. To platí aj pre názvy tabuliek (samozrejme!). Existuje spôsob, ako to urobiť rýchlo a ľahko, na čo sa pýtate? Sme radi, že ste sa pýtali - čítajte ďalej a dozviete sa, ako ...

Nastavenie scény - scenára

Správca prepojenej tabuľkyV tomto článku použijem fiktívny scenár - ale som si istý, že ho rýchlo spoznáte!

Obchodovanie Acme nám každý mesiac zasiela aktualizovaný cenník všetkých spotrebných materiálov používaných na DataNumen. Aby sme vedeli, koľko mesačne utratíme, prepojíme tento súbor v našej databáze správy kancelárií.

Zmeňte názov súboruProblémom je, že aj keď formát súboru zostáva rovnaký, názov súboru sa každý mesiac mení. Minulý mesiac to bolo „stacionárne okoloosts Jan 2017.xls “, tento mesiac je to„ stacionárne costs feb 2017.xls “.

Som si istý, že nebudete mať veľkú zmenu, ale budete súhlasiť, ale pokiaľ sa nedostaneme do problémov s manuálnym premenovaním súboru (akonáhle presunieme starý súbor z cesty alebo ho odstránime), alebo pokiaľ neprebehneme proces opätovné prepojenie tabuľky prostredníctvom prepojeného správcu tabuliek v Accesse.

Pretože sme to nechceli urobiť, vytvorili sme namiesto toho nasledujúci kód - oveľa jednoduchšie, ako som si istý, že uvidíte:

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) 'formát reťazca pripojenia v našom prípade, napríklad je: „Excel 5.0; HDR = YES; IMEX = 2; DATABASE = Názov súboru vrátane cesty a typu prípony newConnect =" Excel 5.0; HDR = YES; IMEX = 2; DATABASE = "& newFileName objTableDef.Connect = newConnect objTableDef.RefreshLink Set objTableDef = nič Set objDB = nič End Sub

Vysvetlenie kódu

Ako vidíte, odovzdáme (prepojený) názov tabuľky spolu s názvom nového súboru, s ktorým by mala byť tabuľka prepojená. Názov súboru by mal obsahovať úplnú cestu k súboru. Jednou z potenciálnych oblastí, s ktorou môžete zápasiť pri start získava správny formát reťazca pripojenia na umiestnenie do premennej „newConnect“. Aj keď existuje veľa zdrojov na zistenie správneho formátu, jedným z najjednoduchších, ktoré som našiel, je jednoducho pozrieť sa na pripojovací reťazec aktuálnej prepojenej tabuľky. Ak to chcete urobiť, jednoducho pridajte nasledujúci riadok priamo pod riadok „Set objTableDef = objDB.TableDefs (tableName)“:

Debug.Print (objTableDef.Connect)

To vytlačí existujúci pripojovací reťazec do okna ladenia / okamžitého editora kódu (ak to ešte nie je viditeľné, stlačte CTRL-G na obrazovke editora kódu VBA a prepnite viditeľnosť okna Immediate pred spustením kódu.

Varovanie

Ako vždy, nezabudnite, že zatiaľ čo útržok kódu uvedený vyššie vám môže pomôcť ušetriť čas, keď potrebujete zmeniť súbor, s ktorým je prepojená tabuľka, čo vám nemôže urobiť, je pomôcť vám, ak narazíte na akýkoľvek Poškodenie prístupového súboru, takže si nezabudnite zálohovať a viete, kam sa obrátiť, ak zlyhajú iné možnosti.

Úvod autora:

Mitchell Pond je expert na obnovu dát v DataNumen, Inc., ktorá je svetovým lídrom v oblasti technológií obnovy dát, vrátane opraviť poškodenie SQL a vynikajúce softvérové ​​produkty na obnovenie. Pre viac informácií navštívte www.datanumen. S

Nechaj odpoveď

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *