SQL 记录集关闭内部循环



我有一个关于在循环中打开和关闭记录集的问题。我现在拥有的代码工作正常,除了我知道它可以以不同的、更快或更好的方式编码。我对SQL不是那么高级,因此我的问题。

因为每次代码有点慢时我都必须关闭我的记录集。

 Do Until Cells(c, 2).Value = Empty
        TeamMember = Cells(c, 2).Value
        r = 4
        For i = 4 To 34
            Days = Cells(r, i).Value
             strSQL = "SELECT [" & TeamMember & "] From [Planning$] Where [Days]=" & "#" & Format(Days, "mm/dd/yyyy") & "#" & ""
             rs.Open strSQL, DBConnection, adOpenDynamic, adLockOptimistic
             Cells(c, i).Offset(0, 0).CopyFromRecordset rs
             rs.Close
            Next i
        c = c + 1
    Loop

看看使用这样的东西

"Where [Days]>=#" & _
                CDate(Application.WorksheetFunction.Min(Range("a4:a34"))) & _
                "# AND [Days]<=#" & _
                CDate(Application.WorksheetFunction.Max(Range("a4:a34"))) & "#"

然后使用记录集.find方法查找您的日期,然后只使用.moveFirst每个循环。

最新更新