Гадаад файлын нэрийг өөрчлөх үед холбосон хүснэгтийг хэрхэн хурдан шинэчлэх вэ

Одоо хуваалцах:

Холбогдсон хүснэгтүүд нь гайхалтай ашигтай байж болох юм (гэхдээ мэдээжийн хэрэг үргэлж биш), ялангуяа тогтмол өөрчлөгдөж байдаг гадны мэдээлэлтэй харьцах үед. Нийлүүлэгч танд тухайн сарын үнийн файлыг үзэх боломжийг олгоход ердийн жишээ байж болно. Гэхдээ тэд ирэх сард файлаа гаргаад файлын нэр нь "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

Одоо хуваалцах:

Тайлбарууд нь хаалттай байна.