2011-12-30 87 views
2

我继承了我已经做了一些更改的Access应用程序。 当我启动它时,我收到几个错误,看起来是指 旧表或查询。目前没有任何应用程序 真的是错误的。从MSysObjects中删除旧的Access工件

这里的消息:

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

我在网上找到的东西,展示了如何获得访问倾倒每 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 

感谢,

米奇

回答

4

查询与波浪线开始从窗体和报表。例如,如果您为表单使用sql字符串,则它将显示在具有代字号的查询集合中。

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

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

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

1
~sq_cEmployee Certification Tracking~sq_clstAlerts 

这意味着lstAlerts对象(列表框?)的形式,员工认证跟踪被引用的列的SQL语句:

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

您将需要修改的lstAlerts记录源点由于CertificationAlertsRaw在数据库中不再可用,因此将其添加到另一个表中。