今回は新しいアプリで古いファイルを開こうとしたら問題発生!と言うお話です ^^;)

昨日、MS-OfficeXPで制作したAccessファイルを開こうとしたらこんなメッセージが出ました

データベースに含まれている VBA プロジェクトを読み取れないため、データベースを開くことができません。データベースを開くには、VBA プロジェクトを削除する必要があります。VBA プロジェクトを削除すると、モジュール、フォーム、およびレポートからすべてのコードが削除されます。データベースを開いてVBA プロジェクトを削除する前に、バックアップ コピーを作成することをお勧めします。
データベースのバックアップ コピーを作成する場合は、[キャンセル] をクリックしてください。バックアップ コピーを作成しないでデータベースを開き、VBA プロジェクトを削除する場合は、
[OK] をクリックしてください。

12年ほど前、当時所属していた団体で「データベースが必要だと思うので君、作ってよ」って上司に無茶ぶりされて作った保険関係のデータベースなのですが久しぶりに開こうとしたらエラーが出ました。

Access(アクセス)はワードやエクセルと並ぶマイクロソフトの定番アプリで、SQL(エスキューエル)やプログラミングの知識が無くても簡単にリレーショナルデータベースが構築できるソフトで、恐らく時間的にもコスト的にも最短最安でデータベースが構築できそうです(そりゃ自前でやれば安くできますもんねw)

個人的に気に入っているのは他のアプリ(例えばエクセル)とかの連携が非常にスムーズなことでしょうか?
カット&ペーストでデータの切り貼りをしたりテーブル(データ)をインポートまたはエクスポートさせたりも出来ます。

また、あまりお奨めはしませんがエクセルのファイルを外部データとしてリンクさせることも可能なので、Accessの操作に慣れていない人でもある程度 データ管理が出来ます。

そんな、お手軽データベースのAccessですが、やりようによってはSQLやVBAを駆使して本格的なアプリを作ることも可能で、入り口は広く奥の深い良いソフトだと思います。

PCの良い点はデータやアプリ資産を継続して残せること

Windowsや MS-Office(ワード、エクセル等)がここまで普及した理由の一つとしてデータの互換性があると思います

他者と情報を共有する場合、同じアプリを持っていないといけない場合が多いですが過去、Windows95が登場した当時、さまざまなビジネス向けアプリがありました。例えば旧 MS-DOS 時代から定評があった↓

  • ワープロソフトの「一太郎」(JUSTSYSTEM)
  • 表計算の「ロータス123」(ロータス)
  • データベースの「桐」(管理工研)

※実は管理人はMS嫌いで上記のソフトを主に使っていました(笑)

これらは今も販売されていますがシェアは現在MS-Officeが多勢を占めている状況で、日本では ver.97~2000 あたりから爆発的に普及しだして、管理人も使い出しました。

以来、20年以上にわたって使っていますが昔のファイルでもほとんど使用できます。

互換性は永遠では無い?

ある程度は上位互換で昔のファイルを新しいアプリで使うことは出来ますが例外も存在するようです、、、

例えばアプリケーションソフトの場合、昔のアプリは新しいOS(ウィンドウズ)では動かなかったりインストールすら出来ない場合があります

同じようにエクセルやAccessで作ったファイルでも、中にマクロやVBAが含まれているとバージョンの違いで正常に動かない場合があるようです、、、

今回のケースもググってみたら同じような報告が出ていました

「質問:Access2016 データベースに含まれている VBA プロジェクトを読み取れない 」

対応策としては「標準モジュールの先頭(最初)のモジュール名を半角英数する」?と回避されるかもしれないそうです、、、
※セキュリティー系は見直してみたけど無関係のようです

・・・・う~ん、、、無理だ ^^;)

問題のファイルは管理人が初めて作ったAccessファイルでして、VBAなどチンプンカンプンだったのでコントロールは全てマクロで行っていて、マクロ名は全て日本語で、数も 4~50個 くらいあったはず、、、

マクロとVBAはお友達(親戚?)なのでマクロ名がエラーの原因とすればお手上げ状態 ^^;)

ま~、今となってはそれほど重要なファイルでも無いので触らないことにします

可能性は低いですがマイクロソフトが対策をしてくれるかもしれませんし、、、無理?

諸行無常、、、ですねというオチでした orz

2017/10/03 追記

てっきりファイルが古いためVBAが弾かれたと勘違いしていましたが

「質問:Access2016 データベースに含まれている VBA プロジェクトを読み取れない 」

をよく見てみたらMS-Officeの最新バージョン(1708 (16.0.8431.xxxx) )のバグのようです?

管理人もそうでした

この問題は、VBA モジュールの問題によって生じるため、VBA を作成できるすべての Office アプリケーション (Excel / Word / PowerPoint / Access / Publisher / Project / Visio / Outlook)  で問題が生じます。・・・

Office 2016 バージョン 1708 以降で日本語の VBA モジュール名を含むファイルを開くとエラー

あちゃ~ ^^;) 何やってんですかMicrosoftさん、、、

バックアップ取らずに実行させるとホントにVBAファイル削除されちゃいますから業務で使ってるところヤバいでしょ?

おまけにAccessだけじゃなくExcelとかもじゃ被害甚大?

早急に対応してほしいものですね、、、

2017/10/04 追記

しばらく様子を見ていましたが修正版のアップデートはまだのようなので暫定対応手順を実行してみました。

1. コマンド プロンプトを起動して以下のコマンドを実行

"%programfiles%\Common Files\Microsoft Shared\ClickToRun\officec2rclient.exe" /update user updatetoversion=16.0.8326.2107

2.するとOffice 2016 を以前のバージョンに戻す作業が始まります。

20分ほどで終了。

3.アカウント場面を見てみると以前のバージョンに戻っている事が確認できました。

4.あと、忘れずに「更新オプション」を更新しないにしておきます。

あっけないくらいに簡単にできました(^^)

めでたしめでたし?、、じゃないよね ^^;)

2017/10/05 追記

フォーラムに
2017/10/4 Update
Monthly Channel に修正されたバージョンを公開しました。

と出ていましたのでアップデートをかけてみました、、

バージョンは変わらずみたいですがビルドが若干変わっているような?

テストしてみましたが「データベースを開くことができません・・」のエラーは出なくなったようです?

まずはめでたしめでたし?ですね ^^;)