พอมีตัวอย่างการแก้ไข เทเบิลลิ้งค์แบบ ออโต้ หรือเปล
กระทู้เก่าบอร์ด อ.Yeadram

 1,187   5
URL.หัวข้อ / URL
พอมีตัวอย่างการแก้ไข เทเบิลลิ้งค์แบบ ออโต้ หรือเปล

ท่านอาจารย์ครับ
หลายครั้งที่เราลิ้งค์เทเบิลจาก db อีกตัวหนึ่ง (ซึ่งอยู่ใน Folder เดียวกัน)
แต่พอเปลี่ยนชื่อ Folder หรือ Drive ก็จะทำให้ลิ้งค์เสีย
ไม่ทราบว่ามีคำสั่งให้โปรแกรมหาลิ้งค์เองแบบออโต้หรือเปล่า

5 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R01844
if dir(.....) = "" then   ลิงค์หายไปแล้ว

การจะให้หาใหม่แบบ Auto มันอาจจะช้าครับ เพราะน่าจะเป็นการสแกนทั้งเครื่องเลย

ดังนั้น เมื่อตรวจสอบได้ว่า ลิงค์หาย น่าจะให้ปรากฎ Dialog ขึ้นมาให้ผู้ใช้หาเองดีกว่า
และกรณีอย่างนี้ เราควรบันทึก path ไว้ใน ตาราง หรือไว้ใน text file
เมื่อมีการเปลี่ยน พาธ ก็จะทำการค้นหาแค่ครั้งเดียว ครั้งต่อๆ ไปก็ทำงานได้ตามปกติ จนกว่าจะมีการย้าย พาธอีก ถึงจะได้เรียกใช้ Dialog ตัวนี้
2 @R01886
ขอบคุณครับอาจารย์

ตอนนี้ผมแก้ไขได้แล้วครับ โดยค้นดูตัวอย่างเก่า ๆ มาปรับใช้

คืองานของผมส่วนใหญ่ จะพัฒนาขึ้นใช้เองในหน่วยงาน
และสาขาอื่น ๆ มักจะขอไปใช้ด้วย จึงทำให้ต้องพัฒนาในลักษณะ
Front-End และ Back-End ให้อยู่ใน Folder เดียวกัน
เพื่อให้ง่ายต่อการ Update และปรับปรุง

ปัญหาที่พบคือเวลา Copy ไปใช้งานที่อื่น
หากนำไปวางผิด Drive หรือ หรือชื่อ Folder เปลี่ยนไป ก็จะทำให้ ลิ้งค์เทเบิลเสีย
ไม่สามารถเปิดโปรแกรมได้

ตอนนี้แก้ไขได้แล้ว จึงทำให้ไม่ต้องห่วงว่า ผู้ใช้จะนำไปวางหรือติดตั้งไว้ใน Drive ไหน
หรือเปลี่ยนชื่อ Folder ผิดไปจากเดิมอย่างไร ก็สามารถเปิดโปรแกรมได้
3 @R01888
รบกวนขอตัวอย่างด้วยครับ ยังไม่มีครับ หรือถ้าอยู่ใน Gmail
บอก ชื่อ FILE ให้หน่อยก็ได้ครับ
4 @R01890
อืม..หนูสนใจมากเลยค่ะ รบกวนคุณ ภาณุวัฒน์ กรุณาแนะนำด้วยนะค? ว่าคุณแก้ไขได้ด้วยวิธีการอย่างไร เพราะหนูก็เจอปัญหาแบบเดียวกันเลยค่ะ เวลาเปลี่ยนตำแหน่ง Drive ที่ไรก็วุ่นวายทุกทีค่ะ
5 @R01896
ผมใช้แบบนี้ครับ
ลองปรับใช้ดูนะครับ

Public Sub LinkAllTable()
    Dim strDataDrive As String, strMyDataDB As String
    strDataDrive = DLookup("DataDrive", "TabConfig")
    strMyDataDB = strDataDrive & "CSMBSCer\CSMBSCer.dat"
    If Len(Dir(strMyDataDB, 2)) = 0 Then
        MsgBox "ไม่้พบแฟ้ม CSMBSCer.Dat" & _
            "@กรุณากำหนด Drive ของข้อมูลให้ถูกต้อง" & _
            "@", vbInformation, "แฟ้มข้อมูลไม่ครบ"
        'Call Shell("Notepad C:\Training\Training.ini", 1)
        Quit
    Else
        Dim tdTable As TableDef, DataDB As Database
        Set DataDB = OpenDatabase(strMyDataDB)
        For Each tdTable In DataDB.TableDefs
        If Left(tdTable.Name, 4) <> "MSys" Then 'filter out System tables
            DoCmd.TransferDatabase acLink, "Microsoft Access", DataDB.Name, acTable, tdTable.Name, tdTable.Name
        End If
        Next tdTable
    End If
End Sub
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3198s