Sql 无法使用MS Access前端删除记录

Sql 无法使用MS Access前端删除记录,sql,vba,postgresql,ms-access,odbc,Sql,Vba,Postgresql,Ms Access,Odbc,我在通过MS Access前端删除记录时遇到了一个问题。在对话框窗体上,我放置了按钮,在onclick事件中,我使用VBA命令RunCommand acCmdDeleteRecord创建了一个子项 执行似乎在继续,我收到了关于从数据库中删除单个记录的警告,在我点击OK并刷新之后,什么也没发生。事实上,删除的记录仍然存在 此外,我尝试将其从MS Access查询(表单基于该查询)中删除,但仍然没有成功-再次出现确认窗口,单击“确定”按钮并刷新后,记录仍保留在表中 我已经成功地直接从rdbms中删除

我在通过MS Access前端删除记录时遇到了一个问题。在对话框窗体上,我放置了按钮,在onclick事件中,我使用VBA命令
RunCommand acCmdDeleteRecord
创建了一个子项

执行似乎在继续,我收到了关于从数据库中删除单个记录的警告,在我点击OK并刷新之后,什么也没发生。事实上,删除的记录仍然存在

此外,我尝试将其从MS Access查询(表单基于该查询)中删除,但仍然没有成功-再次出现确认窗口,单击“确定”按钮并刷新后,记录仍保留在表中

我已经成功地直接从rdbms中删除了记录(Postgresql 9,4 ODBC通过连接字符串和链接表连接到MS Access前端)。Postgresql日志中没有其他信息。似乎一切都应该正常,但事实并非如此。并且没有任何错误消息。你能给我一些建议吗

以下是SQL查询:

选择inventory.inventory\u id、inventory.serial\u number、inventory.registry\u number、,
存货.制造年份,存货.说明,
库存.分类\标识\分类,库存.人员\标识\人员,
inventory.classification\u id\u classification,inventory.case\u系列,
inventory.case\u id、inventory.comments、inventory.mac\u地址、,
分类。分类\标识,分类。供应商,分类。型号,
分类。类型\u标识\u目录\u分类\u类型,分类。吉姆,
dict\u分类类型。type\u id,dict\u分类类型。type\u名称,
personal.personal\u id,personal.first\u name,personal.last\u name,
personal.operation\u id,personal.seal\u编号,
人事、军事等级、分类、分类id、,
dict_classification.分类缩写,
记录分类、分类、名称、携带情况、描述、,
携带箱、位置、库存、评论、id、,
inventory\u comments.comment,inventory\u comments.inventory\u id\u inventory,
inventory.sdip_27,inventory.seal_编号,inventory.seal_编号,
存货清单.说明
从库存\u注释右连接(携带\u箱
右联接(((库存内部联接分类
在库存上。产品组合\u id\u产品组合=产品组合。产品组合\u id)
左连接dict\u分类\u类型
关于分类.type\u id\u dict\u分类\u types=分类\u分类\u types.type\u id)
左侧加入库存人员。人员\u id\u人员=人员。人员\u id)
在库存上左连接目录分类。分类\u id\u分类
=dict\U分类。分类\U id)
打开(携带案例。案例id=库存。案例id)
和(携带\箱。箱\系列=库存。箱\系列))
在inventory\u comments.inventory\u id\u inventory=inventory.inventory\u id上
按存货订购。存货\u标识;
多谢各位
烟雾。

请结束这个问题

我发现将delete查询与DoCmd.RunSql“delete*FROM table WHERE condition”一起使用最可靠。这种方法提供了对发生的事情的更多控制和清晰的代码(除非您讨厌SQL)

谢谢你的建议


烟雾

结束这个问题

我发现将delete查询与DoCmd.RunSql“delete*FROM table WHERE condition”一起使用最可靠。这种方法提供了对发生的事情的更多控制和清晰的代码(除非您讨厌SQL)

谢谢你的建议


烟雾

因此,您可以通过在链接表中删除记录来删除记录,但不能在基于它的查询中删除记录?或者是直接从Postgresql本身的rdbms中删除的?好吧,我刚刚尝试使用链接表删除它-成功了。早些时候,我使用pgAdminIII实现了这一点。我不能做的是将此查询作为数据源附加使用查询或表单。越来越接近Ypur问题…:)啊,当然是奇怪的行为。不过,我无法用提供的信息复制它。请提供查询。您可以尝试将表单直接绑定到表。啊,我很惊讶Access允许您删除具有这么多联接的查询记录(并且不返回
querynotupdateable
)。您最好使用删除查询或记录集手动删除记录。甚至我也不知道应该从哪个表中删除查询中的记录(我猜是inventory_注释,但也可能是其他注释之一)。这是一个主观问题。级联查询可能会根据情况增加或减少复杂性。我通常尝试将表单直接绑定到表,而不使用任何查询,并使用子表单和域聚合来显示相关信息,但这可能不适合所有数据库。因此,您可以通过在链接表中删除记录来删除记录,但不能在基于它的查询中删除它?或者是直接从Postgresql本身的rdbms中删除的?好吧,我刚刚尝试使用链接表删除它-成功了。早些时候,我使用pgAdminIII实现了这一点。我不能做的是将此查询作为数据源附加使用查询或表单。越来越接近Ypur问题…:)啊,当然是奇怪的行为。不过,我无法用提供的信息复制它。请提供查询。您可以尝试将表单直接绑定到表。啊,我很惊讶Access允许您删除具有这么多联接的查询记录(并且不返回
querynotupdateable
)。您最好使用删除查询或记录集手动删除记录。甚至我也不知道应该从哪个表中删除查询中的记录(我猜是inventory_注释,但也可能是其他注释之一)。这是一个主观问题。级联查询可能会根据情况增加或减少复杂性。我通常尝试将表单直接绑定到表,而不使用任何查询,并使用