首页 > 解决方案 > 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

标签: sqlvba

解决方案


看看使用这样的东西

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

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


推荐阅读