「製品版のAccessがインストールされたPCを利用しているが、古くなってきたので新しいパソコンに買い換えよう」
このようなことを検討している場合、アクセスについてもどうするかあわせて検討する必要があります。これまでと同じように製品版のAccessを購入するというのもひとつの手ですが、無料で使えるRuntime(ランタイム)を利用する、という手段もあります。
しかし、単に無料だからといってRuntimeの利用を決めてしまうのは早計です。Accessでのシステム開発をしなかったり、Accessで作られたシステムを利用するだけであれば、ランタイム版でも問題なく運用できることが想定されますが、製品版とランタイム版の機能的な違いの理解や事前の動作確認をしていないと「今まで使えてた機能が動かない!」ということが発生してしまいます。
そこで今回は、製品版からランタイムに移行する際の注意点をご紹介します。これを読み、移行前に確認しておくことで、移行後のトラブルを未然に防ぐことができるでしょう。
Access Runtimeとは
まずはじめに、Accessのランタイムについてご説明します。Wikipediaには以下のような説明が書いてあります。
Accessで開発されたアプリケーションを他のコンピュータで実行させたい場合、Accessが必要となる。しかし開発せずに実行のみの場合においてはAccessライセンスを購入せずとも、適切なMicrosoft Access Runtimeをインストールすることで開発されたアプリケーションを実行することができる。ランタイムであるため開発に必要な機能を使用することはできない。
(Wikipediaより)
ということで、開発系の機能は用意されていませんが、アプリケーションを実行するだけなら可能になります。
Access Runtimeのインストール
執筆時点(2017年12月)では、Windows版はMicrosoft Access Runtime 2016が最新版のようです。
https://www.microsoft.com/ja-jp/download/details.aspx?id=50040(クリックで別タブで表示されます)
OSの種類(32bit/64bit)によってインストーラーが異なりますので、事前にご確認ください。
サポートされるOSは、Windows 10 , Windows 7, Windows 8, Windows Server 2008 R2, Windows Server 2012です。
Access ランタイムに移行する際の注意点
Microsoft Access Runtimeでは、開発に関する機能を使用することはできないため、製品版と比べて多くの機能制限があります。特に、Accessで作られたシステムをランタイムで動かすような場合、システム自体の確認もありますが、これまでのAccessシステムの使い方(運用)の面でも確認をする必要があります。以下に、注意点として5つあげてみました。
フォーム以外の操作の確認
Accessで作られたシステムの場合、大抵は起動するとメニュー画面などの「フォーム」が表示されます。フォームに配置してあるボタンをクリックすることで、検索画面、登録画面、更新画面、削除画面などの別画面が表示されるかと思います。基本的にはフォームに表示されたオブジェクト(ボタン、テキストボックス、チェックボックス、ドロップダウンリストなど)に対してクリック・入力・選択をすることでシステムを使うと思いますが、例外的に次のような操作をしていないか確認してみましょう。
- 直接テーブルを開き、データの登録・更新・削除を行っている。
- 直接クエリを開き、実行している。
- 直接レポートを開き、実行している。
- メニューから操作を行っている。(Excel出力など)
これらの操作は、フォームを作ってシステムが作られているような場合、本来は想定していない操作です。システムを作った担当者、もしくはシステム会社側で直接テーブル・クエリ・レポートを起動できないような制御をかけていることがほとんどではありますが、稀に何も制御をかけていないようなシステムがあります。そのような場合、Accessに対するリテラシーが高い担当者は、上記のような操作をしていることが多いので、行っていないかをまず確認してみましょう。
なぜ確認が必要かというと、上記操作がランタイムでは行えないためです。
製品版Accessでは「ナビゲーションウィンドウ」からテーブル・クエリ・レポートを表示し、そこから操作をすることができますが、ランタイムではナビゲーション ウィンドウを表示することができません。そのため、今まで当たり前のように行っていた操作ができなくなります。このような操作をしている場合は、フォームにボタンを追加し、そこからテーブル・クエリ・レポートを起動させるような対応を取る必要があります。
印刷について
Access 2000以前のバージョンを利用していた環境からランタイム環境へ移行する場合、レポートの印刷については少々動きが変わります。
Access 2000以前の場合
→レポートのプレビュー画面で「印刷」ボタンをクリックすると、即印刷処理が行われる。
アクセス ランタイムの場合
→レポートのプレビュー画面で「印刷」ボタンをクリックすると、プリンタ選択の画面が表示される。その画面で印刷ボタンをクリックすると、印刷が実行される。
つまり、印刷処理において、「プリンタ選択画面の表示」というワンクッションが増えます。大きな問題ではありませんが、これまでの動きに慣れている人にとっては「一手間増えた」という印象を持たれる場合があります。特に気にならなければよいですが、中には「前と同じように」という意見も出るかもしれません。システム対応できるとは思いますが、その対応による効果は小さいため、仕様として何もしないのが無難です。
マクロについて
VBAのマクロで作られたAccessシステムは、ランタイム環境で起動するとエラーが発生する場合があります。特に、マクロにて「ナビゲーションウィンドウを非表示にする」という処理を入れているような場合、ランタイムではエラーが発生します。理由は簡単で、ランタイムではナビゲーションウィンドウが無いため、非表示にできずにエラーとなっています。このような処理は開発者の配慮によって実装されており、システム開発当初はランタイム自体が無かったのだろうと想定されます。起動時に何かAccessのエラーが発生した場合はこの点を確認し、必要に応じて処理を削除してみましょう。
処理について
ランタイムを利用するケースとして、「Accessのバージョンアップついでにランタイムで動かすようにする」というのが多いかと思います。
つまり、以下の2つの作業を行っています。
- Accessをバージョンアップする(例えばAccess 2002 → Access 2016)
- Accessを製品版ではなく、ランタイムで動かすようにする(例えばAccess 2016 → Access 2016 Runtime)
ランタイムを利用することにより、これまで動いてた機能が動かなくなるような現象が発生する場合があります。ランタイムへの移行前に動作確認するのは当然ですが、移行後に問題が発覚するようなことも想定されます。その場合、上記1,2のどちらの原因で動かないのかを切り分けるようにしましょう。1の場合は、ファイル形式自体をMDB→ACCDBに変換することになりますので、この作業が終わったら動作確認をするのが一番です。ファイル形式のバージョンアップについては、こちらの過去記事が参考になります。
プリンタの接続
これは例外的な確認ですが、古いPC上で長年Accessシステムを動かしており、プリンタ自体も専用の古いものを使い続けている、という場合があります。印刷を多用するようなシステムの場合、印刷時にどのプリンタを利用しているかを確認しましょう。もし古いプリンタを使っている場合、そのプリンタの使用をやめることができないかをまず検討します。専用の用紙を使用しているためやめられないこともありますが、そのような場合は新PCに対してのプリンタ設定を忘れずに行うようにしましょう。
中には、プリンタがネットワークに入っておらず、プリンタから直接PCにコードが繋がっている場合もありますので、新PCでそのコードを指せる口があるかも忘れずに確認します。特に、古いPCではD-SUM25ピンのコネクタがついていますが、最近のPCでは付いていません。そのような場合は変換用コネクタ(D-SUB25ピン→USBなど)の購入が必要かもしれません。ただし、変換用コネクタを使っても印刷ができないというのも想定されますので、動作確認は必ず行いましょう。動かない場合は新プリンタで印刷するようになると思いますが、レポートの出力が1枚に収まらないことも想定されます。印刷確認も忘れないようにしましょう。
まとめ
Accessで開発されたシステムを利用されている場合、ランタイムを使うことでライセンス費用がかからず使うことができます。ただし、ランタイム環境になることで、今まで動いていた機能が動かなくなるということが発生する可能性があります。そのため、ランタイム環境に移行する前に、必ず動作確認を行い、必要な対応をとるようにしましょう。