【发布时间】:2020-07-13 22:14:29
【问题描述】:
请帮帮我!
我有什么:
首先,我使用的是 Access 2007。我有一个包含子表单的表单。在该子表单中,有一个来自 SQL 查询的数据表,该数据表获得 3 个字段。第一个字段(Supprimer)是一个虚拟字段,用于显示将要使用的超链接,有一个按钮:
SELECT "Supprimer", permis.abbreviation, permis.description
FROM permis
INNER JOIN (clients INNER JOIN clients_permis
ON clients.ID=clients_permis.id_clients)
ON permis.ID=clients_permis.id_permis;
我想要什么 我希望我的“删除”超链接删除数据表所选记录会按“del”键会
我的 onClick 事件代码
Private Sub del_Click()
DoCmd.RunCommand acCmdSelectRecord
'SendKeys ("{DELETE}")
DoCmd.RunCommand acCmdDeleteRecord
End Sub
如果我取消注释,Sendkeys ("{DELETE}") 记录将被删除,但是,在我的系统上,这也会触发数字锁定键。谁知道它可以在其他系统上做什么。
DoCmd.RunCommand acCmdDeleteRecord 命令引发运行时错误:2046。
在前面的一点上,上面的代码运行良好。
【问题讨论】:
-
子问题:使用 SendKeys() 方法有多糟糕?
-
我不可能推荐使用 SendKeys。如果您还没有,您可以查看此链接。 @ 987654321@ 在尝试以您的方式删除记录时,似乎没有关于导致此错误的原因的结论。您可以尝试运行 compact 和 repair 以查看是否可以解决问题。
-
您确定您的记录集是可更新的吗?为什么要使用虚拟字段而不是命令按钮来删除?我同意在任何情况下您都不应使用 sendkeys,也没有必要。
-
使用命令按钮会将焦点从数据表上移开,我将无法使用“DoCmd.RunCommand acCmdDeleteRecord”。
-
连续表单(与数据表表单相反)允许您包含按钮,尽管您不能让用户轻松移动列并使用连续表单应用排序。
标签: ms-access vba runtime-error ms-access-2007