问题:
关于IN子句用参数代替时,多参数该如何处理?
如何编写删除id where in(1,2,3,4,5) 的查询
DELETE Article.ID
FROM Article
WHERE (((Article.ID) In ([@IDs])));
IDs的值单独为一个的时候可以删除,两个以上的值就不行了
回答:
DELETE Article.ID
FROM Article
WHERE (((Article.ID) In ([@IDs])));
参数只允许有一个,如果你在[@IDs]里面填写 1,2,3仍然被作为一个参数,而不是3个。
如果你要达到你需要的效果,必须用 VBA 来组织 jet SQL 语句
dim strsql as string
dim strIn as string
strIn="1,2,3"
strsql="DELETE Article.ID FROM Article WHERE Article.ID In (" & strIn & ")"
currentproject.connection.execute strsql