处理“不是有效的书签”。记录损坏的错误

Gee*_*eek 5 ms-access vba

我有一个数据库,其中有一些损坏的记录。查看 Access 中的表时,记录在字段中显示为“#Error”。同时弹出一个对话框,提示“不是有效的书签。”。在某些 VBA 代码中处理这些记录时,我收到相同的错误(错误号为 3159)。我的问题是:如何在 VBA 中检测到这些损坏的记录?我可以在不捕获该特定错误的情况下执行此操作吗?有没有办法使用 SQL 删除这些记录?我尝试过“紧凑和修复”,但没有触及它们。

Fio*_*ala 0

也许:

Sub CheckForErr(tname)
Dim rs As DAO.Recordset
Dim db As Database

Set db = CurrentDb

If Left(tname, 4) <> "Msys" Then

Set rs = db.OpenRecordset(tname)

With rs
   Do While Not .EOF
        For Each fld In rs.Fields
            If IsError(rs(fld.Name)) Then
               Debug.Print "Error"
            End If
        Next
        .MoveNext
    Loop
End With


rs.Close
Set rs = Nothing
End If

End Sub
Run Code Online (Sandbox Code Playgroud)