「今使っているAccessのフォームをより便利にカスタマイズしたいけど、どのようにしたらいいのかな?」
Accessのフォームを作れるようになったら、せっかくなので便利に使えるようカスタマイズしてみませんか?
もくじ
この記事を書いている私は、Accessを使ったツールの開発を10年程度行ってきました。
Acceesを使っているユーザーに満足してもらえる鍵は、ズバリ『フォームの完成度』です。
フォームはウィザードなどの手順に沿っていけば、簡単に作ることができます。
しかし、標準の設定のままでは『かゆい所に手がとどく』フォームにはなりません。
便利なフォームにするためには、プロパティ(設定)を操作する必要があります。
- フォームのプロパティを操作する2つの方法
- どんなプロパティに注目すればいいか
について解説します。
操作方法1-プロパティシートを使う
プロパティシートを表示させる方法は以下のとおりです。
フォームをデザインビューで表示します。
デザインビューが開いたら、フォームのどこでもよいので右クリックしします。
「プロパティ」「フォームのプロパティ」のどちらでもよいので選択します。
プロパティシートが表示されました。
編集したいフォームやコントロールを選択してプロパティを書きかえることができます。
プロパティシートには、「書式」や「データ」などの5つのタグが設けられています。
書式タグ
「書式」タグは、その名のとおりコンロトールの書式を設定できます。
データタグ
「データ」タグは、フォームやコントロールの参照元を設定できます。
イベントタグ
「イベント」タグは、いろいろな動作で起動するイベントプロシージャを作ることができます。
例えば、コントロールをクリックした時に命令するプログラムを作りたい時は、「クリック時」の「イベントプロシージャ」を選びましょう。
右端の「…」をクリックすると、VBEが開きます。
「発注先名」をクリックした時に作動するイベントプロシージャが作成されました。
あとは「Private Sub」と「End Sub」の間にコードをかくだけです。
その他タグ
「その他」タグでは、一番重要なプロパティである「名前」を設定できます。
他は、「タブ順」や「IME入力」などの、機能的な設定を変えることができます。
すべてのタグ
その名の通り、「書式」から「その他」までの全てのプロパティが載っています。
操作方法2-VBAを使う
プロパティウィンドウに表示される設定は、ほとんどが VBAで設定できます。
ただし、オブジェクトの一番の基本となる、
- オブジェクト(フォームやコントロール)の名前を変更
- イベント(イベントプロシージャ)の設定
といったことはVBAでは設定できませんのでご注意ください。
よく使われるのは、イベントプロシージャにコントロールのプロパティを設定するコードを書くことです。
- フォームを起動した時
- コンボボックスの値を選んだ時
- ボタンをクリックした時
など、何かのイベントでコントロールの元データや書式を変えることができます。
プロパティウィンドウだけの活用では、 VBAのような融通の効いた設定は出来ません。
Accessを初学者はプロパティシートを活用しても問題ありませんが、慣れてきたら少しずつ VBAのイベントプロシージャにプロパティのコードを書くようにするとよいでしょう。
Microsoftの公式リファレンスにAccessで VBAを活用するヒントが載っていますので、日頃から目を通しておくとよいでしょう。
Visual Basic for Applications (VBA) リファレンスへのアクセス | Microsoft Docs
よく使うプロパティ7選
下によく使うプロパティを7つ挙げました。
他にもたくさんありますが、まずはこれをおぼえておくとよいでしょう。
①表題(Captionプロパティ)
ボタンやラベルなどに表示されている文字そのものになります。
名前とは全く違うプロパティになりますので、間違えないようにしましょう。
VBAを使った表題の変更も可能です。
②レコードソース(RecordSourceプロパティ)
フォーム単位の元データを指定します。
通常は、テーブルやクエリを指定します。
フォームにレコードソースを指定しない場合もあります。
ボタンを並べただけの操作用のフォームや、サブフォームのみでデータを表示させたフォームには、レコードソースを指定しません。
VBAでSELECT文(SQL)を作りレコードソースを変更することで、データにフィルタをかけることもできます。
③コントロールソース(ControlSourceプロパティ)
テキストボックスやコンボボックスなど、コントロールの元データを指定します。
データを指定せずに使う場合もあります。
④値集合(RowSourceプロパティ)
コンボボックスの選択肢になるデータを指定します。
「値集合タイプ」では主に2つの方法で選択肢を取得します。
- テーブル/クエリ・・・テーブルやクエリのフィールドで指定
- 値リスト・・・直接データを入力して指定する
「テーブル/クエリ」では、レコードソースと同じように、SELECT文を指定できます。
⑤使用可能(Enableプロパティ)
コントロール選択の可否を設定します。
「はい」と「いいえ」で設定できます。
- 参照元のデータなので変更したくない
- 選択できるコントロールを制限して入力効率を上げたい
といった場合には、「いいえ」を設定するとよいでしょう。
VBAを活用して、条件により設定を切り替えることもできます。
⑥可視(Visibleプロパティ)
「いいえ」に設定すると、ボタンやコントロールをフォームビューで見えないようにすることができます。
- 管理者権限の時のみのみ表示させたい
- 何かを処理するためのボタンは作ったが、処理が未完成なので表示したくない
というときには便利な機能です。
⑦背景色(BackColorプロパティ)
コントロールの背景色を変えることができます。
16進数で設定しますが、カラーパレットから選択することもできます。
編集ロックしたコントロールを背景色を変えることで区別できる、といった目印のような使い方が可能です。
※データシート形式の場合は背景色を変えてもセルの色は変わりません。フォームビューの「データシート」タブで変更できます。
まとめ
今回は、フォームのプロパティについて解説しました。
プロパティウィンドウと VBAの2つの方法で行うことがてきます。
Accessを学習中の時は、プロパティウィンドウで設定してもよいでしょう。
Accessに慣れてきて VBAのコーディングも覚えてきたら、少しずつ VBAでのプロパティ設定を覚えましょう。
「かゆい所にとどく」便利なAccessフォームを必ず作れるようになります。
当ブログでは、Accessアプリの使い方について解説した他の記事もあります。
下にまとめ記事のリンクを入れておきますので、よかったらごらんください。