我有一個應用程序,在運行時創建一個Jet數據庫,並導入〜100k記錄,以便我可以利用索引出於性能原因(1分鐘對比將近10不使用Jet數據庫)。訪問「修復」打破了一個稍微複雜的查詢
該數據庫使用Excel中的ADO Extensibility創建,並且一切正常。但是,每當我在Access前端打開MDB文件時,就會出現問題,它會自動開始「修復」數據庫。
「修復」後數據仍然正常,但是我的主輸出查詢不能在Access中查看,因爲它告訴我它不能表示連接,如果我在SQL中查看它,則所需的連接不是那裏,並且查詢不能再運行。這仍然發生,如果我讓它得到「修復」,但不打開該查詢,即它是打破查詢的「修復」,而不是嘗試在Access中查看它的行爲。有趣的是,我使用Access GUI查詢設計器來構建SQL,因爲我的生命太短,無法擔心它是瘋狂的包圍風格,但後來它認爲它本身太複雜了?
此外,沒有別的東西似乎受到影響,所以我只能假設它是這一個它不喜歡的查詢。
這對我來說並不是一個破壞行爲,因爲我的修復是隱藏MDB並建議用戶不要打開它。
但是,我真的很喜歡它,如果數據庫可以打開,我不必像這樣隱藏它。因此,我的問題是,是否有辦法阻止MDB自動「修復」?
謝謝!
應該可以創建一個不需要修復的數據庫。也許你可以發佈一些代碼? – Fionnuala
我創建數據庫的代碼如下所示,並且我已經測試過,這足以強制修復: Set objCat = CreateObject(「ADOX.Catalog」) objCat.Create ConnectionString() 什麼是發生在我身上的是我正在創建一個MDB,但在Access 2007中開放,這就是我所擁有的。這可能是問題嗎? – CrazyHorse
什麼是ConnectionString()? – Fionnuala