2009-07-06 128 views
2

我剛剛完成導入Access數據庫(後端)到SQL Server 2008的數據庫。我的前端仍然是ACCESS 2007,後端是SQL Server 2008.我意識到,如果我打開表單(在某個記錄上),然後進行一些計算,這些計算應該填寫一些文本字段自動在該表單上(對於該記錄),那些文本字段的那些值在那時不填充。現在,如果我關閉表單並重新打開它的相同記錄,值就在那裏。所以這就像是延遲,這阻止了其他事情的發生。有人能幫我一下嗎?我嘗試使用ODBC驅動程序SQL Server以及SQL Server Native Client 10.0,但都沒有工作。SQL服務器延遲問題

使用本地表或鏈接的人到SQL Server時非常感謝您

+0

你如何計算?它是基礎查詢中的公式,還是文本框中的公式或VBA代碼來計算。 – 2009-07-06 20:45:22

回答

1

大多數功能在表單的工作一樣。

但是這裏一個顯著不同的是,即使當你開始在添加模式的形式編輯信息的主鍵是INSTANLTY在當地的形式加入。這意味着,如果有任何形式的查找,甚至子表單,或者是基於使用主鍵,這些顯示器將在您正在運行的MS訪問本地版本實時更新其他表達式,你開始輸入。

但是使用鏈接表到SQL Server時,是不是直到記錄所產生的自動編號主鍵ID實際上被保存。因此,如果他們使用並依賴主鍵顯示信息,則應檢查這些表達式。

如果上面是你的問題,那麼也許在用戶共同輸入數據,你強制磁盤寫入(從而迫使主鍵生成)的控件之一。

所以在你進入一個大文本框(場)的「更新後」事件,您可以強制磁盤寫,如:

If isnull(me!id) = true then 
    ‘ we have no primary key, force a disk write 
    If me.Dirty = false then 
     Me.Dirty = true 
    End if 
End if 

您可能要擴大,並給予更多的一些細節如到什麼樣的表情不起作用。但是,以上是關於主鍵創建並且可用於表單上的其他表達式的時間序列中最顯着的差異。

1

隨着服務器後端,訪問需要幫助,以保持形狀上的更新。首先,每個表都需要一個主鍵(沒有設計合理的表缺少一個,但是這可以是對Jet運行良好並在升級到SQL Server或任何其他ODBC後端時中斷的類型)。其次,我發現向所有SQL Server表添加時間戳字段是一種很好的做法,因爲它允許Access知道記錄是否已更新,而無需評估記錄中的每個字段。這也使得Access可以刷新窗體中的顯示緩衝區而不需要做太多額外的工作。