添加自动编号时“超出系统资源”

时间:2013-04-23 18:30:26

标签: vba ms-access

我有一张约400,000行的表。我试图添加一个自动编号字段。当我尝试使用Design View添加字段时,收到了错误消息: File sharing lock count exceeded. Increase MaxLocksPerFile registry entry.

我不想进行永久性的注册表更改,所以我尝试了以下VBA:

Sub addAuto()

DAO.DBEngine.SetOption dbMaxLocksPerFile, 1000000
CurrentDb.Execute "ALTER Table large_data add column rowID AUTOINCREMENT", dbFailOnError

End Sub

这给了我以下错误消息:

Run-time error '3035': System resource exceeded

如何添加自动编号字段?

1 个答案:

答案 0 :(得分:2)

在尝试添加large_data字段之前,可以通过从rowID丢弃行来避免该错误。然后你必须重新添加数据。

  1. 制作数据库文件的副本。
  2. 清空large_dataDELETE FROM large_data
  3. 压缩数据库。
  4. 将自动编号字段添加到表格的设计中。
  5. 链接到数据库副本中的large_table
  6. 运行“追加查询”,将链接表中的数据添加到large_table的新版本中。
  7. 像...一样的东西。

    INSERT INTO large_table (
        fld1,
        fld2,
        fld3
        )
    SELECT
        fld1,
        fld2,
        fld3
    FROM linked_table;
    

    在该查询中包含除rowID字段之外的所有字段的名称。 db引擎将处理自动编号值。