1

〜400,000行のテーブルがあります。自動採番フィールドを追加しようとしています。デザイン ビューを使用してフィールドを追加しようとすると、次のエラー メッセージが表示されました。 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

自動採番フィールドを追加するにはどうすればよいですか?

4

1 に答える 1

2

large_dataフィールドを追加する前に行を破棄することで、このエラーを回避できrowIDます。次に、データを追加し直す必要があります。

  1. db ファイルのコピーを作成します。
  2. 空にするlarge_data( DELETE FROM large_data)
  3. データベースを圧縮します。
  4. テーブルのデザインに autonumber フィールドを追加します。
  5. large_tabledb コピーにリンクします。
  6. 「追加クエリ」を実行して、リンク テーブルのデータを の新しいバージョンに追加しますlarge_table

何かのようなもの ...

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

rowIDそのクエリのフィールドを除くすべてのフィールドの名前を含めます。db エンジンが autonumber 値を処理します。

于 2013-04-23T18:48:14.710 に答える