2016-06-14 44 views
1

我有一臺沒有安裝MS Access的PC,因此我已經安裝了免費的運行版本,以便PC可以用於數據庫。訪問運行時2010動作查詢警告

我已經得到了數據庫和運行分開的一個問題。當動作查詢運行時,它們前面有一條警告消息。我嘗試更改信任中心設置,但我仍然收到警告。

  • 有沒有辦法阻止此警告消息並在運行時版本中自動運行查詢?

我真的不想要docmd.setwarnings = false在VBA,如果我誠實。我認爲如果我的完整版能夠正常工作,那麼我的運行時版本也應該如此。

  • 有沒有什麼我可以用regedit中的註冊表項來做?

編輯

警告消息如下:

「您運行更新查詢,將在您的 修改數據table.Are你確定想要運行這種類型的動作查詢?「

回答

4

當動作查詢運行時,它們前面有一條警告消息。我 已嘗試更改信任中心設置,但我仍然收到 警告。

這些操作查詢警告和確認與信任中心設置無關。如果您想全面禁用它們,請查看訪問選項 - >客戶端設置,然後向下滾動到「確認」部分。但我不會建議你這樣做。

按照Christopher的建議使用DAO.Database.Execute方法。您可以使用CurrentDbDAO.Database,或一個對象變量設置爲CurrentDb並使用.Execute從變量:

Dim db As DAO.Database 
Set db = CurrentDb 
db.Execute "overdue_Query", dbFailOnError 

對象變量的方法可以讓你檢查db.RecordsAffected並獲得上次使用的自動編號值*見下面Debug.Print db.OpenRecordset("SELECT @@Identity")(0)

另外.Execute是靈活的,因爲它會接受一個保存的查詢(如上)的名稱或SQL語句。所以,你可以做這樣的事情......

Dim strDelete As String 
strDelete = "DELETE FROM tblFoo;" 
db.Execute strDelete, dbFailOnError 
MsgBox db.RecordsAffected & " records deleted" 

*通過從對象變量執行的最後INSERT使用的自動編號值。

+0

爲什麼警告不會出現在我的完整版本的訪問中,並且只在運行時版本中出現? – LiamH

+0

我認爲這些設置保存在主機註冊表中的某處。所以你必須將它們添加到使用運行時的機器的註冊表中。但我不會那樣做,並希望阻止你這樣做。 ;-)改用'DAO.Database.Execute'加'dbFailOnError'。 – HansUp

+0

只需使用'currentdb.execute「overdue_query」'效果很好,謝謝。我不知道爲什麼打開查詢不起作用,雖然:/ – LiamH