从 MSysObjects 中删除旧的 Access 工件

mit*_*mcc 2 ms-access

我继承了一个我对其进行了一些更改的 Access 应用程序。当我启动它时,我收到几个似乎是指旧表或查询的错误。目前真正属于该应用程序的任何内容都没有错。

这是消息:

The record source `~sq_cEmployee Certification Tracking ~sqclstAlerts` specified on this form does not exist.
Run Code Online (Sandbox Code Playgroud)

我在网上找到了一些展示如何让 Access 转储每个 SQL 对象的内容,在该输出中,我看到我认为是一堆没有出现在对象浏览器中的垃圾查询。

这是我的意思的一个例子:

SQL 名称 (4):

 ~sq_cEmployee Certification Tracking~sq_clstAlerts-----------------------------------------------
SELECT CertificationAlertsRaw.Alert AS Expr1
FROM CertificationAlertsRaw
WHERE (((CertificationAlertsRaw.Alert)="Yes"));
Run Code Online (Sandbox Code Playgroud)

在这种情况下,CertificationAlertsRaw查询已被删除,至少就对象浏览器显示而言。这是一个已重命名的旧查询。

请注意带有波浪号的奇怪名称。

看起来这些似乎是崩溃的产物,或者可能是 Access 错误?

其中大约有 30 多个。

如果这些事情,正如我怀疑的那样,是什么导致启动时出现这些错误消息,我该如何摆脱它们,因为它们没有出现在对象浏览器窗口中?

我也尝试过“压缩和修复”,但这并没有改变任何东西。以下是 MSysObjects 中这些条目的一些“名称”属性:

~sq_cEmployee Certification Tracking Old~sq_ccboCertifications
~sq_cEmployee Certification Tracking Old~sq_clstHistory
~sq_cRoutineAssignments~sq_clstMaxTaskID
Run Code Online (Sandbox Code Playgroud)

谢谢,

米奇

Fio*_*ala 5

以波浪号开头的查询来自表单和报告。例如,如果您对表单使用 sql 字符串,它将以波浪号显示在查询集合中。

Sub ListQueries()
For Each qdf In CurrentDb.QueryDefs
    Debug.Print qdf.Name
Next
End Sub
Run Code Online (Sandbox Code Playgroud)

你可以删除它们,但你必须小心。

您可能最好打开一个新的数据库并导入您看到的所有内容。