access linked table sql server #deleted

PC

Warning: Invalid argument supplied for foreach() in /home/xs642990/dark-pla.net/public_html/wp-content/plugins/bravo-neo/bravo-neo.php(12) : eval()'d code on line 647

SQL Serverのデータを手早く加工したり確認したりするのに、
Accessリンクテーブル(linked table)で引っ張ってくることってよくありますよね。

10年位前、リンクテーブルの機能はそのうち無くなるから気をつけて、
みたいなアナウンスをどこかで見た気がするのですが、
やっぱり便利なのでしょう。
まったく廃れませんね。

で、リンクしたテーブルを開いたらデータがあるのに
ぜ~んんぶ、「#Deleted」と表示される事態が発生。

どうやら、SQL Serverのテーブルにbigint型のデータがあったことが原因でした。

色々検索したところ、解決法は3つ。

1.bigint型を使うのを止める。
2.パススルークエリを使う。
3.アクセスのオプションでBigIntデータ型をサポートする設定にする。

1.bigint型を使うのを止める。
一番シンプルですね。
本当にbigint型を使う必要があるのかどうか吟味しろ、と。
intじゃだめなのか?と。
今回はそこは変えたくなかったので次。

2.パススルークエリを使う。
アクセスの側で対応します。
クエリのデザインでパススルークエリを作成。

別にいいんですが、SQL文を書くのがちょっと面倒に感じたので・・・、次。

3.アクセスのオプションでBigIntデータ型をサポートする設定にする。
今回はこれにしました。

下位互換性が無くなることについての警告が出ますが、
別に構いませんので・・・。

無事、解決しました。

SQL Server本

楽天ウェブサービスセンター
タイトルとURLをコピーしました