gpt4 book ai didi

ms-access - MS Access ADP 断开连接的记录集恢复

转载 作者:行者123 更新时间:2023-12-02 04:17:23 27 4
gpt4 key购买 nike

我有一个 Microsoft Access 2003 ADP,它使用绑定(bind)的“主”表单和几个绑定(bind)的连续样式子表单。他们都通过帮助类使用断开连接的记录集。

一些用户注意到了同样的奇怪行为:他们在连续子表单中添加/编辑记录,他们离开记录(将编辑提交到 Recordset),他们锁定计算机(Ctrl+Alt+Del),他们解锁计算机,他们回到表单,大约 5 秒后它会闪烁并恢复到原始的未编辑状态。

我已经能够按照上述步骤重现这一点,此外,在更改我的表单并绑定(bind)到断开连接的 Recordset 之后,我转到 SQL Server 并更改了一个值。在锁定/解锁计算机例程之后,表单闪烁并刷新,出现我刚刚在 SQL Server 中输入的 NEW 值。

好像大约 5 秒后,我断开连接的 Recordset 正在重新连接(它自己)并重新查询 Recordset。

我意识到我在这里没有提供很多信息,但是有没有人遇到过断开的 Recordsets 重新连接和重新查询的问题?或者至少对我可以从哪里开始调试有一个想法?

如果有人想在他们的环境中重新创建数据库,我有 ADP 和 SQL 脚本来创建数据库。

以下是我创建断开连接的记录集的方式:

Dim cnn                 As ADODB.Connection
Dim stmTest As ADODB.Stream

Set cnn = New ADODB.Connection
cnn.Open Application.CurrentProject.AccessConnection.ConnectionString

' Create recordset and disconnect it.
Set mrsTest = New ADODB.Recordset
mrsTest.CursorLocation = adUseClient
mrsTest.Open "SELECT * FROM [tblChild] WHERE ParentID = 1" _
, cnn _
, adOpenStatic, adLockBatchOptimistic
Set mrsTest.ActiveConnection = Nothing

cnn.Close
Set cnn = Nothing

' Copy recordset to stream in memory.
Set stmTest = New ADODB.Stream
stmTest.Open
mrsTest.Save stmTest, adPersistADTG

' Bind form to disconnected recordset.
Set Me.Recordset = mrsTest

' Open a copy of the recordset from the stream.
Set mrsTest = New ADODB.Recordset
stmTest.Position = 0
mrsTest.Open stmTest

最佳答案

I wanted transaction like processing (Save and Cancel buttons) without the tables being locked, in my multiple user system. For continuous forms in Access to work, they must be bound to a Recordset.



您可以使用绑定(bind)到临时表的表单/子表单来实现此效果。

http://www.access-programmers.co.uk/forums/showthread.php?t=206862

史蒂夫

关于ms-access - MS Access ADP 断开连接的记录集恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2219319/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com