我继承了一个我对其进行了一些更改的 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)
谢谢,
米奇
以波浪号开头的查询来自表单和报告。例如,如果您对表单使用 sql 字符串,它将以波浪号显示在查询集合中。
Sub ListQueries()
For Each qdf In CurrentDb.QueryDefs
Debug.Print qdf.Name
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
你可以删除它们,但你必须小心。
您可能最好打开一个新的数据库并导入您看到的所有内容。