首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >记录集更新延迟

记录集更新延迟
EN

Stack Overflow用户
提问于 2015-07-13 22:33:19
回答 2查看 973关注 0票数 1

我正在尝试使用ADO Recordset对象更新Excel VBA中的MS Access数据库。当我启动rs.Update方法时,我希望下面的代码等到数据库更新后再执行。

数据库似乎需要3-5秒来注册更新方法。在此之前,如何延迟后续代码的执行?

EN

回答 2

Stack Overflow用户

发布于 2015-07-13 22:41:31

这是一个简单的函数,我现在使用它来暂停处理几秒钟。首先,确保您的模块中有API调用:

代码语言:javascript
运行
复制
Private Declare Sub sapiSleep Lib "kernel32" _
    Alias "Sleep" _
    (ByVal dwMilliseconds As Long)

然后添加此函数:

代码语言:javascript
运行
复制
Public Function sSleep(lngMilliSec As Long)
    If lngMilliSec > 0 Then
        Call sapiSleep(lngMilliSec)
    End If
End Function

因此,您可以使用以下命令查看其工作原理:

代码语言:javascript
运行
复制
Public Function sTestSleep()
Const cTIME = 1000 'in MilliSeconds
    Call sSleep(cTIME)
    MsgBox "Before this Msgbox, I was asleep for " _
        & cTIME & " Milliseconds."
End Sub

因此,要暂停代码处理5秒钟,您可以说:

代码语言:javascript
运行
复制
Call sSleep(5000)

所有这些代码都取自here

票数 1
EN

Stack Overflow用户

发布于 2015-07-13 22:58:47

Update方法实际上会阻塞,直到更新完成,因此您的代码已经在“等待”它了。但是,您必须先提交事务,然后其他人(用户、事务)才能真正看到更改。什么时候对Connection对象调用CommitTrans方法?是不是这导致了你的延迟?如果是这样,“暂停”几秒钟不会改变任何事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31386213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档