AccessでSQL Server用のODBCデータソースを作成し、リンクテーブルを作成して表示してみると、「#Deleted,#Deleted,#Deleted・・・」と表示されてしまう!
SQL Server上のテーブルをAccessのODBCでリンクしてお手軽に参照したい!なのにできない!
なんてときに役に立つ情報をご紹介いたします。
※書き込みはできませんのでご注意ください。
クリックできる目次
Access「#Deleted」の現象
これですね。#Deleted・・・。これでは、テーブルの中身を確認できませんね。
Access「#Deleted」の対処法・解決策
パススルークエリを使います。
SQL Sever接続用のODBCデータソース作成
#Deletedと表示されている場合は、すでにODBCデータソースは作成済みのため、この手順はスキップしてください。
パススルークエリ作成
クエリのデザインでパススルーをクリックします。
次に、プロパティシートで、ODBC接続文字列の右端にある「・・・」をクリックし、先ほど作成したSQL Server接続用のODBCデータソースを選択します。
SQL文を記述
パススルークエリのSQL文を記述します。以下のように記述すればOKです。
PKカラム名
, [カラム名]
, [カラム名]
FROM
[スキーマ名].[テーブル名]
これでSQL Serverを参照するためのパススルークエリの作成は完了です。あとは作成したパススルークエリを実行すれば、SQL Serverのテーブル表示が「#Deleted」ではなくなります。
まとめ
原因はいろいろとあるようですが、AccessのODBC経由でSQL Server上のテーブルをリンクすると「#Deleted」と表示されてしまう。これの対処法・解決策をご紹介しました。
AccessのODBC接続を使うと、簡単にSQL Server上のテーブルの中身を確認できるから便利!でも「#Deleted」と表示されてしまう!
ってときには、是非参考にしてみてくださいね。
AccessのOraclODBC接続で「SQL_HANDLE_ENVでのドライバのSQLAllocHandleは失敗しました。」と表示される場合の対処法・解決策
1 件のコメント
ありがとうございます。
この方法で#Deletedとなっていたレコードを読むことはできました。
それだけでも、大助かりの大前進なので、この記事に大変感謝しています。
しかし、このパススルークエリは読み出しのみで、書込み編集ができないようです。
アクセスの普通のクエリでも、ダイナセット (矛盾を許す)にしないと書込み編集が
できないのと同じように、
このパススルークエリでもプロパティーのどこかを調整する必要があるのでしょうか?
何かのときに、教えていただけるとよいなと思います。よろしくおねがいします。