2011-12-30 50 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在數據庫中不再可用,因此將其添加到另一個表中。