2016-11-07 293 views
0

我試圖打開報告時遇到此錯誤。Microsoft Access 2016 - 記錄源不存在

The record source '~sq_dProduct Summary~sq_dOLEUnbound0' specified on this form or report does not exist. 

The name of the recordsource may be misspelled, the recordsource was deleted or renamed, or the recordsource exists in a different database. 

In the Form or Report's Design view or Layout view, display the property sheet by clicking the Properties button, and then set the RecordSource property to an existing table or query. 

它變成了一個空白的「打印預覽」報告。但是當我右鍵點擊報告並轉到「設計視圖」時,裏面就有數據。我不知道什麼是錯的。任何人都可以幫忙嗎?

回答

0

這是命名約定Access用於在幕後創建查詢,當您在窗體/報表的設計視圖中使用構建器按鈕設置RecordSource屬性時。當您按下構建器按鈕時,您將看到一個QBE窗口(按示例查詢)。當您保存表單或報表時,Access會創建此查詢,將其隱藏在數據庫容器中,並在內部使用它,儘管您可以在RecordSource屬性中看到實際的SQL。這就是爲什麼它從設計角度看起來有效。

問題是數據庫引擎不能再找到這個「緩存」的隱藏查詢。

我想:

  • 複製形式或RecordSource屬性報告到一個文本文件。
  • 刪除報告RecordSource修復並壓縮數據庫
  • 重新打開報告並再次粘貼到記錄源中。

如果您正在使用的子窗體,組合框,列表框等也可能有記錄來源屬性,你應該做同樣的,直到你找到罪魁禍首。換句話說,在報表/窗體設計的任何地方,您都會看到一個RecordSource屬性,該屬性具有一個SQL語句作爲RecordSource屬性的值。

解決它的一個好方法是創建一個普通查詢,然後將所有窗體/報表/控件的RecordSource屬性設置爲該永久Access對象。