我有一个VB6 / Access应用程序,偶尔会遇到错误的自动编号字段种子问题。
可以说有一个具有自动编号字段ID(也是主键)的表MYTABLE。可以说,当前ID的最大值为1000。当应用程序插入新记录(未明确提供ID值)时,由于某种原因,它决定下一个自动编号字段值为950(而不是应为1001)。 )-因此发生主键冲突错误。
我找到了一篇描述我的症状的知识库文章:http : //support.microsoft.com/kb/884185。简而言之,他们建议运行查询:
ALTER TABLE MYTABLE ALTER COLUMN ID COUNTER(1001,1)
当我尝试执行此操作时,它失败并显示“ Invalid field data type”
如果我在Access中打开数据库并执行压缩/修复操作,该问题将得到解决,但我需要能够解决应用程序内部的此类问题:它已安装在世界各地成千上万的PC上,并要求人们进行压缩/修复与访问不是一个选择。
我使用DAODBEngine.CompactDatabase在应用程序内部执行压缩/修复,但它不能解决种子问题,还需要一些其他技巧。
DBEngine.CompactDatabase
有解决方案的想法吗?
请参考以下文章,其中包含您可以添加到您的访问项目中以执行以重置种子的方法。在过去的几次中,它为我节省了很多时间:
http://allenbrowne.com/ser-40.html
除此之外,它还提供了对此类问题的原因和潜在解决方案的解释和见解。