Холбогдсон хүснэгтүүд нь гайхалтай ашигтай байж болох юм (гэхдээ мэдээжийн хэрэг үргэлж биш), ялангуяа тогтмол өөрчлөгдөж байдаг гадны мэдээлэлтэй харьцах үед. Нийлүүлэгч танд тухайн сарын үнийн файлыг үзэх боломжийг олгоход ердийн жишээ байж болно. Гэхдээ тэд ирэх сард файлаа гаргаад файлын нэр нь "Pricelist-01-01-2016" байснаа "Pricelist-01-02-2016" болж өөрчлөгдөхөд юу болох вэ? Хамгийн эхний зүйл бол таны холбоос тасрах тул та үүнийг гараар шинэчлэх хэрэгтэй болно. Тэд файлын нэрийг өөрчлөх бүрдээ. Энэ нь хүснэгтийн нэрсэд хамаарна (мэдээжийн хэрэг!). Үүнийг хурдан бөгөөд амархан хийх арга байна уу? Таныг асуусанд бид баяртай байна - уншиж, хэрхэн яаж олж мэдээрэй ...
Үйл явдлыг тохируулах
Энэ нийтлэлд би зохиомол хувилбар ашиглах болно, гэхдээ та үүнийг хурдан таних болно гэдэгт итгэлтэй байна!
Сар бүр Acme арилжаа нь хэрэглэгддэг бүх хэрэглээний бүтээгдэхүүний шинэчилсэн үнийн жагсаалтыг бидэнд илгээдэг DataNumen. Бид сар бүр хөдөлгөөнгүй байдалд хэдэн төгрөг зарцуулахаа мэдэхийн тулд оффисын менежментийн мэдээллийн санд байгаа файлтай холбож өгдөг.
Асуудал нь файлын формат хэвээрээ байгаа ч файлын нэр сар бүр өөрчлөгддөгт оршино. Өнгөрсөн сард энэ нь “биечлэнгийн зардал 2017 оны 1-р сар.xls” байсан бол энэ сард “биечлэнгийн зардал 2017 оны 2-р сар.xls” болсон.
Өөрчлөлт тийм ч их биш байх болно гэдэгт би итгэлтэй байна, гэхдээ файлын нэрийг гараар солих асуудал гарахгүй бол (хуучин файлыг замаас нь хуулж эсвэл устгасны дараа) эсвэл Access-т холбогдсон хүснэгт менежерээр дамжуулан хүснэгтийг дахин холбох.
Бид үүнийг хийхийг хүсээгүй тул оронд нь үүнийг хийхийн тулд дараах кодыг үүсгэсэн болно.
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
Кодыг тайлбарлаж байна
Таны харж байгаагаар бид (холбогдсон) хүснэгтийн нэрийг хүснэгтийг холбох ёстой шинэ файлын нэртэй хамт дамжуулдаг. Файлын нэр нь файлын бүрэн замыг агуулсан байх ёстой. Эхэндээ танд тулгарч болох нэг асуудал бол "newConnect" хувьсагчид байрлуулах холболтын мөрийн зөв форматыг олох явдал юм. Зөв форматыг олох олон эх сурвалж байгаа ч миний олж мэдсэн хамгийн хялбар арга бол одоогийн холбогдсон хүснэгтийн холболтын мөрийг харах явдал юм. Үүнийг хийхийн тулд "Set objTableDef = objDB.TableDefs(tableName)" мөрийн доор дараах мөрийг нэмнэ үү:
Debug.Print (objTableDef.Connect)
Энэ нь одоо байгаа холболтын мөрийг код засварлагчийн дибаг хийх / шууд цонхонд хэвлэх болно (хэрэв энэ нь харагдахгүй байгаа бол кодыг ажиллуулахын өмнө VBA код засварлагч дэлгэцийн CTRL-G товчийг дарж шууд цонхны харагдах байдлыг солих хэрэгтэй.
Анхааруулга
Дээрх кодын хэсэг нь хүснэгтэд холбогдсон файлыг өөрчлөх шаардлагатай үед цаг хугацаа хэмнэхэд тусалж болох боловч чадахгүй байгаа зүйл нь танд тулгарвал танд туслах болно гэдгийг үргэлж мартаж болохгүй. Файлын эвдрэлд хандах, тиймээс нөөцлөлтөө хадгалж, бүх зүйл бүтэлгүйтвэл хаашаа эргэхээ мэдэж аваарай.
Зохиогчийн танилцуулга:
Митчелл Цөөрөм бол мэдээлэл сэргээх мэргэжилтэн юм DataNumen, Үүнд мэдээлэл сэргээх технологиор дэлхийд тэргүүлэгч, Inc. SQL гэмтлийг засах болон excel сэргээх програм хангамжийн бүтээгдэхүүнүүд. Дэлгэрэнгүй мэдээллийг авна уу WWW.datanumen.com