当MS Access中的表单的记录源在SQL Server上时,视图不可更新

时间:2017-10-10 13:21:18

标签: sql-server ms-access

我已将表单的记录源设置为SQL Server视图。现在我打开那个

DoCmd.OpenForm "frmDocuments", WhereCondition:=varWhere
Forms!frmDocuments.SetFocus

它将被打开,但它不可更新。我想知道,这是正常的吗?我们在Access窗体中打开的每个视图都不可更新。

如果我为视图创建唯一索引,我会在网上阅读它可以更新。

现在,当我尝试使用此代码在视图上创建索引时

CREATE UNIQUE CLUSTERED INDEX i_Documents 
    ON qryDocuments([Owner Document Number])

我收到错误

  

“架构绑定”

然后我尝试使用模式绑定创建视图,我收到错误

  

无法对视图'test'进行架构绑定,因为名称'tblDiscipline'对于架构绑定无效。名称必须采用两部分格式,对象不能引用自身。

我使用的代码如下:

CREATE VIEW qryDocuments 
WITH SCHEMABINDING  
AS  
    SELECT 
        tblDocuments.[Owner Document Number], tblDocuments.[Sazeh Document 
   Number], 
        tblDocuments.[Document Title], tblDocuments.[Project No], 
        tblDocuments.Originator, tblOriginator.[Originator Des], 
        tblDocuments.Zone, tblDocuments.Unit, tblDocuments.Discipline, 
        tblDiscipline.DiscDesc, tblDocuments.[Document Type],  
        tblDocumentType.[TYPE Description], tblDocuments.SheetNumber
    FROM 
        tblDiscipline 
    RIGHT JOIN 
        ((tblDocumentType 
    RIGHT JOIN 
        tblDocuments ON tblDocumentType.TYPE = tblDocuments.[Document Type]) 
    LEFT JOIN 
        tblOriginator ON tblDocuments.Originator = tblOriginator.Originator)  
        ON tblDiscipline.DiscCode = tblDocuments.Discipline
  GO   

请帮忙 - 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

让我们从一小段格式化文本查询开始。注意我是如何使用alises来大大减少代码量的,并且可以更容易地看到发生了什么。那些连接是另一回事。在这种模式中合并左右连接表示这是由查询工具编写的。

SELECT d.[Owner Document Number]
    , d.[Sazeh Document Number]
    , d.[Document Title]
    , d.[Project No]
    , d.Originator
    , o.[Originator Des]
    , d.Zone
    , d.Unit
    , d.Discipline
    , dis.DiscDesc
    , d.[Document Type]
    , dt.[TYPE Description]
    , d.SheetNumber
FROM tblDiscipline dis
RIGHT JOIN tblDocuments d ON dis.DiscCode = d.Discipline
RIGHT JOIN tblDocumentType dt ON dt.TYPE = d.[Document Type]
LEFT JOIN tblOriginator o ON d.Originator = o.Originator

现在您可以实际读取此查询,错误消息非常清楚。具体看这部分。 “名称必须采用两部分格式”。如果未指定对象的架构,则无法对视图进行架构绑定。您可能需要查看此处的文档。 https://docs.microsoft.com/en-us/sql/t-sql/statements/create-view-transact-sql请特别注意有关“可更新视图”的部分。