Access

【Access2016】SQLServerのリンクテーブルの内容が、突然#Deletedで表示されるようになった

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

Access2016のアプリ使用中、突然「#Deleted」と表示されるようになったと連絡が入りました。
Accessで開発されたシステム上で発生し、SQLServerのテーブルをODBC経由でリンクしている模様。
該当PC調査前に事象を調べ、事前に原因や事象を収集してみます。
発生原因としてbigint型を使用しているという情報や、パススルーを使用すれば解決するという内容が多いようです。

障害の整理

まずは発生内容と発生状況の洗い出しを行ってみました。
・ほぼ同一環境で複数台のPCがあり、特定のPCのみ発生
・特定のテーブルやビューのみ「#Deleted」問題が発生
・昨日まで使用できていたのに突然「#Deleted」問題が発生→日々使用できないPCが増えてるイメージ
以上、なんとも矛盾した現状でした・・・
また、もともと全てのPCで動作していたので、前述のbigint型は未使用でした。
更にAccess2016を使用する前は、Access2003でも問題無く動作もしていたようです。

テーブルの状況

「#Deleted」表示のテーブルのデータを全削除し、手入力で1件だけ追加してもダメでした。
その後正常に表示されるテーブル数種類と「#Deleted」表示されるテーブル数種類について、テーブル構造をじーっとしばらく比較しながら眺めていました。
しばらくすると、これだ!という共通点を発見。

問題はnvarcharの主キーだった

主キーにnvarcharが含まれないものは正常に表示、含まれているものは「#Deleted」表示。
試しにnvarcharをvarcharにして新規テーブルで複製し、Access2016でODBC経由でリンク。
目論見通り、「#Deleted」は表示されません!

まとめ

なんとか問題は解決したのですが、
・なぜ特定のPCのみ「#Deleted」が発生したのか
・なぜタイミングによって1台ずつ「#Deleted」が発生するPCが増えていったのか
・なぜ未だに「#Deleted」が発生しないPCがあるのか
と疑問は残りますが・・・

今からnvarcharが主キーとなっているテーブルの作り直しと、データコピー作業を開始します!

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

ブログ記事について

記事は毎週月曜日午前中に発信!(私感/私考カテゴリについては随時)
多数の投稿記事は、メニューや検索機能で目的の記事に辿る事が可能です。
コメントや下記支援のご協力をお願い致します。

公式ホームページについて

当ブログではITエンジニア関連のテクニカルな事、そして様々な商品のレビュー記事を公開しています。
一方ホームページでは、それ以外の少しビジネス寄り(企業や個人事業主向け)のサービスや情報を発信します。

該当される方、ご興味のある方はホームページの方もご参照ください。

コメントを残す

*