在SQL语句中使用VBA数组

VBw*_*now 3 sql ms-access vba access-vba

我正在尝试编写一些使用SQL从几个表中删除行的代码.

用户可以在文本框中键入类型编号,该文本框由逗号分隔,该逗号在SQL DELETE语句的WHERE子句中使用.

我已设法将字符串拆分为变量数组,现在我想将其插入到我的SQL语句中.

如何将变量插入SQL语句并使其遍历数组的每个元素?

编辑:更多的挖掘教会了我关于For Each Next的陈述.这可能是我正在寻找的.

Fio*_*ala 7

我建议你在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)