【问题标题】:DELETE and INSERT records from one ACCESS table to another table with VBA and SQL使用 VBA 和 SQL 从一个 ACCESS 表删除和插入记录到另一个表
【发布时间】:2021-08-02 02:01:51
【问题描述】:

场景:一个有 2 个表的数据库。两者都有相同的字段。它们没有连接,也没有查询,也不应该有。 Table1 被插入到一个表单中并且不断更新,table2 一个都没有! Table1的记录中有一个checkbox:如果在表单中设置,则应该将记录复制到table2中。如果删除,table2 中的记录应该被再次删除。这样,即使在 Table1 更新后,所选记录也应保留在 Table2 中。我在使用 SQL 代码时遇到问题...它可以正常工作,但是在删除记录时我得到各种错误,并且记录没有被删除!

VBA 代码作为代码(点击时)以表单形式附加到复选框元素“chBOX”

这是我失败的代码...有人有解决方案吗?

If chBOX.Value = True Then
 CurrentDb.Execute _
 "INSERT INTO tblSaveSelection " & _
 "SELECT * FROM tblMain WHERE chBOX =TRUE"
  'maybe an idea here too? Do not insert all records but only this 
  'one with the activated chBOX?
ElseIf chBOX.Value = False Then
 CurrentDb.Execute _
 "DELETE FROM tblSaveSelection " & _
 "SELECT * FROM tblMain WHERE chBOX.value =false"
   '!!!!! Here ist the problem...it should be: delete the one record from tblSaveSelection 
   'where ID = tblMain.ID AND tblMain.chBOX = FALSE !!!!!!
End If

【问题讨论】:

  • 可能是DELETE FROM tblSaveSelection WHERE ID = " & Me.IDDELETE FROM tblSaveSelection WHERE ID IN (SELECT ID FROM tblMain WHERE chBox = False)"
  • 为什么会有两个相同的表重复数据?为什么不只使用 chBox 字段并使用查询来过滤记录?这是一个多用户数据库吗?用户在设置 chBox 值时是否存在冲突?
  • 它有效。谢谢!

标签: sql vba ms-access insert sql-delete


【解决方案1】:

选项:

  1. "DELETE FROM tblSaveSelection WHERE ID = " & Me.ID

  2. "DELETE FROM tblSaveSelection WHERE ID IN (SELECT ID FROM tblMain WHERE chBox = False)"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 2010-11-29
    • 2020-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多