ตารางที่เชื่อมโยงมีประโยชน์อย่างน่าอัศจรรย์ (แม้ว่าจะไม่ใช่ตลอดเวลาก็ตาม) โดยเฉพาะอย่างยิ่งเมื่อคุณจัดการกับข้อมูลภายนอกที่มีการเปลี่ยนแปลงเป็นประจำ ตัวอย่างทั่วไปอาจเกิดขึ้นเมื่อซัพพลายเออร์ให้คุณเข้าถึงไฟล์ราคารายเดือนปัจจุบันของพวกเขา แต่จะเกิดอะไรขึ้นเมื่อพวกเขาออกไฟล์ในเดือนหน้าและชื่อไฟล์เปลี่ยนจาก“ 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ด้วย.