我有一个链接到SQL Server表的Access数据库。在Access中,我有一个带有两个多选列表框的表单(让我们调用它们的值x和y)和一个文本框(z)。
选择值并按下按钮时,我希望表单更新值与表单中的值匹配的行:
UPDATE tableName SET ColumnToUpdate = [z]
WHERE Column1 IN ([x1,x2...xn])
AND Column2 IN ([Y1,y2...yn])
有没有这样做的方法?
答案 0 :(得分:1)
您可以枚举每个ListBox中的选定项并构建SQL。像这样的东西
sql = "UPDATE tableName SET ColumnToUpdate = '" & txtZ & "' "
sql = sql & "WHERE Column1 IN (" & GetValuesFromList(listBoxX) & ") "
sql = sql & "AND Column2 IN (" & GetValuesFromList(listBoxy) & ")"
函数GetValuesFromList:
Private Function GetValuesFromList(ListBox lst) as String
Dim Items As String
Dim Item As Variant
Items = ""
For Each Item In lst.ItemsSelected
Items = Items & lst.ItemData(Item) & ","
Next
GetValuesFromList = Left(Items, Len(Items) - 1)
End Function
如果列表框中的选定值是字符串值,则应修改函数以连接引号。