Accessのリンクテーブルのデータがすべて#deletedになった話

本日、MicoroSoft Accessのフォームのデータが、突然すべて「#deleted」の表示になったと相談が。それまでは正常に使えていたとのこと。

このデータ、ODBCSQL Serverにリンクしているのですが、テーブルを開いてみるとすべてのデータが#deletedになってるし。

 

データが全部消えちゃったのかな、#deletedがたくさん表示されたままだから、見た目が変になっているだけなのかな、という期待と不安の中、Management Studioでデータを確認。幸いすべて残っておりました。

 

この症状、発生しているのは複数台のクライアントPCのうち1台のみ。

Access ODBC リンクテーブル #deleted」でググると、bigintがdatetime2がという記事があったので、それに従い修正を試みるも解決せず。そもそもそんなデータ型使った覚えないし。

 

その後もググり読み進めていると、主キーが原因に思える記事が。

Select Distinctでクエリを書いてみると、

データが正しく表示されるではありませんか。

まさか主キーがかぶってるの・・そんなことはないでしょうよ。

 

そして、エラーが発生するテーブルとそうでないテーブルの構造をじっくり見比べること、

発見しました!

主キーの型がnvarcharのテーブルがエラーになっている。

 

その主キーのデータは英数字だけなので、型をvarcharに変更し、

Accessでリンクの更新をおこなうと、

はい、正常に表示されました。

 

結局のところ、はっきりした原因はわからず、対処療法になりましたが、

Unicodeが影響しているんでしょうか。

クライアントの環境はOffice365最新ヴァージョンの64bitです。

 

OFFICE365 ACCESSで「実行時エラー’3340’ クエリは破損しています」 エラーが出た場合の対処法

※本記事の実行は、自己責任でお願いします。

 

f:id:burnintrash:20191116121751j:plain

 

Office365のクイック実行版(C2R)のAccessで、

上記エラーが出ると問い合わせあり。

データベースの破損かぁと調べていたら下記に行きつく。

 

原因はMicrosoftですでに把握されていて、

11月12日のOfficeの更新プログラムによるものだそうだ。

 

https://support.office.com/en-us/article/access-error-query-is-corrupt-fad205a5-9fd4-49f1-be83-f21636caedec 

 

Office365の修正パッチは他のバージョンに先駆けて

11月24日のリリースになりそうだと書いてある。

 

業務上それでまで待てないということで、

更新前のバージョンへ戻して使用することにしよう。

以下手順。

 

手順1.自動更新を再開するために、リマインドを設定。

 11月24日の更新プログラムが発行されるまで自動更新を止めるため、

 リリース後には自動更新を再有効化する必要がある。

 この作業を忘れないようにOutlookリマインダーを設定。割愛。

 

手順2.コマンドプロントを管理者モードで起動する。

 スタートメニューでcmdと入力し、右クリックのメニューから

 管理者として実行を選択。

 

手順3.旧バージョンのOfficeをインストール

 Officeに備え付けの更新プログラムを実行します。 

 コマンドプロントへ以下を貼り付けEnterキーを押してください。

 インストールするバージョンは「12130.20272」。

 

  その1 [ClickToRunのフォルダへ移動]

   cd %programfiles%\Common Files\Microsoft Shared\ClickToRun

 

  その2 [更新プログラムを起動]

   OfficeC2RClient.exe /update user updatetoversion=16.0.12130.20272

 

   ※16.0.のうしろがインストールするバージョンですね。

 

   f:id:burnintrash:20191116121754j:plain

 

手順4更新プログラムを進める

 更新プログラムが起動して、ダウンロードとインストールが始まります。

 成功すると下記のメッセージがでます。

 

   f:id:burnintrash:20191116121757j:plain

 

手順5. 自動更新の停止

 任意のOfficeアプリを起動し、ファイル→アカウントと開きます。

 「更新オプション」ボタンをクリックし、「更新を無効にする」を選びます。

 

  修正パッチリリース後はくれぐれも自動更新を有効にすることを忘れずに!

 

   f:id:burnintrash:20191116121759j:plain

 

私の場合、以上でエラーが解消されました。