我正在修改已升級很多次的很舊的訪問應用程序。它可能已經開始爲2003年。我正在2013年運行。我修改了一個查詢來篩選我剛剛添加到表中的列。我的表格和我的報告都沒有使用修改後的查詢。我知道這是因爲我在表格中添加了一列,然後修改了查詢以過濾此列。查詢運行良好。報告和表格肯定使用舊的查詢。該應用程序還使用VB6代碼,實際上根據所選報告添加更多SQL。如果我創建一個全新的報告,它將執行新的查詢。我不想創建所有新的報告。並且請我知道VB6也很老了,但是這家公司正在倒閉,這只是一種組織類型。訪問2013年未使用修改查詢的報告/表單
0
A
回答
0
訣竅是要弄清楚報告從運行時間獲取數據的位置。因爲你說有VB6代碼改變了SQL,這可能會很複雜。
有很多方法可以改變,並且目前的問題中的信息,我不可能縮小它,但有一些地方,你可以看看檢查。
報告的數據可以通過多種方式指定。
- 您可以選擇一個表或查詢作爲報表屬性中的數據源。如果發生了這種情況,那麼只要修改查詢,報告就應該已經更改。所以它可能不是。
- 報告可以使用該屬性定義自己的查詢。這可以是使用表和其他查詢的選擇語句,選擇特定字段並應用過濾器。
- 你說有一堆VB6也改變了查詢。 (你確定它是VB6而不是VBA?可能無關緊要)。這將改變你需要看的地方。
所以我會做的是:
- 看報表的性質,並找出數據源是什麼。看看它只是一個查詢名稱或一條SQL語句。如果它是一條SQL語句,請在構建器中啓動它並查看是否可以找到您修改的查詢,或者重新應用修改並查看是否有效。
如果這不起作用,那麼你將需要看看VB代碼。找到修改此報告的SQL的代碼。最有可能的是,會出現一個按鈕,用戶點擊該按鈕會運行一堆代碼,更新SQL並啓動報告。在那裏粘貼一個斷點並逐步完成,直到你看到一些正在構造的SQL,然後研究如何從那裏改變SQL。
最有可能你將有兩種策略:
- 的VB代碼構造SQL原料,它看起來像隱約在查詢的SQL,但有不同的標準。因此,您可以使用修改後的查詢中的修改過的SQL來建模您需要在VB構建的SQL中進行的更改。VB代碼的功能與
SELECT * FROM [TheQuery] WHERE
類似,只是添加了條件。這可能會讓你的生活更輕鬆,但可能並非如此,因爲修改查詢並沒有改變任何事情。
相關問題
- 1. 訪問2013年報告中更改文本的問題
- 2. 使用查詢訪問報告?
- 3. 訪問2013年SQL查詢空處理
- 4. 在訪問報告中對單個字段使用查詢
- 5. 更新訪問中的查詢中修改的日期2013
- 6. 修改查詢在訪問
- 7. 訪問報告提示查詢兩次
- 8. 從查詢構建訪問報告
- 9. 訪問報告,填充查詢
- 10. c#telerik報告訪問查詢錯誤
- 11. 訪問查詢和報告創建
- 12. 訪問報告傳遞參數到子報表查詢
- 13. 如何修改訪問2013年總計行
- 14. 訪問2013年的SQL
- 15. 訪問2010年 - 子報告間距
- 16. 訪問2013查詢條件
- 17. 查詢更改後訪問報告不會更新
- 18. 從動態交叉表查詢和vba訪問報告「手動」生成報告
- 19. 訪問 - 表單和報表組合,查詢問題
- 20. BIRT報告修改
- 21. 如何在訪問2013年按日期查詢?
- 22. Microsoft CRM 2013報告問題
- 23. 微軟訪問 - 如果我修改我的查詢,表單也會改變
- 24. 總結下來行中訪問交叉表查詢報告
- 25. 訪問表單查詢
- 26. 在訪問報告(DoCmd.OpenReport)中使用表單變量
- 27. 訪問報告運行的查詢執行報告打開事件
- 28. 訪問2013年:禁用模式
- 29. 訪問和VBA:更改報告代碼中的報告文本
- 30. ReSharper的警告 - 訪問修改關閉
非常有趣的是,我從報表屬性表中刪除了記錄來源,並且看到它仍然正確執行...我假設這是告訴我,記錄源查詢甚至沒有被使用,你是否同意這種評估? – lesslag
@lesslag是的,我同意。在啓動報告之前,它可能正在代碼中填充。 – GregHNZ
謝謝你的幫助! @GregHNZ – lesslag