根据工作表数组过滤记录集

时间:2014-06-16 10:28:36

标签: arrays excel-vba ado vba excel

我有一个包含Sheet1.Range(A1:A10)中的值的数组。

打开记录集后,我想根据数组中的值过滤数据。这有可能吗?

由于

1 个答案:

答案 0 :(得分:1)

这对于评论来说太长了,所以这里有一些我使用的函数(这假设字符串作为标准):

Function GetStringInList(rngCriteria As Range) As String
   Dim rngCell           As Range
   Dim strTemp           As String
   For Each rngCell In rngCriteria.Cells
      If Len(rngCell.Value) > 0 Then strTemp = strTemp & ",'" & DoubleQuotes(rngCell.Value) & "'"
   Next rngCell
   ' now strip off leading comma
   GetStringInList = Mid$(strTemp, 2)
End Function
Function DoubleQuotes(strIn As String) As String
   DoubleQuotes = Replace(strIn, "'", "''")
End Function

所以在构建SQL时你可以使用类似的东西:

strSQL = strSQL & " WHERE [FieldName] In " & GetStringInList(Range("A1:A10"))