我有一个的Microsoft Access 2003 ADP,它采用了约束“主”的形式与一些束缚连续式子窗体。它们都经由一个辅助类利用断开连接的记录。

一些用户已经注意到了同样的奇怪的行为:他们添加/编辑在连续子窗体的记录,他们离开该记录(犯编辑的记录),他们锁定计算机(按Ctrl + Alt + Del键),他们解开的计算机上,它们返回到形式,约5秒后它闪烁并恢复到原始的未经编辑的状态。

我已经能够重现此以上的步骤,进一步,使我的形态的变化,必然断开连接的记录后,我去了SQL Server和改变的值。锁定/解锁计算机例行程序之后,将显示形式闪烁和刷新,我只是在SQL Server输入的新值。

这是因为如果约5秒钟后,我的断开记录被重新连接(在它自己的)和重新查询记录集。

我知道我不会放弃这里的许多信息,但有没有人遇到断开连接的记录重新连接并再次查询的问题吗?或者至少在那里我可以开始调试的想法?

我有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
有帮助吗?

解决方案

  

我想像处理(保存和取消按钮)交易,而不   表被锁定,在我的多用户系统。对于连续   在访问的形式工作,必须将它们绑定到记录。

可以使用绑定到临时表的形式/子表单来实现只是这种效果。

http://www.access-programmers.co。英国/论坛/ showthread.phpΔT= 206862个

史蒂夫

其他提示

可能有点offtopic,但是这是有趣的代码。我从来没有想过用这样的数据集进行操作。有没有你为什么用这些'断开数据集的一个特别的原因?

我也有相同的代码试验而回,并有同样的经历。

这是我看到的样子,为什么记录重新连接到服务器...

如果您检查您的窗体的记录(绑定记录之后)你会看到摆在那里作为价值你的SQL语句。既然是ADP你的表单总是绑定到服务器。因此,当表单刷新,记录刷新太

如果你找到一个解决这个请邮寄!

感谢您。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top