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