AccessでSQL Serverにリンクしているテーブルを開くとデータが存在するのに全て【#Deleted】と表示される??
今回の現象はSQL Serverのテーブル内にbigint型のフィールドがあったことが原因でした。
Accessの標準機能ではbigintをサポートしていないようです。
このため、リンクテーブルをテーブルデザインで参照すると、bigint型のフィールドの型がテキスト型となっていました。
現象の確認(マイクロソフト技術情報より)
記事内に対応方法が記載されていたので一部転載します。
大きい数値データ型を有効にする
既定では、大きい数値データ型は、リンクとインポートの操作に対して有効ではありません。ただし、Access の [リンク/インポートされたテーブルで大型の数値 (BigInt) データ型をサポート] オプションを設定すると、サポートを明示的に有効にすることができます。このオプションを設定しようとすると、データベースの互換性を保つ必要がある場合に、警告メッセージが通知されます。このオプションを設定すると、データベースは以前の Access のバージョンとの下位互換性がなくなります。
詳細については、「カレント データベースのユーザー オプションを設定する」と「下位互換性に関する考慮事項」を参照してください。
古いバージョンのAccessをお使いの場合、この「オプション設定」自体がない場合があります。(ちなみに2007にはありません。)
対応方法
対応方法
- 上述のようにAccessのカレントデータベースオプションを変更する
- SQL Serverのフィールド型を変更する
- 直接リンクテーブルを参照せず、パススルークエリーを使う
SQL Serverのフィールド型を変更することが可能であれば変更して再リンクすれば問題ありません。
フィールド型を変更することが難しい場合、直接リンクテーブルを参照せず、パススルークエリーを使いましょう。
ABOUT ME