MSAccess-未保存对链接表(视图)的更改

时间:2018-03-12 02:01:58

标签: sql-server ms-access

我有一个MS-Access前端到MSSQL服务器后端。该工具现有的功能更新通过MSSQL视图应用,该视图作为链接表插入到MS-Access中。为此链接表格定义了一个主键。 (图)。

用户会看到与先前选择的条件匹配的记录子集,并使用组合框(未绑定)选择多个字段的值,然后使用DoCmd.RunSQL Me.Filter将其应用于所有匹配的记录"更新后"事件

用户已要求增加一项功能。

我有:

  1. 添加了视图中引用的基础表所需的新列
  2. 添加了要在视图中输出的列
  3. 刷新MS-Access中的链接表
  4. 将新字段添加到要更新它的表单中,并修改DoCmd.RunSQL语句以生成UPDATE
  5. 通过表单更新新字段时,我得到标准消息"You are about to change x rows",其中x是适当的数字。按OK表示没有错误,但表格未更新。

    要进行调试,我尝试直接更改链接表视图中的记录。同样没有抛出任何错误,并且该行似乎已更新,但这不会反映在SSMS中,并且在MS-Access中重新加载表不再存在更改。我可以更改新列之外的列值。

    我还测试了将基础表添加为链接表,我可以在此表中编辑MS-Access中的行。

    (更新)
    在下面的@ErikvonAsmuth建议中,我尝试在绑定表单上使用Recordsets而不是DoCmd.RunSQL。再次可以访问记录并且更新没有在rst.Update上给出错误,但更改未反映在新字段的数据库中。我可以使用上述方法更改以前存在的字段。 似乎我的问题与更新方法无关 (/更新)

    我很感激下一步检查的任何想法。

1 个答案:

答案 0 :(得分:0)

我发现了这个问题。

在视图上定义了一个触发器来处理对表的保存。我在SSQL中对此进行了更改以添加新列,现在一切正常。

当我尝试编辑SSMS中的字段时发现了一个提示,它也无法正常工作 - 收到loadOptions错误。

这导致我在[{3}}

上引用一个引用触发器的线程

我将返回并更改Row failed to retrieve on last operation语句以使用记录集。