CDアルバム管理ソフトを作ってみよう! |
●サブフォームの修正● |
|
さあ、サブフォームの手直しをしましょう。 |
もうフォームは飽きたよ、なんて言わないで下さいね。 |
|
では、「frm_sub」をデザインモードで開いてください。最大化しておいたほうがいいかもしれません。 |
このフォームは帳票形式フォームですね。メインフォームは単票形式でした。 |
帳票形式のフォームにデータ入力を次々行っていくと「詳細」部分のレコードが追加されていきます。 |
よって、単票形式フォームのように「移動ボタン」がいらず、スクロールバーが必要となるのです。 |
|
また、このサブフォームは単独では使用せず、必ずメインフォームと一緒に開かれるので、メインフォームの中に綺麗に収まる大きさにします。 |
|
では具体的な作業に移りましょう。 |
最初に、入力不要なテキストボックスを「使用不可」にしましょう。 |
このフォームでいえば「ID」と「番号」です。これらはAccessが自動的に入力します。 |
また、「区分」には、朝、昼、夜の何れか、「ランク」には5点評価の何れかが選択して入力できるようにします。 |
(「ランク」のところは、点数ではなく「大変良い」「まあまあ」などの言葉にすることもできます。 |
その場合は数値型ではなくテキスト型に設定します。) |
|
その他、次のように修正してみてください。 |
|
・サブフォームの移動ボタンを「いいえ」にする。 |
・サブフォームのスクロールバーを垂直だけにする。 |
・「区分」、「ランク」をコンボボックスに変換する。 |
・「連番」のタブストップを「いいえ」にする。(マクロで自動的に入力設定を行うから) |
・「曲名」、「演奏」、「区分」、「ランク」、「etc」の変換モードを適宜設定する。 |
・「演奏」の定型入力欄に 99\分99\秒;0_ 、書式に nn"分"ss"秒" 、既定値に 00分00秒を記述する。 |
・「etc」のEnterキーの入力時動作を適宜変更する。 |
・各テキストボックスの横幅を調整して、全体で17cm(ルーラーをつかって)に納める。 |
|
↓これは「ランク」の設定の例です。
|
|
|
|
全体ではこういうふうになりました。 |
|
|
さて、ここで「連番」の話しに入りますが・・・。
|
できればここにはCDの何番目の曲かを明記したいので、テーブルに別のフィールドを設定しました。 |
連番の付与については、 |
・その場その場で手入力する方法
|
・マクロアクションで代入する方法
|
・独自関数を作成して、更新クエリーで付与する方法
|
などがあります。 |
|
|
別に面倒なマクロを代入しないで、手入力したい人はそれでもいいと思います。 |
でも、ちょっとマクロでの作成の仕方も載せておくので、ここからは参考までに。(手入力でいい人はやらなくていいですよ) |
|
|
|
もしも「マクロ名」と「条件」の項目が出ていないようでしたら、上のタイトルのところを右クリックして出してください。 |
そしてまず、「アクション」のところをクリックすると右に▼が出てきますので「値の代入」を選んでください。 |
そして下の「アイテム」と「式」に |
|
・アイテム [Forms]![frm_main]![frm_sub]![連番]
|
・式 DCount("[番号]","[tbl_sub]","[番号]=Forms![frm_main]![frm_sub]![番号]")+1 |
と記述して下さい。 |
|
・条件としては、「連番欄に何も入力されていなければ右のマクロをマクロを実行しなさい。 |
入力済みであれば何もしなくていいですよ。」を記述します。「Is Null」は「存在しない」の意です。 |
・「tbl_sub」の「番号」フィールドの既定値が必ず空白となっているか確認して下さい。 |
・アクションの「値の代入」は「アイテム」へ「式」を代入することができます。 |
・Access組み込みのDcount関数(個数を集計)を使って、サブフォームに表示されている |
「番号」から導き出して一個プラスしています。データを見にいくところは「tbl_sub」です。 |
・このマクロを「mc_sub」として保存します。 |
・あとは「曲名」の「更新後処理」イベントにこのマクロを定義してください。 |
これで連番の設定は終わりました。 |
|
|
さて、もう一度フォーム全体の手直しをしましょう。 |
メインフォームに戻ってください。 |
|
「アーティスト名」を入力するコンボボックスがありますね。 |
ここをコンボボックスにしたのは、CD収集は気に入ったアーティストを集めるのが目的ですので過去のデータを利用するためです。 |
|
これをもう1歩進めて、コンボボックスが「フォーカスを取得したときコンボボックスが空欄であれば自動的にリストが表示されるシステム」にしてみようかと思います。 |
|
だたし、「既定値」を設定していると、この昨日に制約がありますのでご注意下さい。 |
その場合は下記の条件欄を空白にしてください。 |
|
|
|
「マクロ名」と「条件」が表示されていない場合は、右クリックして出してください。 |
マクロ名に「mc_main」と入力して保存します。 |
|
|
|
これらの処理はVBAで行うほうが正確ですが、はじめの頃はマクロのほうが簡単でしょう。 |
このほかマクロを使っていろいろな設定ができます。 |
今回は割愛しますが、もっとマクロを使っていろいろな指示を使いたい人はヘルプや解説書で勉強してみてください。 |
|
では次回からは入力フォームを離れて、データをいろいろな角度から眺めてみましょう。 |
 |
|
|
|
|
|