วิธีอัปเดตตารางที่เชื่อมโยงอย่างรวดเร็วเมื่อเปลี่ยนชื่อไฟล์ภายนอก

แบ่งปันเลย:

ตารางที่เชื่อมโยงมีประโยชน์อย่างน่าอัศจรรย์ (แม้ว่าจะไม่ใช่ตลอดเวลาก็ตาม) โดยเฉพาะอย่างยิ่งเมื่อคุณจัดการกับข้อมูลภายนอกที่มีการเปลี่ยนแปลงเป็นประจำ ตัวอย่างทั่วไปอาจเกิดขึ้นเมื่อซัพพลายเออร์ให้คุณเข้าถึงไฟล์ราคารายเดือนปัจจุบันของพวกเขา แต่จะเกิดอะไรขึ้นเมื่อพวกเขาออกไฟล์ในเดือนหน้าและชื่อไฟล์เปลี่ยนจาก“ Pricelist-01-01-2016” เป็น“ Pricelist-01-02-2016” สิ่งแรกที่จะเกิดขึ้นคือลิงก์ของคุณจะพังดังนั้นคุณจะต้องอัปเดตด้วยตนเอง ทุกครั้งที่เปลี่ยนชื่อไฟล์ นั่นก็สำหรับชื่อตารางด้วย (แน่นอน!) มีวิธีทำอย่างรวดเร็วและง่ายดายที่คุณถามหรือไม่? เราดีใจที่คุณถาม - อ่านต่อและค้นหาวิธี ...

การจัดฉาก - สถานการณ์

ตัวจัดการตารางที่เชื่อมโยงในบทความนี้ฉันจะใช้สถานการณ์สมมติ แต่ฉันแน่ใจว่าคุณจะจำได้อย่างรวดเร็ว!

ทุกเดือนการซื้อขาย Acme จะส่งรายการราคาที่อัปเดตสำหรับวัสดุสิ้นเปลืองทั้งหมดที่ใช้ที่ DataNumen. เพื่อให้เรารู้ว่าเราจะใช้จ่ายไปกับเครื่องเขียนในแต่ละเดือนเท่าไรเราจึงเชื่อมโยงไปยังไฟล์นั้นในฐานข้อมูลการจัดการสำนักงาน

เปลี่ยนชื่อไฟล์ปัญหาคือ ถึงแม้รูปแบบไฟล์จะเหมือนเดิม แต่ชื่อไฟล์กลับเปลี่ยนทุกเดือน เดือนที่แล้วชื่อไฟล์คือ “stationary costs Jan 2017.xls” เดือนนี้คือ “stationary costs Feb 2017.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)

ซึ่งจะพิมพ์สตริงการเชื่อมต่อที่มีอยู่ออกไปในหน้าต่างดีบัก / ทันทีของตัวแก้ไขโค้ด (หากยังไม่สามารถมองเห็นได้ให้กด CTRL-G จากภายในหน้าจอตัวแก้ไขโค้ด VBA เพื่อสลับการมองเห็นของหน้าต่างทันทีก่อนที่จะเรียกใช้โค้ด

คำเตือน

เช่นเคยอย่าลืมว่าแม้ว่าข้อมูลโค้ดด้านบนจะช่วยให้คุณประหยัดเวลาเมื่อคุณต้องเปลี่ยนไฟล์ที่ตารางเชื่อมโยงอยู่ แต่สิ่งที่ไม่สามารถทำได้คือช่วยคุณได้หากคุณพบ เข้าถึงไฟล์เสียหายดังนั้นตรวจสอบให้แน่ใจว่าคุณสำรองข้อมูลไว้และรู้ว่าจะต้องไปที่ไหนหากทุกอย่างล้มเหลว

บทนำผู้เขียน:

Mitchell Pond เป็นผู้เชี่ยวชาญด้านการกู้คืนข้อมูลใน DataNumen, Inc. ซึ่งเป็นผู้นำระดับโลกด้านเทคโนโลยีการกู้คืนข้อมูล ได้แก่ ซ่อมแซมความเสียหายของ SQL และผลิตภัณฑ์ซอฟต์แวร์กู้คืน excel ดูข้อมูลเพิ่มเติมได้ที่ wwwdatanumenด้วย.

แบ่งปันเลย:

ความเห็นถูกปิด