2017-11-06 11 views
0

Ich versuche, ein Array direkt an eine SQL-Anweisung übergeben. Ist es möglich, MyArray()direkt nach dem Schlüsselwort IN anstelle von MyAr zu verwenden?ADO übergibt ein Array an SQL-Anweisung

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 

Antwort

3

Das ist nicht möglich. Sie könnten stattdessen eine Funktion schreiben, um das zu tun.

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 
Verwandte Themen