从MSysObjects中删除旧的Access工件

时间:2011-12-30 20:59:19

标签: ms-access

我继承了一个Access应用程序,我对其进行了一些更改。 当我启动它时,我得到了几个似乎是指的错误 旧表或查询。目前没有任何东西真的是应用程序的一部分 是错的。

以下是信息:

The record source `~sq_cEmployee Certification Tracking ~sqclstAlerts` specified on this form does not exist.

我在网上发现了一些东西,展示了如何获取每个转储的Access SQL对象,在那个输出中,我看到我认为是一堆垃圾 未在对象浏览器中显示的查询。

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

SQL名称(4):

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

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

请注意代字号的奇怪名称。

这几乎看起来像是撞车事故中的文物,或许也许 访问错误?

其中约有30多个。

如果我怀疑这些内容是导致这些错误消息的原因 在启动时,我怎么能摆脱它们,因为它们没有出现在 对象浏览器窗口?

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

~sq_cEmployee Certification Tracking Old~sq_ccboCertifications
~sq_cEmployee Certification Tracking Old~sq_clstHistory
~sq_cRoutineAssignments~sq_clstMaxTaskID

谢谢,

米奇

2 个答案:

答案 0 :(得分:4)

以代字号开头的查询来自表单和报表。例如,如果对表单使用sql字符串,它将显示在Queries集合中,并带有波形符。

Sub ListQueries()
For Each qdf In CurrentDb.QueryDefs
    Debug.Print qdf.Name
Next
End Sub

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

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

答案 1 :(得分:1)

~sq_cEmployee Certification Tracking~sq_clstAlerts

这意味着Employee Certification Tracking表单上的lstAlerts对象(列表框?)引用了列出的SQL语句:

SELECT CertificationAlertsRaw.Alert AS Expr1 FROM CertificationAlertsRaw WHERE (((CertificationAlertsRaw.Alert)="Yes"));

您需要修改lstAlerts的记录源以指向另一个表,因为数据库中不再提供CertificationAlertsRaw