Visual Basicユーザーのための Accessプログラミングソリューション

Access97 Tips集 part7




秋月 巌 AKIZUKI,Iwao


今月はAccessのプログラミングの初歩について解説します.VBAでAccessのプログラミングをするということは,Visual BasicでAccessが提供するプログラミングオブジェクトを操作するということです.Visual Basicはコンポーネントやオブジェクトを操作するための言語ですから,Accessでプログラムを作成するということは,何か特別なVisual Basicプログラミングをするということではありません.各種オブジェクトが提供するプロパティやメソッドは,それらオブジェクトのAPIだということができます.
ただ,Visual Basic付属の標準コンポーネントに比べると,Accessが提供するオブジェクトは複雑で高度な機能を有しています.そのため,Accessの動作を理解することによって,不要なコーディングを省くことが可能になります.


●テーブルを作成する●


 テーブルを新規に作成するには,データベースウィンドウのタブで「テーブル」を選択し,「新規作成」ボタンをクリックします(図1).「テーブルの新規作成」ダイアログでは,テーブルの作成方法を選択することができます(図2).

図1:テーブルの新規作成
図1:テーブルの新規作成 370*204

図2:「テーブルの新規作成」ダイアログ
図2:「テーブルの新規作成」ダイアログ 370*194

◆データシートビュー

 データシートビューを選択した場合は,テーブル設計をすることなしにAccessのテーブルを使用できるようになります(図3).フィールドには自動的に名前が割り当てられ,データ型にはText型が割り当てられます.この方法だとテーブル設計という面倒な手間をかけずに,表計算シートを利用するのと同じ感覚でテーブルを使用できます.
 デザインモードを利用して,データ型やフィールド名を変更できます.デザインモードに切り替えるには,ツールバーにあるボタンを利用します(図4).こうして作成したテーブルは,プログラミング対象としては不向きですが,誰でも簡単にテーブルが利用できるという意味では有効です.

図3:データシートビューでテーブルを作成
図3:データシートビューでテーブルを作成 380*275

図4:デザインモード切替え
ツールボタン
図4:デザインモード切替えツールボタン 42*26

◆デザインピュー

 デザインビューはテーブルを作成するための標準的な方法です.テザインモードでテーブルをオープンし,フィールド名とデータ型を表形式で指定します(図5).各フィールドのプロパティを,下部のプロパティシートで設定します.
 「ルックアップ」を選択すると,テーブルをデフォルトで表示する際のスタイルを設定することができます(図6).ルックアップによる設定は,その項目のデフォルトの表示属性を決定します.たとえばコンボボックスを指定しておけば,データシートビューでデータを参照しているときや,ウィザードでフォームを作成した場合に,ドロップダウンリストによる入力が可能になります(図7).

図5:デザインビュー
図5:デザインビュー 400*260

図6:ルックアップにコンボボックスを指定
図6:ルックアップにコンボボックスを指定 400*212

図7:ルックアップでコンボボックスを
指定した場合のデータビュー
図7:ルックアップでコンボボックスを指定した場合のデータビュー 167*103

◆テーブルウィザード

 テーブルウィザードによるテーブルの作成は,用意されているテンプレートから必要な項目を選択して作成するスタイルです(図8).ウィザードがテーブルを作成するというよりは,50種類ほど用意されているテンプレートが利用できるという程度のものと考えた方がよいでしょう.簡単にデータを管理するための用途としては重宝しますが,本格的なアプリケーションを作成しようと思ったら,やはり,デザインビューでテーブルを作成する必要があります.

図8:テーブルウィザードによるテーブルの作成
図8:テーブルウィザードによるテーブルの作成 385*255

◆テーブルのインポート

 テーブルのインポートやリンクは,新しくテーブルを作成する機能ではありません.既存のテーブルの情報を取り込むことで,現在,操作しているデータベースによって,既存のテーブルを取り扱うことを目的としています.対象となるテーブルは,Accessであるか,あるいは他のデータベースであるかを問いません.
 リンクとインポートの違いは,実際のデータがどこに格納されるかの違いです.インポートした場合は,オリジナルのテーブルの構造やデータが,現在,操作しているデータベースにコピーされます.インポート操作を行なった瞬間の内容がコピーされたた後は,2者間のリンクは破棄されるため,どちらに与えた変更も相手には反映されません.
 用途としては,既存データのコンバートや,バックアップなどが考えられます.また,変更が相手に通知されない特性を利用して,シミューレーション用のデータとして扱うことなども考えられます.
 2ヵ所で互いのデータを保持しながら,変更を相互に反映させるような目的に使用するにはインポート機能ではなく,レプリケーション機能を利用することになります.

◆テーブルのリンク

 テーブルのリンクは,現行データベースに相手側データベースのリンク情報だけを取り込む機能です.一見,自分のデータを操作しているように見えますが,扱っているデータもテーブル構造もリンクターゲットのテーブルのものです.ですから,ターゲットテーブルが破損したようなケースでは,テーブルの操作は不可能になります.
 リンクするターゲットとしては,同じAccessのテーブルのほかにExcelのシートやテキストファイル,それにODBCのデータベースに接続が可能です.
 パフォーマンスに問題があるとはいえ,SQLデータベースの内容を簡単に表示できる機能は,開発支援ツールとしてAccessのもっとも便利な部分です.
 ここでは,Accessによって,Microsoft SQL Serverなどのデータベースのデータを参照する方法を説明します.
 まず,AccessでODBCデータソースにアクセスするには,利用するデータベースをODBCに登録する必要があります.

◆Microsoft SQL ServerデータベースのODBC登録手順

  1. コントロールパネルからODBCマネージャを起動(図9)
  2. ODBCマネージャの追加ボタンをクリック(図10)
  3. ODBCのドライバにSQL Serverを選択(図11)
  4. 「オプション」ボタンをクリックし,「データソース名」「サーバー」「データベース名」を設定(図12)

 SQL Server以外のデータベースと接続する場合には,3で他のドライバを指定します.ドライバの設定画面は,各データベースベンダーが提供するものを利用するので,ドライバごとに設定画面は異なります.
 4.で設定するデータソース名には,任意のデータソース名を入力します.サーバー名にはSQL Serverがインストールされているマシン名,データベース名には,そのSQL Serverに作成されているデータベースの名前を設定します.
 ODBCの設定が終了すると,そのマシンからデータソース名を指定すれば,設定したデータベースに接続できるようになります.つまり,ODBCの登録とは,データベースへの接続情報を登録する作業なのです.

図9:コントロールパネルからODBCマネージャを起動
図9:コントロールパネルからODBCマネージャを起動 380*361

図10:「追加」ボタンをクリック
図10:「追加」ボタンをクリック 410*270

図11:SQL Serverドライバを選択
図11:SQL Serverドライバを選択410*243

図12:「データソース名」「サーバー」「データベース名」を設定
図12:「データソース名」「サーバー」「データベース名」を設定 410*329

◆AccessからODBCデータベースに接続する

  1. テーブルの「新規作成」ボタンをクリックし,「テーブルのリンク」を選択する(図13)
  2. ファイルダイアログ下部の「ファイルの種類」にODBCデータベースを選択すると,ODBCのデータソース選択画面が表示されます(図14)
  3. 表示されているODBCデータソースの中から,先ほど登録したデータソース名を選択します(図15)
  4. データベースには複数のテーブルが存在するので,リンクを作成するテーブルを選択します(図16)
  5. 固有レコードを識別子するためのフィールドを選択します(図17)

 固有レコード識別のためには,普通,ユニークキーの設定してあるレコードを選択します.レコードにユニークキーが指定されていない場合は,複数のフィールドを選択して各レコードを識別できるようにします.
 テーブルのリンクが作成されると,データベースウィンドウにリンクされたテーブルが登録されます(図18).左側の地球マークが,リンクされているテーブルであることを示しています.このテーブルは,テーブルの構造変更などの一部の操作を除いてAccessのネイティブテーブルと同様に操作できます(図19).しかし,データ自身はMDBファイルの中ではなく,オリジナルのデータベースに保存されています.MDBが保持しているのはODBCデータソース名等のリンク情報だけです.

図13:テーブルのリンクを選択
図13:テーブルのリンクを選択 360*189

図14:ファイルの種類にODBCデータベースを選択
図14:ファイルの種類にODBCデータベースを選択 400*233

図15:ODBCデータソースの選択
図15:ODBCデータソースの選択 376*296

図16:テーブルの選択
図16:テーブルの選択 400*178

図17:レコードの識別子を選択
図17:レコードの識別子を選択 400*216

図18:テーブルがデータベースウィンドウに登録される
図18:テーブルがデータベースウィンドウに登録される 361*198

図19:データビューでSQL Serverのデータを表示
図19:データビューでSQL Serverのデータを表示 401*220


●データを表示するフォームを作成する●

 テーブルが作成できたら,データを表示したり編集したりする機能が必要です.データビューでもデータの編集はできますが,フォームを作成することで,より入力しやすい画面をつくることができます.

◆オートフォーム機能を利用する

 フォームを作成する最も簡単な方法は,オートフォーム機能を利用することです.データウィンドウでテーブルを選択し,ツールバーの「オートフォーム」ボタンをクリックするだけで,Accessはデータベース連結のフォームを作成します.

図20:ツールバーの
「オートフォーム」ボタン
図20:ツールバーの「オートフォーム」ボタン 37*29

図21:オートフォームが作成したフォーム
図21:オートフォームが作成したフォーム 385*261

◆フォームウィザードを利用する

 ウィザードを使ってフォームを作成するには,データベースウィンドウの「フォーム」タブを選択し,「新規作成」ボタンをクリックします.「フォームの新規作成」ダイアログが表示されるので,フォームウィザードを選択します(図22).次の表示されるダイアログから,フォームに配置するフィールドを選択します(図23).フォームのスタイルを選択し(図24),後はデザインや名前を指定することでフォームが完成しました(図25).

図22:フォームウィザードを選択
図22:フォームウィザードを選択 385*237

図23:フィールドを選択
図23:フィールドを選択 385*285

図24:スタイルの選択
図24:スタイルの選択 385*285

図25:ウィザードが生成したフォーム
図25:ウィザードが生成したフォーム 300*119



VB Magazine ライブラリ | Visual Basicコースホームページ
int21 ホームページ | PCDN ホームページ


PCDN LOGO