ADODB多用户覆盖数据

问题描述

我在MS Access 2016中拥有数据库,并通过Excel VBA运行更新查询。有时,由于UPDATE语句中的条件,多个用户可以同时执行此操作,然后在不应该覆盖的情况下覆盖其数据。

如何阻止数据覆盖?

当我在Access中打开表时,在VBA中的运行查询与表中的信息之间会有几秒钟的延迟。也许这种延迟是问题所在,并且可以通过某种方式消除?

数据库分为FE和BE,并且连接是持久的。

我的查询

UPDATE 
(SELECT TOP 1 ID,Col1,Update_time,Update_user 
FROM Table1 
WHERE Update_user Is Null 
ORDER BY Col2 DESC,ID)  AS U_ROW 
SET U_ROW.Update_time = Now(),U_ROW.Update_user = [username];

在Excel VBA中,我通过ADODB运行它。命令:

With baseRecordsetCommand
    .ActiveConnection = objectConnection
    .CommandType = adCmdstoredProc
    .CommandText = "qryTest"
    .NamedParameters = True
    .Parameters.Append .CreateParameter("@username",adVarChar,adParamInput,255,Username)
    .Execute recordsAffected
End With

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)