用于根据组合框输入删除单行的 MS-Access VBA 代码

MS-Access VBA code for deleting a single row based on combo box inputs

我对访问还比较陌生,过去只做过一点编码,所以虽然反复试验让我找到了方法,但我仍然很困惑。我想出了如何创建与库存(研究工具包)相关的级联表单,但想编写一个函数,该函数将根据组合框信息仅删除一行(我会执行删除查询,但它会删除所有有效期相同的试剂盒)。我的表单是 'Study to kit Query'、table 'Inventory' 第一个字段是来自组合框 'kit name select' 的 'kit name' 然后还有另外两个字段,研究和到期日期。这就是给我带来麻烦的原因:

Function Delete_Record()

DoCmd.RunSQL "DELETE * FROM Inventory
WHERE (((Inventory.[Kit Name]) = [Forms]![Study to kit Query]![Kit name select]) And ((Inventory.[Exp Date]) = [Forms]![Study to kit Query]![Expiration select]) And ((Inventory.Study) = [Forms]![Study to kit Query]![Study Select]))
LIMIT 1;"

编辑: 我已经能够让它响应条件命令,但限制部分仍然导致语法错误。

如果有人可以帮助解决这个问题,或者给我一些指导,可以采用从表单上的组合框中提取的这三个标准并删除 table 中的单个记录,我会很高兴。谢谢!

Access 不支持 LIMIT
相反,您可以像这样使用 TOP

DELETE FROM (SELECT TOP 1 * FROM Inventory
WHERE (((Inventory.[Kit Name]) = [Forms]![Study to kit Query]![Kit name select]) 
And ((Inventory.[Exp Date]) = [Forms]![Study to kit Query]![Expiration select]) 
And ((Inventory.Study) = [Forms]![Study to kit Query]![Study Select])));