一些多年来工作的代码突然开始产生意外的(和错误的)结果。该代码以一种形式运行,与此类似:Access 2007 + SQL 2008:书签操作停止工作
Dim rs As DAO.Recordset
Set rs = Me.RecordsetClone
rs.FindFirst "docId = " & strContainsDocIdNumber
Me.Bookmark = rs.Bookmark
此代码通常会将用户记录到正确的记录中。最近它开始行为不正常,去完全无关的记录。例如而不是去DocId 66345,它去DocId 1042(总是小数字)。
我曾尝试逐步调试,检查值,不知道。
我还重新编制了SQL Server 2008 R2数据库中的所有表,并刷新了表链接,没有任何改进。
任何暗示或建议?
编辑:我通过使用DoCmd.FindRecord解决了这个问题,我很确定我的代码没有问题,因为它工作了几年没有问题。我正在寻找有关Access-SQL Server交互错误的线索,如this one。
当你调试,问题出在哪里? 'strContainsDocIdNumber'是否有你期望的值? findfirst方法会将您带到预期的记录吗? rs.bookmark的值是否有效并与me.bookmark不同? – Beth 2011-03-24 14:43:41
@Beth:我编辑了这个问题。例如,错误在于显示代码让用户记录1034,而变量strContainsDocIdNumber包含66400。但代码有4年的工作很好,并且在另一个站点仍然工作正常! – 2011-03-24 16:13:09
是你的样本数字吗?这种差异看起来非常接近65536,这强烈暗示了某种溢出......你最近是否只有65k以上的记录? – Unreason 2011-03-24 16:24:36