กระทู้เก่าบอร์ด อ.Yeadram
971 3
URL.หัวข้อ /
URL
ปัญหา เปลี่ยนที่อยู่ be แล้วเปิดไฟล์ไม่ได้
ก่อนหน้านี้ทำการ Split ไฟล์ค่ะ ทำให้มีไฟล์แยกมา 2 ตัว
ตัวแรก เป็น พวก F. ฟอร์ม, Q.คิวรี่, R.รีพอร์ท ค่ะ (โดย Link ข้อมูลจาก T อีกไฟล์)
ตัวสอง เป็น T ตารางข้อมูล ค่ะ (be)
ต่อมา ทำการ ย้ายที่อยู่ ของ ไฟล์ be ทำให้ ไม่สามารถเข้าถึงข้อมูลได้ค่ะ
การใช้ F. Q. R. ยังคง Link table ไปยังที่อยู่เดิมค่ะ
ปัญหาคือ ไม่ทราบวิธีการ Link ที่อยู่ของ ไฟล์ be กรณีที่มีการเปลี่ยนแปลงใหม่ค่ะ
รบกวน ผู้รู้ช่วยแนะนำด้วยค่ะ
ตัวแรก เป็น พวก F. ฟอร์ม, Q.คิวรี่, R.รีพอร์ท ค่ะ (โดย Link ข้อมูลจาก T อีกไฟล์)
ตัวสอง เป็น T ตารางข้อมูล ค่ะ (be)
ต่อมา ทำการ ย้ายที่อยู่ ของ ไฟล์ be ทำให้ ไม่สามารถเข้าถึงข้อมูลได้ค่ะ
การใช้ F. Q. R. ยังคง Link table ไปยังที่อยู่เดิมค่ะ
ปัญหาคือ ไม่ทราบวิธีการ Link ที่อยู่ของ ไฟล์ be กรณีที่มีการเปลี่ยนแปลงใหม่ค่ะ
รบกวน ผู้รู้ช่วยแนะนำด้วยค่ะ
3 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R23178
ถ้าต้องการเปลี่ยนพาธตารางที่ลิ้งค์ที่ละตัวก็ใช้ฟังก์ชั่นนี้ครับ
แต่หากต้องการเปลี่ยนตารางลิ้งค์ทั้งหมดไปไฟล์และพาธเดียวกันหมดเลยก็ใช้แบบ ลูปทุกตารางที่ลิ้งค์ได้เลย แบบนี้ครับ
- จากนั้นก็สั่ง ChangeLinkedMDB ได้เลยครับ ถ้าพาธไฟล์ และชื่อตารางใส่ถูกต้องการจะเปลี่ยนลิ้งค์ทันทีครับ ปรับใช้ดู
Public Function ChangeLinkedMDB()
Dim DB As DAO.Database
Dim TD As DAO.TableDef
Dim FileName As String, PathName As String
' ------------------------------------------------------------------------------------------
FileName = "tb_Customer" ' ชื่อตารางเป้าหมายที่ต้องการเปลี่ยน
PathName = "C:\Data\A.mdb" ' ชื่อพาธไฟล์เป้าหมายที่ต้องการเปลี่ยน
'-------------------------------------------------------------------------------------------
On Error GoTo Err_Handler
Set DB = CurrentDb
Set TD = DB.TableDefs(FileName)
If (TD.Attributes And dbAttachedTable) = dbAttachedTable Then
TD.Connect = ";DATABASE=" & PathName
TD.RefreshLink
End If
Exit_Handler:
DB.Close: Set DB = Nothing
Exit Function
Err_Handler:
Select Case Err.Number
Case 3024&, 3044&
MsgBox "ไม่พบไฟล์ในพาธที่กำหนด", , "พาธไฟล์ผิดพลาด"
Case 3011&
MsgBox "ไม่พบชื่อตารางเป้าหมายในไฟล์ที่กำหนด", , "ชื่อตารางผิดพลาด"
End Select
End Function
แต่หากต้องการเปลี่ยนตารางลิ้งค์ทั้งหมดไปไฟล์และพาธเดียวกันหมดเลยก็ใช้แบบ ลูปทุกตารางที่ลิ้งค์ได้เลย แบบนี้ครับ
Public Function ChangeLinkedMDB()
Dim DB As DAO.Database
Dim TD As DAO.TableDef
Dim FileName As String, PathName As String
' ------------------------------------------------------------------------------------------
PathName = "C:\Data\A.mdb" ' ชื่อพาธไฟล์เป้าหมายที่ต้องการเปลี่ยน
'-------------------------------------------------------------------------------------------
On Error GoTo Err_Handler
Set DB = CurrentDb
For Each TD In DB.TableDefs
If (TD.Attributes And dbAttachedTable) = dbAttachedTable Then
TD.Connect = ";DATABASE=" & PathName
TD.RefreshLink
End If
Next TD
Exit_Handler:
DB.Close: Set DB = Nothing
Exit Function
Err_Handler:
Select Case Err.Number
Case 3024&, 3044&
MsgBox "ไม่พบไฟล์ในพาธที่กำหนด", , "พาธไฟล์ผิดพลาด"
Case 3011&
MsgBox "ไม่พบชื่อตารางเป้าหมายในไฟล์ที่กำหนด", , "ชื่อตารางผิดพลาด"
End Select
End Function
- จากนั้นก็สั่ง ChangeLinkedMDB ได้เลยครับ ถ้าพาธไฟล์ และชื่อตารางใส่ถูกต้องการจะเปลี่ยนลิ้งค์ทันทีครับ ปรับใช้ดู
3 @R23182
ขอบคุณมากค่ะ ได้คำตอบที่ต้องการค่ะ
Time: 0.3593s
VDO