2013-05-10 54 views

回答

1

我不建议使用SQL语句删除记录,除非确实没有其他选项。

你可以把按钮放在子窗体上吗?我认为除了数据表视图外,所有子表单都允许您在其上放置按钮。然后运行正常的代码来删除记录。

DoCmd.RunCommand acCmdDeleteRecord 

EDIT1: 由于您使用的你已经基本上两个选项的数据表视图。

1)数据表视图提供了一个右键菜单来删除记录,如果你走到最左边的行。

2)您的其他选项是在运行我上面列出的代码的子表单上创建一个公共函数,然后在用户单击主窗体上的按钮时从主表单调用它。

+0

不行不行,因为你不能在数据表中为每个记录放一个按钮。使用Visual Studio使用Access 2007,但无论如何谢谢! – 2013-05-10 14:26:00

+1

您的原始问题并未说明您尝试使用哪种形式的表单。我的答复与视觉工作室无关。 – HK1 2013-05-10 17:31:11

+0

@ HK1。我对你为什么不推荐使用SQL删除记录感兴趣?我经常使用它们,但通常使用未绑定的表格。有了一个简单的确认框和一些验证,他们似乎对我来说很安全? – Eddie 2013-05-13 09:01:15

1

SQL语句的一个问题是在PlantTransactionQueryWHERE之间没有分隔符(空格或换行符)。我缩短了字符串,使其更加明显。

strSQL = "Delete * FROM PlantTransactionQuery" & _ 
"WHERE TransactionID=" 

此行添加到您的代码,你马上建立后弦。

Debug.Print strSQL 

然后你可以去立即窗口(按Ctrl + 克)检查你问的数据库引擎来执行该语句。如果问题不明显,请复制语句文本并将其粘贴到新的Access查询的SQL视图中以进行测试。

1

错误是因为SQL字符串缺少表名和WHERE子句之间的空格。当前语句(... PlantTransactionQuery” & _ “WHERE的TransactionID =” ...)将导致SQL字符串,它看起来就像这样: “删除* FROM PlantTransactionQueryWHERE的TransactionID =” & [参数]访问将不能够找到一个表中调用PlantTransactionQueryWHERE。 要解决此问题,只需添加任何表名和引号(... PlantTransactionQueryWHERE之间的空间“& _)或WHERE子句(前” WHERE ...)。

+0

请考虑在编辑对话框的帮助部分后在你的答案中格式化代码 – 2014-07-22 17:15:14

相关问题