STARDUST can be found.

ごくたまに振り返るためのMEMO書きです。

「ほかのユーザーが同じデータを同時に変更しようとしているので、プロセスを中止しました。 」のメモ。

Access97

昨夜、更新クエリ中に件のメッセージが出て・・・。

 

 

はじめは(久しぶりに)DBが壊れたのかと思ったがそうではなく、データ型を[メモ型]で設定しているフィールドの更新(Aの内容をBに書き換え)に詰まっている模様。

エラーメッセージ原因/問題
3197 ほかのユーザーが同じデータを同時に変更しようとしているので、プロセスを中止しました。 このエラーは通常、長い値の列 (OLE データ型またはメモデータ型) に不正なデータが含まれているときにも発生します。長い値の列は、通常行が格納されているページとは別のページに格納されます。テーブルのスキーマに長い値の列がある場合は、Jet データベースエンジンはデータの行を読み取るときに長い値のページを読み取ろうとします。長い値のページを読み取るために、データの行にはポインタがあります。Jet データベースエンジンがデータ列にあるポインタから長い値のページを正確に読み取れなかった場合にこのエラーが発生します。Microsoft Access のデータウィンドウでこの動作を示す列を表示しているときは、通常、列全体がナンバー記号 (#) で表されます。

メッセージ的にはDBの破損も考えられるけど、過去の経験(壊れたDBはオープン不能になる)的に上記だろうということで復旧処理。

更新は不可だけどテーブルの参照はできるので処理としては、

  1. メモ型フィールド以外のフィールドを新しいテーブルに書き出し
  2. メモ型フィールドをExcelとかテキストに出力
  3. 2で出力したデータをインポート
  4. 1と3で出来たテーブルを合体

以上

3のインポート処理でエラーになるデータは弾かれるだろうという甘い考え(期待)のもとに処理したところ成功。

終電に間に合ったw

はじめはロックファイルの問題だろうと高をくくって再起動かけたのは内緒w

 

終電へ三〇歩

終電へ三〇歩

 

  

 

ひと目でわかる Access 2013 (ひと目でわかるシリーズ)

ひと目でわかる Access 2013 (ひと目でわかるシリーズ)

 

 

まあでも、再起動は基本だよねぇ。