Access

SQL Serverにリンク接続しているテーブルを開くと#Deletedと表示される

記事内に商品プロモーションを含む場合があります

AccessでSQL Serverにリンクしているテーブルを開くとデータが存在するのに全て【#Deleted】と表示される??

今回の現象はSQL Serverのテーブル内にbigint型のフィールドがあったことが原因でした。

Accessの標準機能ではbigintをサポートしていないようです。

このため、リンクテーブルをテーブルデザインで参照すると、bigint型のフィールドの型がテキスト型となっていました。

現象の確認(マイクロソフト技術情報より)

マイクロソフト技術情報参照>>

記事内に対応方法が記載されていたので一部転載します。

大きい数値データ型を有効にする

既定では、大きい数値データ型は、リンクとインポートの操作に対して有効ではありません。ただし、Access の [リンク/インポートされたテーブルで大型の数値 (BigInt) データ型をサポート] オプションを設定すると、サポートを明示的に有効にすることができます。このオプションを設定しようとすると、データベースの互換性を保つ必要がある場合に、警告メッセージが通知されます。このオプションを設定すると、データベースは以前の Access のバージョンとの下位互換性がなくなります。

詳細については、「カレント データベースのユーザー オプションを設定する」と「下位互換性に関する考慮事項」を参照してください。

 

古いバージョンのAccessをお使いの場合、この「オプション設定」自体がない場合があります。(ちなみに2007にはありません。)

対応方法

SQL Serverのフィールド型を変更することが可能であれば変更して再リンクすれば問題ありません。

フィールド型を変更することが難しい場合、直接リンクテーブルを参照せず、パススルークエリーを使いましょう。

 

ABOUT ME
アズビーパートナーズ
プログラマー→社内SE→SIerのお仕事をしています。 メーカー勤務を経て、中小企業の社内SE、フリーランスなど様々な形態で働いてきました。 業務上生まれた困った…を解決してきたTipsを備忘録も兼ねて公開しています。 困っている誰かのお役に立てれば幸いです。