SQL-Server データの競合でリンクテーブル更新が失敗対応

メモ
リンクテーブルを作成し、Accessでデータ更新を行おうとした場合、「このレコードは他のユーザーによって変更されています。[レコードの保存] を選択すると、他のユーザーによる変更を無視し、自分が行った変更を反映します。 」のようなメッセージが出て、更新が行えない場合がある。

■Access 2000 で、リンクされている SQL Server テーブルのレコードを更新すると、データの競合エラーが発生することがある
http://support.microsoft.com/kb/280730/ja

・原因
Access で Null ビット フィールドが作成されています。これにより、型の不一致が発生します。
または
リンク テーブルで、浮動小数点データ型 (Real) として定義されたフィールドが使用されています。

・対策
BitフィールドのNULL非許容にして規定値が入るようにカラムを変更
で解決した。

ちなみに、テーブルの削除と再作成についての制限がかかっていて、カラムの変更ができない場合がある。

その場合はSQL-ServerManagementツールの
[Tool]-[オプション]
 →[デザイナ]-[テーブルデザイナおよびデータベースデザイナ]
 →「テーブルの再作成を必要とする変更を保存できないようにする」チェックボックスを解除

この記事へのコメント

この記事へのトラックバック