Visual Basic 6.0 データベース講座
VB6対応

 

Visual Basic 中学校 > VB6 データベース講座 >

第1回 データベースへの接続

 

今回から始まりますデータベース講座では、VBを利用してデータベースを利用する方法を解説します。初歩的なところから始めますのでデータベースについて何の知識のない方でも理解していただける と思います。そしてすばらしいことに必要なものはVBの評価版だけです!(もちろん製品版でもかまいません)。

ただし、まったくの初心者の方は先にVBの入門講座は一通り読まれてください。

 

1.データベースとは

 

データベースとは文字通りいろいろなデータが保存されているものです。だからデータベースを利用するプログラムをする前に、データベースを作らなければなりません。もちろん、0からデータベースを作成するプログラムを作ることもできますが、第1回である今回はすでに作成されているデータベースを利用して話を進めます。

この講座では私が仮に作ったデータベースを使うことにします。下のリンクをクリックしてデータベースをダウンロードしてください。

データベースのダウンロード    Animals.lzh    24.0KB

このデータベースは動物のデータベースです。データは私がいろいろな本を見ながら適当に打ち込んだものなので確かではありません。あくまでVBの練習のために作ったものとしてご利用ください。

また、データベースの著作権は私に帰属します。私に無断で転載・配布・販売等することはなさらないようにお願いいたします。

さて、ダウンロードしたファイル Animals.lzh を解凍すると Animals.mdb というファイルが解凍されます。このAnimals.mdbがデータベース講座で使うデータベースの本体です。

拡張子がmdbのファイルは一般の人に一番よく使われているデータベースの形式だと思います。Accessをお持ちの方は直接このAnimals.mdbをダブルクリックして中を見ることもできます。ただし、当講座ではAccessは必要ありませんので持っていない人もご安心ください。

このデータベースについてさらに詳しい説明はこちらをクリックして下さい(通常は見る必要はありません)。

VB付属のツール、ビジュアルデータマネージャでMDBファイルを参照・編集する方法については補講2をご覧ください。Animals.mdbの詳しい内部構造については補講1をご覧ください。

 

2.データベースの中身を見る

 

それでは、このAnimals.mdbにどんなデータが入っているのか見てみましょう。

初めての人にはちょっと複雑な手順に見えると思うので十分注意してゆっくり読んでくださいね。

データベースの中身をVBから見る手順は次の3つの部分に分かれます。

A.VBでテキストボックスなどを用意してデータベースの中身を表示できる準備をする。

B.データベースに接続する。

C.プログラムを実行する。

次からは順番にこの作業の詳細を説明します。

 

A.VBでテキストボックスなどを用意してデータベースの中身を表示できる準備をする。

 

A1.VBを起動します。

A2.フォームにテキストボックスを3つ配置します。名前などは自由でいいです。

これらのテキストボックスには動物の「名前」と「目」と「説明」を表示します。

 

B.データベースに接続する。

 

B1.[プロジェクト]メニューから[コンポーネント]を選択します。

画像1:[プロジェクト]メニューの[コンポーネント]


B2.表示される一覧の中から Microsoft Active Data Control 6.0 (OLEDB) を選択して、チェックを入れたらOKをクリックします。

画像2:ADODCの追加。必ず、左のチェックボックスにチェックがついていることを確認してください。

6.0はバージョンです。5.0などでもかまいません。

OKをクリックすると左のツールボックス(テキストボックスとかコマンドボタンのアイコンが並んでいるやつ)に新しいアイコンが1つ追加されることを確認してください。

画像3:新しくツールボックスに追加されるadodcのアイコン

 

B3.ツールボックスに新しく追加された Adodc をフォームに配置する。

この Adodc がデータベースへ接続するコントロールです。

Adodcを使うと驚くほど簡単にデータベースに接続できます。

画像4:この段階でフォームは次のようになります。配置はもちろん各人の自由です。

B4.Adodcのプロパティウィンドウの中で上から3つ目に (プロパティページ) というものがあるのでクリックします。クリックするとそのすぐ右端に ... と書かれた灰色のボタンが表示されるのクリックします。クリックするとプロパティページと呼ばれるウィンドウが開きます。

画像5:右端にある ... と書かれたボタンをクリックするとプロパティページが開きます。

B5.プロパティページの中の「接続文字列を使用する」を選んで作成ボタンをクリックします。

ここでどのデータベースにどのような方法で接続するのか設定できます。

「接続文字列を使用する」という表示が見当たらない人はプロパティページの[全般]タブが選択されているか確認してください。

画像6:プロパティページ 全般

B6.一覧が表示されるので Microsoft Jet 3.51 OLE DB Provider を選択して「次へ」をクリックします。

似た名前のものが多いので注意してください。

3.51はバージョンです。3.6や4.0でも大丈夫なはずです。この他のバージョンでも基本的な部分は同じはずですのでもし、3.51がなかったら他のバージョンのでやってみて下さい。

これらがまったく一覧の中にない場合はあなたのパソコンにはこの機能はインストールされていないということです。普通にVBをインストールしていれば大丈夫なはずです。

画像7:OLE DBプロバイダの選択

B7.「データベース名を選択または入力します」というところに、先ほどダウンロードしたAnimals.mdbを指定します。右の参照ボタン(小さい灰色のボタンで ... と書いてあるやつ)をクリックすると選択が楽です。

ここにはただ単にAnimals.mdbと入力してもだめです。C:\Animals.mdbなどのようにドライブ名やフォルダ名もきちんと指定する必要があります。

画像8:それぞれのパソコンの中のAnimals.mdbを指定します。

B8.「接続のテスト」をクリックします。

「接続のテストに成功しました。」と表示される場合はOKです。その他のエラーや失敗を表すようなメッセージが表示される場合にはここまでの設定のどこかが間違っています。もう一度よく見直してください。 よくある間違いの例としてはデータベース名に指定した場所にAnimals.mdbがない、手順B6で選択を間違った などがあげられます。

B9.OKをクリックします。

これでデータベースへの接続は完了です。次は、データベースのどのデータを表示するのか設定していきます。

B10.[レコードソース]タグを選択します。

もし、プロパティページが閉じてしまった場合は、もう一度プロパティページを開いてから[レコードソース]タグを選択してください。プロパティページの開き方は手順4と同じです。

画像9:レコードソースの設定

B11.「コマンドタイプ」から 2 - adCmdTable を選択します。

B12.「テーブル名またはストアドプロシージャ名」から「Q1_動物一覧」を選択します。

この段階でデータベースの中にどのようなデータがあるのか少しだけわかります。「Q1_動物一覧」のほかに、「T1_動物マスタ」や「T2_門マスタ」などがあったことに気がつかれましたか?

これらは私があらかじめ入力しておいたデータで、Animals.mdbのなかに記録されています。

B13.OKをクリックします。

B14.1つ目のテキストボックスのプロパティを次のように変更します。このテキストボックスには動物の名前が表示されるようにします。3つのテキストボックスのうちどれを1つ目にするかはあなたの自由です。

DataSource    Adodc1

DataField    名前

B15.2つ目のテキストボックスのプロパティを次のように変更します。このテキストボックスには動物の目が表示されるようにします。3つのテキストボックスのうちどれを2つ目にするかはあなたの自由です。

DataSource    Adodc1

DataField    目名

B16.3つ目のテキストボックスのプロパティを次のように変更します。このテキストボックスには動物の説明が表示されるようにします。3つのテキストボックスのうちどれを3つ目にするかはあなたの自由です。

DataSource    Adodc1

DataField    説明

MultiLine    True

 

C.プログラムを実行する。

 

以上で準備は完了です。最後にデータを表示させるためにプログラムを実行してください。

画像10:実行画面。Adodcのボタンは左から、「先頭のデータへ移動」「前のデータ」「次のデータ」「最後のデータへ移動」をあらわしています。

この画面はアイアイのデータを表示したところです。次の動物を見るにはAdodc1の右向きの矢印をクリックします。ニホンザル、ミドリザル...と何匹かの動物がすでにデータベースに登録されています。本当は画像も表示されるようにしたかったのですが、画像には著作権があってここでみなさんに配るわけには行かなかったので今回は画像なしです。ただし、この講座で画像が表示できるように改造するつもりですのでお楽しみに。

 

3.作業の意味

 

さて、データベースの中を見るためにいろいろな作業をしていただきました。初めての方には大変だったと思いますがなれるとなんということはありません。しかし、あの作業はいったいどんな意味を持っていたのでしょうか。少し解説したいと思います。

作業の目的は「Animals.mdbに登録されている動物の名前、目、説明を表示させること」でした。

VBから、データベースに接続する方法はいくつかありますが今回は、現在の代表的な方法であるADOというものを使った接続をしています。VBにはADOを簡単に操作するためのADODCというコントロールが付属していますのでこれを利用しました。ただし、Adodcはテキストボックスやコマンドボタンのように標準コントロールではないので、最初にAdodcを使えるようにするための準備をしましたね。それがB1、B2、B3の作業です。

Adodcが使えるようになったら次はAdodcを使ってAnimals.mdbへ接続する作業でした。Adodcはさまざまなデータベースにアクセスできるように作られているので、データベースに接続するためには、データベースの種類、データベースの名前を指定する必要がありました。これがB5〜B9の作業です。

拡張子がmdbのデータベースはJetという種類です。ですから、B6で「Microsoft Jet 3.51 OLE DB Provider」を選んだわけです。データベースはJetの他にもOracleやSQL Serverなどいろいろなものがあります。このあたりの解説はまたの機会に説明します。

ところで、Animals.mdbの中はどのようになっていると思いますか?

現在の代表的なデータベースはRDB(リレーショナルデータベース)理論に基づいて設計されています。この理論ではデータベースは「テーブル」に分かれています。今回のAnimals.mdbには次のようなテーブルが登録されています。

テーブル名 説明
T1_動物マスタ 動物の名前を説明と目が登録されています。
T2_門マスタ 門が登録されています。
T3_綱マスタ 綱と綱がどの門に属しているかが登録されています。
T4_目マスタ 目と目がどの綱に属しているかが登録されています。
Q1_動物一覧 動物の名前、説明、門、綱、目などが登録されています。

実は「Q1_動物一覧」だけは「テーブル」ではなく、「クエリー」と呼ばれるものなのですが、ここではテーブルとして扱うことにします。テーブルとクエリの違いはそのうち説明することになるでしょう。

この一覧を見るとわかると思いますが、Animals.mdbに接続しただけでは具体的なデータは表示できないのです。具体的なデータを表示するためにはさらに、「どのテーブルに接続するか」も指定しなければなりません。

それが、B10〜B13の作業の意味です。今回は「Q1_動物一覧」に接続しました。

これで接続が完了しますが、接続しただけでは表示はしてくれません。

そこで、最後にテキストボックスにデータを表示する設定が必要だったわけです。テキストボックスにはデータベースの内容を表示する機能がちゃんとついていてプロパティを操作するだけでデータを表示させることだできます。

まず、どの接続を利用するのかを指定します。これはDataSourceプロパティです。今回はAdodc1の接続を利用するのでAdodc1を指定します。次にどの項目を表示するのかを指定します。これはDataFieldプロパティです。「名前」「説明」などを選択しましたね。これがB14〜B16の作業の意味です。

以上の説明でお分かりかと思いますが、ちょっと手を加えるだけで、「門」や「綱」を表示させることもできます。ぜひチャレンジしてみてください。

 

4.修正

 

さて、できあがったプログラムをもう少しいじって見ましょう。

できあがったプログラムはデータベースの中を見るというものです。見ることもデータベースの重要な機能の1つですね。しかしいろいろいじった方は気がつかれたことでしょう。じつは このプログラムはデータを見るだけではなく修正もできてしまうのです。

たとえば、アイアイのデータを次のように修正してみてください。

名前に「?」をつけて、「アイアイ?」にします。「霊長類」のところには「かな?」とつけて「霊長類かな?」にします。説明には「童謡にも歌われる。」と加えてください。

そして、次のデータに移動します。移動したらもとにもどってアイアイのところを見ましょう。ちゃんと入力した内容が登録されているのが確認できますね。ではいったんプログラムを終了させてください。

ちょっと横道にそれて用語の話をしますが今の説明の中に「次のデータに移動します」という記述がありました。実はこれは素人向けの説明なのです。データベース用語ではここは「次のレコードに移動します」というべきです。このように単位となっているデータの集まりのことをレコードといいます。今回のプログラムでは動物の名前と目と説明などが1つのレコードを作っています。「など」と書いたのは表示させていない項目があるからです。

では、またプログラムを開始してアイアイを探してください。ほとんどの場合探すまでもなくいきなりアイアイが表示されると思いますが状況によってはアイアイから始まらないこともあります。

先ほど加えた変更がちゃんと保存されているのが改めて確認できます。では、レコードを移動させて同じ霊長類である「ニホンザル」と探してください。よくみるとニホンザルのところに「霊長類かな?」と表示されているはずです。

内容を変えたのは「アイアイ」のレコードだけのはずですがニホンザルのところも変わってしまうのです。他にも「ミドリザル」、「マンドリル」、「ゴリラ」で同じことが起こります。確認してみてください。

要するに、「霊長類」のところがすべて「霊長類かな?」に変更されてしまったのです。

これは現代のデータベースの当然の機能なのです。1つ修正すると連動している箇所がすべて修正されます。

ちょっと字を間違ったときなどにいちいち全部を直さなくても一箇所直せばよいので便利ですね。

ところで、「連動している箇所」とは具体的にはどういうことでしょうか。この疑問には今回はお答えしません。私がデータベースを作るときにあらかじめ設定しておいたのです。キーワードは「リレーションシップ」ですが、今は覚える必要はありません。

 

 

.最後に

 

第1回の今回はデータベースに接続して中身を表示させる説明でした。繰り返しになりますが初めての人にはこの作業は複雑に感じられるでしょう。しかし、私のようになれた人間にとっては楽な作業ですし、すぐになれます。

次回からはデータベースへの登録、変更、削除、修正、画像の表示などなどを解説していく予定ですのでお楽しみにしてください。ぜひ動物図鑑を完成させましょう。