第6回
ACCESSビジネスプログラミング
−Access97をプレビューする新機能の特徴−
今回は,3月14日のOffice97の発売にともないバージョンアップしたAccess97のご紹介です.
首都圏コンピュータ技術者協同組合
秋月 巌 AKIZUKI,Iwao
他のOffice製品のバージョンアップにともない,Microsoft Access95も97にアップグレードされました.95から97へと数字上はメジャーアップグレードですが,実質的な内容はマイナーアップグレードです.全体のパフォーマンスの向上や操作性の向上を重視し,新機能の多くはインターネットへの対応に向けられています.
従来製品であるAccess95の最大の問題点は,機能やパフォーマンスよりも安定性の不足でしたので,大きな変更のないバージョンアップにはそういった意味での期待をしたいものです.また,Visual Basicに比べ貧弱だった開発環境にも一足早くVisual Basic 5.0ライクな機能が用意されています.
ただ,クライアント/サーバーシステム開発ツールとしては,新機能のODBCDirect(後述)を搭載したものの,期待していたRDOやADO(Active Data Object)の採用は見送られ,Visual Basicの後塵をあびたままになっているのは残念なことです.AccessはVisual Basicに比べて,業務用のユーザーインターフェイス開発能力が優れているので,データベースサーバーへのロスの少ないアクセス方法を提供してもらいたいものです.
今回のバージョンアップではAccessのデータベースエンジンであるJetデータベースエンジンもバージョンアップされました.ですから,今日のバージョンアップは,同じエンジンが採用されるVisual Basic 5.0の予告もかねていることになります.
最新のJetデータベースエンジンver.3.5は,インデックス構造の変更やメモリマネージメントシステムの改善により,パフォーマンスの向上を狙っています.Jetデータベースエンジンはver.2.5以来,かなり高速なエンジンですので,最適化の手法も工夫された新しいバージョンでは期待できるものでしょう.
Access97ではコンパイルオプションを設定することにより(図1),コードモジュールのないフォームを作成することができます.また,順次コンパイルオプションを設定して実行時にコンパイルすることで,コンパイル時間を短縮できます.そのほか,コンパイルするモジュールをグループ化して不要なコンパイルを対象からはずすことも可能です.このようにコンパイルの最適化を図るための設定が追加されました.
コンパイル性能に限らず,Access97では,最適化という考えが推し進められています.機能的に膨張したツールが機能の拡張よりも成熟を目指すということでしょうか.多くのオプションを選択できるようにすることで,個別ユーザーの要望に応えられるようになっています.逆にいえば,最適に利用するためには,設定をしなければならない箇所が多くなってきているということです.
図1:プログラムオプションの設定画面
最近のMicrosoft製品はすべてインターネット対応を謳っていますが,Access97も例外ではありません.Accessとともに発売されたOffice97のすべてがそうであるように,文書中にインターネットのハイパーリンクを埋め込めるようになっています.プログラミングオブジェクトにも,コマンドボタン,ラベル,イメージコントロールHyperlinkプロパティが設けられ,そこにURLを設定しておけば,クリックしたしたときにブラウザが起動し,リンク先の情報が表示されます(図2).
図2:ハイパーリンクの色の設定
テーブルにもハイパーリンク型というデータ型が追加されました.この項目にURLを入力すると,データの表示時にハイバーリンクとして扱われます.これにより,データに関連したホームページがあるようなケースでは,データとページをリンクすることが可能です.HTMLページばかりでなくワープロ文書のような一般ファイルもリンク先による参照が可能です.
このような機能を利用して,データベースのデータと他の文書をリンクできるので,社内のイントラネットを使って文書データベースが構築できます.
Office97にはInternet Explorerが付属しているので,それをActiveXコントロールとしてAccessから利用することができます(図3).Web Browserコントロールのプロパティやメソッドをプログラミングで扱うことで,Access97のプログラム上でHTMLファイルの表示が可能です.
たとえばハイパーリンク型の項目にURLが入力されているデータを使って,データベースにリンクされたページをAccessのプログラム上で表示させることができます.また,カスタムブラウザが作成できるので,特定のURLしか参照できないブラウザや,一定時間毎にプログラムにセットされたURLを巡回するようなブラウザの作成も可能です.
図3:Web Browserコントロールの配置
Access97は新しくクラスモジュールをサポートしました.これでVisual Basicとの互換性がより高まったことになります.実際,Accessは今回の開発環境のアップグレードによって,開発ツールとしてはかなりVisual Basicに近づいていますが,Visual Basic 5.0のリリースによって,Visual BasicがAccessに対して持つアドバンテージには次のようなものがあります.
-
1.ネイティブコンパイラの搭載
2.ActiveXコンポーネントの作成
3.ActiveXサーバーコンポーネントの作成
4.RDOによるオーバーヘッドの少ないサーバーDBアクセス
MDEファイルとは,従来のMDBファイルからソースコードを削除したものです.Access97には,このMDEファイルを作成する機能があります.これでエンドユーザーにプログラムを配布するときに,Access Developper's Toolkit(ADT)がなくてもソースを添付する必要がなくなりました.ただし,ADTとは異なり,実行環境にはAccessがインストールされている必要があります.
今まではレプリケーションを実施するときに,データベース単位でしか行なえませんでしたが,新しいバージョンではデータベース内のオブジェクトから,レプリケーションを実施するものを選択できます.これにより,たとえば,本社のマスターテーブルだけをレプリケートするなど,より柔軟な運用が可能になります.
インターネット対応の一環として,FTPサイトからのレプリケーション機能を実装しました.今後発売されるMicrosoft Visual InterDevなどを使い,Jetデータベースエンジンでインターネットデータベースアプリケーションを作成した場合,どのようにローカルにデータをダウンロードするかが課題でしたが, これで解決の方法が提供されたことになります.
Jetデータベースエンジンをロードせずに,データベースサーバーにアクセスするのがODBCDirectです.Jetデータベースエンジンを経由する場合に比べ,より高速で,かつサーバーの機能を利用したデータベースアクセスが可能になります.
ただ,制限事項としては,複数テーブルを利用した更新可能なレコードセットができない,コントロールとの連結が行なえないなどがあります.
ここまで説明したように,データベースマネージメントシステムとしての変更はマイナーバージョンアップだといえます.
ですから,もっとも注目していいのが,開発環境の充実だといえるかもしれません.Visual Basic 5.0ライクな開発環境は,Accessでプログラミング開発しているエンジニアの期待に応えるものです.
まず,コードを表示するときにプロシージャの連続表示がウィンドウ左下部のボタンによって切り替えられるようになりました(図4).ひとつのイベントハンドラだけではなく,複数のブロシージャを同時に編集するときに便利です.
図4:コードウィンドウ表示の切り替えボタン
変数の宣言時に,コードウィンドウに変数名を入力して“AS”を入力すると図5のように自動的に変数の型一覧を表示したリストボックスが現れます.ユーザーはその中から値を選択するだけで,コードの入力が可能です.
図5:変数の型をリストから選択
変数の型と同様に,プロパティやメソッドの入力もリストから行なうことができます(図6).オブジェクトの名前を入力し,区切りのピリオドを入力するとリストが現れます.オブジェクトの種類に依存したメソッドやプロパティが表示されるので,間違えて入力してしまうことがありません.表の左側についているアイコンでプロパティなのかメソッドなのかを区別することができます.
図6:メソッドやプロパティをリストから選択
定数の一覧,パラメータヒント,クイックヒント,入力候補一覧,また,入力中のメソッドの使用法やパラメータ,プロパティの入力候補などをエデイタ上に表示できる機能も装備されました(図7).
プログラミング補助機能は学習者への配慮なのかもしれませんが,慣れている人にとってもかなり便利なものです.こう矢継ぎ早に新製品が発表される現在では,すべてのツールを万全に理解することはほとんど不可能です.ならば,このような機能を積極的に使い,学習期間を短縮できるのは,現代の開発者にとっては有効な配慮です.
図7:定数の一覧,パラメータヒント,クイックヒント,入力候補一覧を表示するメニュー