ลองทำการ compact-repair ดูก่อนว่าหายไหม
หรือลองดู แบบนี้ว่าแก้ได้ไหม
ถ้ายังไม่ได้อีก ให้ Backup File ต้นฉบับไว้ Copy มาซัก 1 อัน
เปิดไฟล์ใหม่ขึ้นมาสร้าง Module แล้วใส่ Codeนี้เข้าไป
Sub FixBadAOIndex(BadDBPath As String)
' <BadDBPath> is the path to the corrupt database.
Dim dbBad As DAO.Database
Dim tdf As DAO.TableDef
Dim ix As DAO.Index
Set dbBad = DBEngine.OpenDatabase(BadDBPath)
dbBad.Execute "DELETE FROM MSysAccessObjects " & _
"WHERE ([ID] Is Null) OR ([Data] Is Null)", _
dbFailOnError
Set tdf = dbBad.TableDefs("MSysAccessObjects")
Set ix = tdf.CreateIndex("AOIndex")
With ix
.Fields.Append .CreateField("ID")
.Primary = True
End With
tdf.Indexes.Append ix
Set tdf = Nothing
dbBad.Close
Set dbBad = Nothing
End Sub
ต่อไปกด Ctrl+G แล้วใส่ FixBadAOIndex("
ตำแหน่งไฟล์ที่เสียหายตั้งอยู่")
เช่น FixBadAOIndex("C:\MyPath\MyFile.mdb")
หรือส่งไฟล์เจ้าปัญหา มาทาง Inbox ผมแก้ไขให้