SQL Recordset在循环内关闭

时间:2019-02-11 13:05:18

标签: sql vba

我有一个关于在循环中打开和关闭记录集的问题。 我现在拥有的代码可以正常工作,但事实是我知道可以用一种不同的,更快或更佳的方式进行编码。我对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

1 个答案:

答案 0 :(得分:0)

看看使用这样的东西

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

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