我有一个VB6 / Access应用程序偶尔遇到错误的自动编号字段种子的问题.
假设有一个带有自动编号字段ID的表MYTABLE(也是主键).让我们说目前ID的最大值是1000.当应用程序插入新记录(未明确提供ID值)时,由于某种原因,它决定下一个自动编号字段值是950(而不是1001,因为它应该是) – 因此发生主键违规错误.
我发现了一篇描述我症状的知识库文章:http://support.microsoft.com/kb/884185.简而言之,他们建议运行查询:
ALTER TABLE MYTABLE ALTER COLUMN ID COUNTER(1001,1)
当我尝试这样做时,它失败并显示“无效的字段数据类型”
如果我在Access中打开数据库并进行压缩/修复,问题就解决了,但是我需要能够在应用程序中解决这些问题:它安装在全世界成千上万的PC上,并要求人们压缩/使用Access进行维修不是一种选择.
我使用DAO DBEngine.CompactDatabase在应用程序内执行压缩/修复,但它不能解决种子问题,还需要一些额外的技巧.
我希望有人有一个解决方案的想法,我真的很接近绝望
谢谢大家
解决方法
请参考以下文章,它包含一个方法,您可以添加到您的访问项目以执行重置种子.过去,它曾多次成为我的救星:
http://allenbrowne.com/ser-40.html
除此之外,它还解释并深入了解此类问题的原因和可能的解决方案.