ADO 将数组传递给 SQL 语句
ADO passing an array to SQL statement
我正在尝试将数组直接传递给 SQL 语句。是否可以在 IN 关键字后直接使用 MyArray() 而不是 MyAr ?
Dim MyArray() As String
MyArray() = Array("YYYY", "BBB")
MyAr = "'YYYY','BBB'"
Set shiftrecordset = New ADODB.Recordset
strSQL1 = "SELECT * FROM assignements where shiftname in (" & MyArr & ")"
shiftrecordset.Open strSQL1, cn, adOpenKeyset, adLockOptimistic
这不可能。不过,您可以编写一个函数来代替它。
Private Function MakeIN(sArr() As String) As String
Dim i As Long
Dim lUB As Long
lUB = UBound(sArr)
For i = LBound(sArr) To lUB
MakeIN = MakeIN & "'" & sArr(i) & "'"
If i < lUB Then MakeIN = MakeIN & ","
Next i
End Function
我正在尝试将数组直接传递给 SQL 语句。是否可以在 IN 关键字后直接使用 MyArray() 而不是 MyAr ?
Dim MyArray() As String
MyArray() = Array("YYYY", "BBB")
MyAr = "'YYYY','BBB'"
Set shiftrecordset = New ADODB.Recordset
strSQL1 = "SELECT * FROM assignements where shiftname in (" & MyArr & ")"
shiftrecordset.Open strSQL1, cn, adOpenKeyset, adLockOptimistic
这不可能。不过,您可以编写一个函数来代替它。
Private Function MakeIN(sArr() As String) As String
Dim i As Long
Dim lUB As Long
lUB = UBound(sArr)
For i = LBound(sArr) To lUB
MakeIN = MakeIN & "'" & sArr(i) & "'"
If i < lUB Then MakeIN = MakeIN & ","
Next i
End Function