我最近遇到了在32567左右达到我表中最大记录的问题。我遇到了一个溢出错误,试图访问记录。我弄清楚了这是如何发生的,因为我只有大约2000个实际记录。这是达到32567的自动数字。
它发生了,因为我使用两个表。文件和档案。文档每天都在硬盘驱动器上的文件夹中填充所有文件。然后将其与表存档进行比较,并从文档表中删除所有双重记录。之后,将新文件添加到档案表中,并再次清空文档表。
但是,文档中所有已删除的记录都使用了自动数,这使其快速增加。我该怎么做才能防止这种情况发生?
问候Marco
既不限于32567(2^15-1(。
您可能具有Archive
中的ID列定义为Integer
(16位(,而不是Long
(32位(。
将其更改为长时间,您将有很长的时间。:(
从您的描述中,看起来您正在使用[文档]作为临时表。您可以扩展
"文档表再次清空。"
功能要重新创建您的文档表,删除旧文档表。这将重置自动化问题。
DoCmd.TransferDatabase acImport, "Microsoft Access", currentproject.Path & "" & currentproject.Name,acTable,"Documents","DocumentsFresh",structureonly:=true
docmd.DeleteObject acTable,"Documents"
Docmd.rename "Documents", acTable, "DocumentsFresh"
也要当心,如果您要在文档上传达。autonumber身份,您不应遵循此过程。仅当您需要临时表功能时才执行此操作。