Lingitud tabelid võivad olla fantastiliselt kasulikud (kuigi mitte kogu aeg) – eriti siis, kui tegelete regulaarselt muutuva välisteabega. Tüüpiline näide võib olla see, kui tarnija annab teile juurdepääsu oma praegusele igakuisele hinnafailile. Mis saab aga siis, kui nad väljastavad faili järgmisel kuul ja faili nimi „Hinnakiri-01-01-2016” muutub nimeks „Hinnakiri-01-02-2016”? Esimene asi, mis juhtub, on see, et teie link katkeb, nii et peate seda käsitsi värskendama. Iga kord, kui nad failinime muudavad. See kehtib ka tabelinimede kohta (muidugi!). Kas on võimalik seda kiiresti ja lihtsalt teha, küsite? Meil on hea meel, et küsisite – loe edasi ja saa teada, kuidas…
Stseeni seadmine – stsenaarium

Acme kauplemine saadab meile iga kuu uuendatud hinnakirja kõigi kasutatavate tarbekaupade kohta DataNumen. Et teaksime, kui palju kulutame iga kuu statsionaarsetele asjadele, lingime selle failiga oma kontorihalduse andmebaasis.

Olen kindel, et nõustute sellega, et see ei ole palju muutunud, kuid kui me ei tee raskusi faili käsitsi ümbernimetamisega (kui oleme vana faili teelt teisaldanud või selle kustutanud) või läbime tabeli uuesti linkimine Accessis lingitud tabelihalduri kaudu.
Kuna me ei tahtnud seda teha, lõime selle asemel järgmise koodi – palju lihtsam, nagu kindlasti näete:
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
Koodi selgitamine
Nagu näete, edastame (lingitud) tabeli nime koos uue faili nimega, millega tabel peaks olema lingitud. Failinimi peaks sisaldama faili täielikku teed. Üks potentsiaalne valdkond, millega teil alguses raskusi võib olla, on ühendusstringi õige vormingu leidmine muutujasse „newConnect“. Kuigi õige vormingu leidmiseks on palju allikaid, on üks lihtsamaid, mille olen leidnud, lihtsalt vaadata praeguse lingitud tabeli ühendusstringi. Selleks lisage lihtsalt järgmine rida otse rea „Set objTableDef = objDB.TableDefs(tableName)“ alla:
Debug.Print (objTableDef.Connect)
See prindib olemasoleva ühenduse stringi välja koodiredaktori silumis-/vahetu aknasse (kui see pole veel nähtav, vajutage VBA koodiredaktori ekraanil klahvikombinatsiooni CTRL-G, et lülitada enne koodi käivitamist vahetu akna nähtavus sisse.
Hoiatus
Nagu alati, ärge unustage, et kuigi ülaltoodud koodilõik aitab teil säästa aega, kui peate muutma faili, millega tabel on lingitud, ei saa see teid aidata, kui teil tekib Juurdepääsu faili kahjustus, seega tehke kindlasti varukoopiaid ja teadke, kuhu pöörduda, kui muu ebaõnnestub.
Autori sissejuhatus:
Mitchell Pond on andmete taastamise ekspert DataNumen, Inc., mis on maailmas juhtiv andmete taastamise tehnoloogiate, sealhulgas SQL-i kahjustuste parandamine ja Exceli taastamise tarkvaratooted. Lisateabe saamiseks külastage www.datanumenCom