Access ベースのデータを失いましたが、それらを元に戻すことができましたが、オートナンバー列を使用してテーブルの値をコピーすると、数値がインクリメントされます。int に変更して AutoNumber に戻す方法はありますか?
6 に答える
Access 2010でこれを行う方法は次のとおりです。
- データベースのバックアップを作成します。(念のため。)
- テーブル リストでテーブルを右クリックし、[エクスポート] -> [Excel] を選択します。すべてのデフォルトを受け入れます。
- Excel でテーブルを開き、自動付番フィールドに必要な変更を加えます。
- テーブルを開き、すべての行を削除します
- テーブル リストでテーブルを右クリックし、[インポート] -> [Excel] を選択します。
- オプションで、[テーブルに追加] を選択し、テーブルを選択します。他のすべてのオプションのデフォルトを受け入れる
これは、大きなテーブルの実行可能なソリューションではない可能性があります。Excel が約 65K 行以上を処理できるとは思えません。
ユーザー インターフェイスを使用してデータをコピーするのではなく、クエリを使用して追加します。Autonumber フィールドは、特別な既定値を持つ単なる長整数であるため、既に存在する値を追加できます。これは UI では機能せず、SQL でのみ機能します。
Autonumber フィールドには、通常の Long Integer フィールドとは異なるその他のプロパティがいくつかありますが、データの追加に関しては、それらは関係ありません。これらのプロパティの 1 つは、データが入力されると編集できないということです。もう 1 つは、各テーブルに 1 つしか持てないということです。
C# のコードで AutoNumber フィールドを挿入することができました。必要なすべてのデータを取得し、空のテーブルに挿入しました。
データ テーブルのバックアップを作成します。元のテーブルからすべてのデータを削除してから、データベースの圧縮と修復を行います。これを行うと、自動番号フィールドが 1 にリセットされます。これで、バックアップ テーブルからデータを追加できます。
どうやってデータを戻していますか?テーブルからデータを追加し、既存の数値を保持できるはずです。
ただし、整数フィールドから自動採番フィールドに貼り付ける必要があります。フィールドにデータがあると、フィールドを整数から自動採番に変更することはできませんが、自動採番から整数に変更することはできます。