01.最も簡単なプログラム

VBでデータベースアプリケーションを作るのは意外と敷居が低いものです。
テキストボックスやコンボボックス、チェックボックス等は標準でデータベースに連結可能であり、DBGridやFlexGrid等データベースの内容を表示、操作するコントロールも用意されています。
ここでは、標準で提供されているコントロールを使用して、プログラムを1行も書かないでデータベースアプリケーションを作成する最も簡単な方法を紹介します。
まず、こちらからサンプルプログラムをダウンロードしてください。アーカイブにはプロジェクトファイルの他、今回使用するAccess2000のデータベースが同梱されています。(データベースに関しては最下段の注意をご覧ください)

まず、プログラミングに入る前にデータベースファイルについて説明します。
データベースと言えば、「社員名簿」や「アドレス帳」、「商品台帳」などが一般的だと思うのですが、Access2000の「テーブルウイザード」に「写真」というテーブルがあったので(ちょうど個人的にも興味を持ったので)、DBで「デジカメ画像を整理する」ことを目的にしたアプリケーションを作成してみることにしました。


フィールドはとりあえず全部使用することにします。これで「写真」テーブルができます。

では、VBに移ってプログラミングを始めましょう。
まず、プロジェクトメニューのコンポーネントで、Microsoft Data Bound Grid Control 5.0(SP3)にチェックを入れます。これはデータベースのテーブルを表示、変更することができるグリッドコントロールです。


フォーム上にDataコントロール、DBグリッド、テキストボックス、リストボックス、チェックボックス、ラベルを配置します。


次にコントロールのプロパティ設定ですが、まずDataコントロールのConnectをAccessに、DatabaseNameはデータベースのファイル名を指定します。


すると、RecordSourceプロパティでDB内のテーブルが選べるようになります。DBに複数のテーブルがある場合、リスト表示された中から選択することができます。


Dataコントロールの設定は以上です。DataコントロールはDB操作の大本になるもので、フォーム上の各コントロールをDataに連結することで、データを表示したり編集したりできるようになります。
例えば、DBグリッドのDataSourceプロパティをクリックするとData1がリストに表示されますが、これはDBグリッドの参照元としてData1(Dataコントロール)が利用可能なことを意味しています。他にデータを変更できるようにAllow...の4つのプロパティをTrueにします。


DataSourceにData1を設定してプログラムを実行すると、グリッド上にテーブルのデータが表示されます。
他のコントロールも同様にプロパティを設定します。ただし他のものはテーブル内のどのフィールドを対象にするのかという、DataFieldも設定できます。

テキストボックス チェックボックス コンボボックス
DataSource Data1 Data1 Data1
DataField 題名 フラッシュ使用 天候

テキストボックスは「題名」フィールドを表示、変更できるようにします。テキストはグリッド上で直接編集することができるのですが、テキストボックスに連結して編集することも可能です。
「フラッシュ使用」はYes/Noの二択なのでチェックボックスを使用すると便利そうです。
また、「天候」のように決まった物から選択する場合、コンボボックスのListプロパティに予め候補値を設定しておけば、ユーザは一覧から選ぶだけで済みます。

さて、これで実行してみるとDBの写真テーブルを表示・変更したり新しい行を追加できるようになります。(ただし、行の削除はできません)



どうでしょうか?プログラムを1行も書くことなくデータベースアプリケーションを作ることができました。
普通にデータを編集する分には十分ですが、新規に行を追加して編集していると次のようなエラーが出ることがあります。

1つ目は「写真ID]フィールドに、すでに登録されている番号を入れてしまったために表示されました。
2つ目のは「フィルムID」が空白禁止フィールドになっているのですが、ここに何も入れないまま別の行に移動しようとしたときに表示されたものです。
プログラムレスでアプリケーションができるのは凄い便利ではあるのですが、このような避けられないエラーを回避する手段もありません。(もちろんそれなりにプログラミングすることも可能です)
次のステップ以降では、応用テクニックとして一歩進んだプログラミングをしてみたいと思います。

戻る


Access2000のデータベースに関して注意
VB6のデータコントロールは標準ではAccess2000データベースを読むことができません。
Access2000のDBファイルを直接扱うためにはマイクロソフトのVisual Studio 6.0 Service Pack 5 を導入するか、次章以降で説明するAdoコントロールを使用する必要があります。
この章ではデータベースをAccess97形式で保存したもの(Photos97.mdb)を使用しています。