2014-03-27 44 views
0

因此,我開始了一項新工作,並繼承了一系列與多個訪問前端相關的絕對殘酷的數據庫集合。在嘗試創建測試服務器時,我遇到了前端問題。以前的開發人員在SQL Server 2008 R2中創建了一些與表和視圖綁定的訪問表單。我試圖弄清楚爲什麼我無法編輯任何字段(文本,組合框,列表等)中的任何值。連接到Access前端的SQL Server「此記錄集不可更新」。

認爲,形式是聯繫在一起的是:

AuditQueries_UserTableForSelectionForms 

視圖類似於:

SELECT  TableForFormFields_1.FormSelectionID, TableForFormFields_1.JobPlan, TableForFormFields_1.Floor, TableForFormFields_1.Location, TableForFormFields_1.CHSR#, TableForFormFields_1.PanelName, 
        TableForFormFields_1.PanelLetter, TableForFormFields_1.PanelCircuit, TableForFormFields_1.StartDate, TableForFormFields_1.EndDate, TableForFormFields_1.MigrationDate, TableForFormFields_1.JTag, 
        TableForFormFields_1.MinBusRow, TableForFormFields_1.MaxBusRow, TableForFormFields_1.PlanID, TableForFormFields_1.Equip, TableForFormFields_1.CabinetJTag, 
        Shared_Tables.dbo.username.[User] 
FROM   Audit.TableForFormFields AS TableForFormFields_1 INNER JOIN 
        Shared_Tables.dbo.username ON TableForFormFields_1.FormSelectionID = Shared_Tables.dbo.username.[User] 

TableFormFields是包含用於跨越各種形式中的所有字段的缺省值的表,並且它基於登錄的用戶而改變。登錄的用戶是使用以下視圖檢測:

SELECT  CASE LEFT(SYSTEM_USER, 11) WHEN 'LIGHTHOUSE\' THEN SYSTEM_USER ELSE 'Webuser' END AS [User] 

我用Google搜索了錯誤,和所有我發現的文件似乎不是很恰當的。還有其他形式的數據庫捆綁出現的工作表,如果我改變了形式的數據源:如需要

SELECT * FROM TableForFormFields AS TableForFormFields_1 

一切正常。但是,這與生產環境不同,我需要保持相同或至少儘可能接近。有任何想法嗎?

回答

1

由於JOIN,它們的查詢(以及由查詢填充的記錄集)不可更新。當你有一個加入表格或數據表或任何使用查詢無法解決你的更改將去。如果你希望你的記錄集是可更新的,你將需要引用一個表。

組合框/列表框的ControlSource等是告訴數據保存記錄時寫入哪裏的屬性。它是表單的RecordSource中的一個字段。

控件的RowSource屬性告訴控件什麼顯示爲可用選項。

對於您的情況,您應該將RowSource設置爲提供相關數據的視圖,並將ControlSource設置爲將更新的表中的記錄。

+0

那麼如何修改這個問題來糾正這個問題呢? –

+1

@Jdsfighter當舊服務器上的相同視圖是表單的數據源時,窗體是否可編輯? – HansUp

+0

生產服務器和測試服務器之間的所有數據庫都是相同的,但該視圖在我的測試服務器上無論出於何種原因都不起作用。 –

相關問題