【问题标题】:MS Access form not allowing additions with SQL Server BackendMS Access 表单不允许添加 SQL Server 后端
【发布时间】: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 您必须将查询更改为左连接符并从主表(您要插入的表)返回 *

标签: sql-server database ms-access ms-access-2013


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-12
    • 2021-02-06
    • 2020-06-15
    • 1970-01-01
    • 2022-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多