VBw*_*now 3 sql ms-access vba access-vba
我正在尝试编写一些使用SQL从几个表中删除行的代码.
用户可以在文本框中键入类型编号,该文本框由逗号分隔,该逗号在SQL DELETE语句的WHERE子句中使用.
我已设法将字符串拆分为变量数组,现在我想将其插入到我的SQL语句中.
如何将变量插入SQL语句并使其遍历数组的每个元素?
编辑:更多的挖掘教会了我关于For Each Next的陈述.这可能是我正在寻找的.
我建议你在VBA中构建你的查询,然后你的数字列表可以是一个IN语句:
sSQL = "DELETE FROM table WHERE ID In (" & MyList & ")"
Run Code Online (Sandbox Code Playgroud)
MyList ="1,2,3,4"之类的东西.
如您所见,您不需要阵列,文本框比组合框更合适.如果您希望允许您的用户选择名称,那么列表框很有用.您可以遍历列表框中的选定项目,并根据要在Delete语句中使用的ID构建字符串.(MS Access 2007 - 循环浏览列表框中的值以获取SQL语句的id)
然后,您可以针对数据库实例执行sql.例如:
Dim db As Database
Set db = CurrentDB
db.Execute sSQL, dbFailOnError
MsgBox "You deleted " & db.RecordsAffected & " records."
Run Code Online (Sandbox Code Playgroud)