我正在研究一些 VBA 宏。我还使用 ADODB.Recordset 来访问我的 Access 数据库中的数据。
现在,我需要遍历我的表中的记录,并且在这个循环中,还需要在另一个函数中更新同一个表。
这是代码(为便于阅读而清理)。
Dim strSql As String
Dim rstCycles As adodb.Recordset
strSql = "SELECT * FROM tblCycles WHERE DatePlanning = #" & dteCurrentDate & "#"
Set rstCycles = SelectQuery(strSql)
While Not rstCycles.EOF
if ... then
rstCycles("NoCycle1") = ...
rstCycles.Update
end if
RefreshPlanning (*)
rstCycles.MoveNext
Wend
(*) 在此函数中,我对 tblCycles 表执行选择。
问题是在 rstCycles.Update 之后,数据不会立即记录在磁盘上,因此对 RefreshPlanning 的调用不会读取更新的数据。如果我在更新后设置“1 秒暂停”,一切正常。我不想在我的循环中使用一种暂停。还有其他解决方案吗?
更新 - - - - - - - -
RefreshPlanning 是一个简单的函数,用于根据我的 tblCycles 表刷新我的 excel 表。
Sub RefreshPlanning(DatePlanning As Date, CodeEquipement As String)
Dim strSql As String
Dim rstCycles As adodb.Recordset
strSql = "SELECT * FROM tblCycles WHERE DatePlanning = #" & DatePlanning & "# AND CodeEquipement = '" & CodeEquipement & "'"
Set rstCycles = SelectQuery(strSql)
While Not rstCycles.EOF
' Some code here to update my excel sheet
' ...
rstCycles.MoveNext
Wend
End Sub