2009-06-12 29 views
0

我有一個客戶端需要更新的數據庫。他們喜歡使用訪問。一些表格隨機成爲只讀對象。任何想法爲什麼?使用Access來更改SQL表。表隨機變爲只讀

他們使用Access 2007和MS SQL 2005

SQL表:

CREATE TABLE [dbo].[Users](
    [SyncGroup] [varchar](20) NULL, 
    [UserID] [varchar](20) NOT NULL, 
    [Password] [varchar](20) NOT NULL, 
    [Restriction] [text] NULL DEFAULT (' '), 
    [SiteCode] [varchar](20) NULL, 
    [Group] [varchar](20) NULL, 
    [EmpId] [varchar](20) NULL, 
    [TimeZoneOffset] [int] NULL, 
    [UseDaylightSavings] [bit] NULL, 
    PRIMARY KEY ([UserID])) 
+0

如果您可以提供有關症狀的描述(從用戶的角度來看)以及所獲得的任何錯誤消息的準確措辭,這會有所幫助。 – 2009-06-12 15:59:25

+0

沒有錯誤消息,所有記錄都變爲只讀。這是一個奇怪的問題。就在今天一張桌子工作正常,然後它變成只讀。我甚至讓客戶端刪除並重新映射表。沒有運氣。 – NitroxDM 2009-06-12 16:29:09

回答

3

訪問真的很喜歡每個表上都有一個TimeStamp aka RowVersion字段。我不知道這是否會解決您的問題。

「在支持它們的服務器(如Microsoft SQL Server)上,時間戳記字段使更新記錄更有效率。時間戳記字段由服務器維護,並在每次記錄更新時更新。如果有時間戳字段, Microsoft Access需要僅檢查唯一索引和時間戳記字段,以查看記錄是否從服務器上次檢索後發生了更改。否則,Microsoft Access必須檢查記錄中的所有字段。如果將時間戳字段添加到附加的表,重新附加表以便通知Microsoft Access新的字段。「

http://technet.microsoft.com/en-us/library/cc917601.aspx

+0

添加時間TimeStamp似乎正在工作。我需要進行更多的測試...但目前看起來不錯。 – NitroxDM 2009-06-12 21:29:35

0

是用戶訪問數據庫,而你要做的東西iwth SQL?如果是這樣,那麼您將收到一條錯誤消息,指出數據庫正在使用並且是隻讀的。沒有人可以在數據庫中,當你通過sql來處理它時。

+0

我認爲我們需要量化「用SQL來做事」。通過「用SQL做東西」,你的意思是改變模式嗎?或操縱數據?除此之外,還有一個自動化系統,每隔3分鐘左右從桌面上讀取數據。我沒有注意到操縱數據的可重現問題。 Access只是決定它不會允許更改。 – NitroxDM 2009-06-12 17:55:41

0

聽起來像是權限問題。你是否仔細追蹤誰在改變模式?您可能有不允許使用某些其他用戶所做更改的用戶。