在我目前的工作中,我必须解决旧的Access97应用程序中的一些问题。我的最后一个问题是:一些报告是使用外部DLL创建的,有时报告是错误的。它们包含前一次调用的数据或缺少详细数据等。如果我在没有任何数据更改的情况下启动相同的报告,则报告是正确的。
原因在于我的选择,外部dll从访问中获取过时数据而不是当前数据,这是在调用dll之前写入的。是否有任何记录的方法来清除访问中的内部缓冲区,或者我是否必须添加一些等待周期,希望它能在大多数时间内避免这个问题?
答案 0 :(得分:0)
有多种访问级别设置可以控制此操作。 ExclusiveAsyncDelay和SharedAsyncDelay。 ExclusiveAsyncDelay默认设置为2000毫秒或2秒。因此,假设您的应用程序是唯一访问数据库的应用程序,则可能是您的问题。
您可以在Access 97帮助中搜索这些关键字,以获取有关将这些更改永久性地发送到注册表的说明。这将需要管理员权限。
或者更好的是使用dbengine.SetOption临时覆盖数据库的设置。请注意,您必须在更新相关数据库的代码开头执行dbengine.setoption方法。