Access有时会在保存新记录时跳转到现有记录 - Access2k FE/SQL2005 BE

Dal*_*ale 12 sql database ms-access sql-server-2005 access-vba

在寻找答案并尝试一些不同的事情但没有成功之后,我真的是在绝望中发布这个.

我有一个Access数据库,我最近将表迁移到SQL 2005,Access继续作为前端提供表单,报告和查询.

但是,自从转移到Access FE/SQL BE设置以来,用户一直在报告有时,当他们输入新记录时,他们点击子窗体(保存记录)或点击菜单本身的保存,它会跳转到现有记录.新记录已保存,但由于某些原因,访问在刷新时切换到不同的记录.然后,用户必须关闭,找到保存的记录,然后继续编辑它.

场景:用户输入报价并填写所有报价详细信息,客户,日期等,然后单击行项子表单以添加产品(或单击保存在菜单中),然后突然显示报价表(和line-item subform)显示一些随机引用的详细信息.随机引用可能是最近的,也可能是几年前的,并且与他们输入的报价没有任何共同之处.

这种奇怪的行为只发生在插入新记录时,从不编辑现有记录.用户告诉我,当他们在打开数据库后添加新的(报价,客户,等等)时,它会" 更频繁地 " 发生.

我注意到它只发生在具有子表单的表单上,所以我首先想到的是它与表单数据保存之前通过子表单数据发送Access有关,导致PK违规.但这似乎没有发生:SQL服务器上没有错误,并且记录已成功保存.在添加子表单记录之前强制用户保存主表单记录(即在报价上,强制他们在添加行项目之前保存报价)不起作用,它只会导致保存时跳转(有时).

它不是在保存或当前运行的vba,我在所有事件处理程序上设置了断点,因为它跳转并且没有执行vba.一些"跳跃"表单在表单上没有vba.但都有子表格.我怀疑它与记录锁定有关.

运行这些表的服务器是SQL Server 2005,用户使用的是Access 2000和2003的混合,主要是带有几个旧Win2k盒的XP SP3.他们正在使用合并复制,并且有几个用户正在运行复制的SSEE2005版本并订阅主服务器.大多数用户不会被复制,只是通过ODBC或SQL本机客户端连接直接连接到服务器.但我已经证实这种情况发生在所有用户身上,通常是一天一次或两次,而且之前发生在我身上.所以它不是用户问题.

关于这种行为最糟糕的部分是它只在某些时候发生,我没有设法找到一个总会导致它发生的场景.

如果有人之前经历过这样的事情,请告诉我你是如何解决的,甚至建议也欢迎.

更新: (1/10/09)问题解决了,感谢David Fenton.在打开它以添加记录之前将表单设置为数据输入模式(Form.DataEntry = true)确实可以防止跳转.自从我在一周前更改此内容后,客户端报告完全没有任何问题.

Ton*_*ews 8

客户报告偶尔出现类似问题.它在开始使用合并复制后立即启动.

我已经通知了Microsoft Access产品组中的几个联系人以及我的Access和SQL Server MVP.

请将您的电子邮件地址通过电子邮件发送给我,以便我可以将其转发给我在Microsoft的联系人,因为我认为他们希望直接与您联系.在granite.ab.ca的托尼

BTW出色的故障排除和详细的问题描述.