MS Access 表单不允许添加 SQL Server 后端

Posted

技术标签:

【中文标题】MS Access 表单不允许添加 SQL Server 后端【英文标题】:MS Access form not allowing additions with SQL Server Backend 【发布时间】:2017-11-10 15:27:48 【问题描述】:

我遇到了一个 Access Front-End 表单不允许添加的问题,即使检查了添加。在后端转换之前,这工作正常,但现在不行。

背景 -- 重要

我一直在从事一个项目,该项目涉及探索一种名为 SSMA 的工具,以将 Access 后端移动到 SQL Server 并使其与相同的 Access 前端一起运行。为此,我一直在努力解决前端的问题。所有表的所有数据连接都很好,大多数前端功能都可以正常工作,但我试图诊断的一个错误很难修复。

我有一个表单/子表单,它应该拉起并允许用户输入信息,还可以在数据表视图中单击输入并添加其他元组。在转换之前,这工作正常。我链接到 SQL Server 的新访问前端文件似乎不允许添加。如果数据已经在表中,它将拉起并允许更新该信息,并且通过右键单击元组也可以删除,但不能添加。左边没有*。像这样设置的前端还有其他表单和子表单,但它们都可以正常工作。这个具有与那些相同的属性。该数据表引用了两个表。

我一直在寻找几个小时来试图找到解决方案。在此之前也从未接触过access或vb。非常感谢任何帮助。

复选框数据类型默认为 0 并允许空值 Access 2013 与 SQL Server 表的 ODBC 连接

【问题讨论】:

如果在Access(而不是表单)中直接打开链接表,表是否允许插入?发布 SQL Server 表 DDL。您可以通过使用 SQL Server Management Studio docs.microsoft.com/en-us/sql/ssms/… 编写表来获得此信息 如果 RecordSource 指向可能生成不一致更新的查询,Access 将不允许插入。同样,Access 也不允许插入视图。正如 David 要求的那样,发布您的 RecordSource,它的 SQL 可能会有所帮助。 @DavidBrowne-Microsoft 是的,我可以通过访问 Access 中的链接表进行插入。在进行这些插入之后,我还可以通过 SSMS 访问 SQL Server 来验证它们是否成功。 @krishKM 记录源看起来像这样。我已经更改了名称,但它遵循这种格式 SELECT ChildTable.ChildTableID, ChildTable.Obj1ID, ChildTable.Obj2, ParentTable.Obj3, ParentTable.Obj4, ParentTable.Obj5, ParentTable.Obj6, ParentTable.Obj7, ParentTable.Obj8, ParentTable.Obj9 , ParentTable.Obj10, ChildTable.Obj11, ChildTable.Obj12, ParentTable.Obj13, ParentTable.Obj14, FROM ParentTable INNER JOIN ChildTable ON ParentTable.ChildTableID = ChildTable.ChildTableID; @T.Ladd 您必须将查询更改为左连接符并从主表(您要插入的表)返回 * 【参考方案1】:

只需在评论中添加 krish KM 提供的解决方案即可。

将查询更改为左连接器并从主表返回 * (你要插入的那个)

那个(SELECT *,而不是 SELECT [col1]、[col2]、[etc.])为我解决了这个问题。

【讨论】:

以上是关于MS Access 表单不允许添加 SQL Server 后端的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 子表单数据条目在插入 SQL 时被锁定

MS access运行SQL不插入数据,没有错误

更新 SQL Server 数据库时如何更新 MS Access 表单?

MS Access 未打开时 DMax 功能不起作用

启用不安全内容后,MS Access 表单被破坏

连接到 ODBC 时出现 MS Access 错误