Hivatkozott tábla gyors frissítése, ha a külső fájlnév megváltozik

Oszd meg most:

A linkelt táblázatok fantasztikusan hasznosak lehetnek (bár természetesen nem mindig) – különösen, ha rendszeresen változó külső információkkal van dolgunk. Tipikus példa lehet az, amikor egy szállító hozzáférést biztosít az aktuális havi árfájljához. De mi történik, ha a következő hónapban kiadják a fájlt, és a fájl neve „01-01-2016-ről” „01-02-2016-re” változik? Az első dolog, ami meg fog történni, hogy a link megszakad, ezért manuálisan kell frissítenie. Minden alkalommal, amikor megváltoztatják a fájl nevét. Ez vonatkozik a táblanevekre is (természetesen!). Kérdezi, van erre mód gyorsan és egyszerűen? Örülünk, hogy megkérdezte – olvasson tovább, és megtudja, hogyan…

A helyszín beállítása – a forgatókönyv

Összekapcsolt táblázatkezelőEbben a cikkben egy kitalált forgatókönyvet fogok használni – de egyet biztosan gyorsan felismersz!

Az Acme trading minden hónapban frissített árlistát küld nekünk az összes használt fogyóeszközről DataNumen. Annak érdekében, hogy tudjuk, mennyit költünk helyhez kötött eszközökre havonta, hivatkozunk erre a fájlra az irodai adatbázisunkban.

Módosítsa a fájl nevétA probléma az, hogy bár a fájl formátuma ugyanaz marad, a fájlnév minden hónapban változik. Múlt hónapban „állomásszerszám költségek 2017. január.xls” volt, ebben a hónapban pedig „állomásszerszám költségek 2017. február.xls”.

Nem sok változás, biztos vagyok benne, hogy egyetért, de hacsak nem esünk át a fájl manuális átnevezésével (miután a régi fájlt elmozdítottuk az útból, vagy töröltük), vagy a táblázat újrakapcsolása az Access csatolt táblakezelőjén keresztül.

Mivel nem akartuk ezt megtenni, helyette létrehoztuk a következő kódot – sokkal könnyebben, ahogy biztosan látni fogja:

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

A kód magyarázata

Amint látható, átadjuk a (csatolt) tábla nevét, valamint az új fájl nevét, amelyhez a táblát csatolni kell. A fájlnévnek tartalmaznia kell a fájl teljes elérési útját. Az elején egy lehetséges probléma lehet a megfelelő formátum megtalálása a kapcsolódási karakterlánchoz, amelyet a „newConnect” változóba kell helyezni. Bár számos forrás létezik a helyes formátum megtalálására, az egyik legegyszerűbb, amit találtam, az, ha egyszerűen megnézzük az aktuális csatolt tábla kapcsolódási karakterláncát. Ehhez egyszerűen adjuk hozzá a következő sort közvetlenül a „Set objTableDef = objDB.TableDefs(tableName)” sor alá:

Debug.Print (objTableDef.Connect)

Ez kinyomtatja a meglévő kapcsolati karakterláncot a kódszerkesztő hibakeresési/azonnali ablakába (ha ez még nem látható, nyomja meg a CTRL-G billentyűkombinációt a VBA kódszerkesztő képernyőn belül, hogy átkapcsolja az azonnali ablak láthatóságát a kód futtatása előtt.

Egy figyelmeztetés

Mint mindig, ne felejtse el, hogy bár a fenti kódrészlet segítségével időt takaríthat meg, amikor módosítania kell a táblázathoz csatolt fájlt, de nem tud segíteni, ha bármilyen A hozzáférési fájl sérülése, ezért ügyeljen arra, hogy készítsen biztonsági másolatot, és tudja, hová forduljon, ha minden más nem sikerül.

Szerző Bevezetés:

Mitchell Pond adat-helyreállítási szakértő DataNumen, Inc., amely világelső az adat-helyreállítási technológiák területén, beleértve SQL károk javítása és Excel helyreállítási szoftvertermékek. További információért látogasson el www.datanumen.com

Oszd meg most:

Hozzászólások lezárva.