練習2:売上集計データベース (4)
メニュー画面を作る
空白のフォームを作りましょう。
図1:真っ白なフォームをメニュー画面にしよう
空白のフォームができたら、デザインビューに切り替えます。
図2:デザインビューにしよう
(余談ですが)ここから後の作業は、コントロールウィザードがオフの状態でやってます。
コントロールウィザードは、コマンドボタンやテキストボックスを作るときのお助け機能で、使いこなせばなかなか便利なんですが、Accessの全体が見えていないうちに使ってもわけがわからないと思います。なので、Accessの操作に慣れてきたら活用するってことで、慣れるまでの間はオフにしておいたほうがお奨めです。
右図は、オフの状態です。
クリックするとオフ/オンが切り替わります。
図3:コントロールウィザードは、オフにしておいてください
コマンドボタンを作ります。
空白のフォーム内の適当なところにコマンドボタンを作ってください。
このコマンドボタンをクリックすると、削除クエリが実行されて「TEMP売上集計」が空になるようにしますよ。
図4:コマンドボタンワンツークリック
このコマンドボタンのプロパティシートを見ましょう。
クリックしたときの”動作”を作ります。いわゆる、イベントってやつですね。
「クリック時」というイベントをクリックし、右端の3点ボタンをクリックします。
イベントとか言われると、なんか楽しそうな感じがしますよね。楽しいかと聞かれると微妙ですが・・・。
図5:ビルドボタンとかビルダボタンとか呼ばれるのよ私
マクロを作ります。マクロビルダを選択しましょう。
これから、削除クエリを実行する(クエリを開く)という仕事をするマクロを作るんですが、ちょっと思い出してみてください。削除クエリを実行するときに出てくる「削除しますがよろしいですか?」みたいなメッセージ。
あれはあれで、重要な役割を担ってるんですが、今回の場合は、今までさんざんテストを繰り返してきて、あの削除クエリが正しく動くことは確認済みなんですよね。だから、もうメッセージは出てこなくてもいいなぁって思ってるんですけど・・・皆さんはどう思います?
図6:マクロを作るだよ
と、そんなときは、このマクロを実行している間だけ、一時的に確認メッセージの類を非表示にすることができるんです。ちょっとやってみましょう。
「メッセージの設定」というアクションなんですが、通常の状態だとリストには出てこないようです。そこで、右図を参考にしていただきながら、「全てのアクションを表示」をクリックしてください。
図7:あんまり使わないアクションは普段は表示しないのね
で、アクションの一覧を見ます。
中に、「メッセージの設定」というアクションがあるので、これを選択します。
図8:おお、あったあった
画面の右下に、このアクションの説明が出るので、読んでおいてください。
このアクションの引数を「いいえ」にしておけば、それ以降、あのメッセージは出なくなるんですね。
図9:説明ありがとう
二番目のアクションとして、メインとなる削除クエリの実行を指定します。
「クエリを開く」アクションを選択してください。
図10:二番目にやることは?
画面下の方のアクションの引数欄で、開くクエリの名前を選択します。
削除クエリを選んでください。
図11:削除クエリ、どれだかわかんないとか、言わないっすよね?
3番目のアクションとして、メッセージの設定を選び、引数を「はい」にします。
引数は、画面の下の方で指定しますよ。
メッセージの設定は、このマクロが終了すれば自動的に元に戻るので、3番目のアクションは必要ないんですが、私はいちおういつも、”いいえ”に変更したものは最後に”はい”に戻すようにしてるので、こんな感じに。
図12:無駄なことではないと思いますけどね
マクロが完成しました。では、閉じましょう。
ここで、名前をつけて保存するのではない、というところがちょっとしたミソなんですが、なんで保存しないのか、ちらっと思い出してくださいね。
これ、マクロを作ってるわけじゃなくて、マクロビルダを使ってフォームのプロパティを変更しているんですよね。
図13:保存したらいけんのや。閉じるや、閉じる
閉じると、こんなメッセージが出てくるので、「はい」をクリックしましょう。
ボタンのクリック時のイベントが完成しました。
図14:はいはい
ボタンの標題は、わかりやすそうなものに書き換えておいてください。
図15:ボタンの大きさや位置も調整してね
2番目の操作 & 3番目の操作
2番目の操作は、「保存済みのインポート操作の実行」ですね。
でも、この処理は、毎回毎回ファイル名を書き換えなければなりません。ファイル名が毎日違うので・・・。
なので、残念ながら、今の段階では自動化することはできません。
そこで、右図のように、ラベルに文章を入力して、インポート手順を書き記しておくことにしました。
図16:ラベルに説明文を入力してはどうだろうか?
続いて、コマンドボタンをもうひとつ作りましょう。
次は、重複のチェックをするためのクエリを開きます。
右図のテンポでクリック時のイベントを、マクロビルダで作りましょう。
右図では新しいコマンドボタンの標題が「コマンド3」ってなってますが、皆さんの画面では「コマンド1」になってるかな・・・コマンドボタン作ったときの標題はAccessが勝手に割り当てたものなので、あんまり気にしないでください。
図17:ワンツースリーフォー
さて、クエリを開く段ですが・・・・。
ただ単に「Qs_重複チェック」クエリを開いて、0件かどうか目でチェックしてもいいんですが、今度は、少し凝ったことをやろうと思います。すなわち、「Qs_重複チェック」クエリの結果件数が0だったときとそうでないときとで、異なるメッセージを出して状況を知らせるようにしようかな、と・・・。つまり、とある条件を満たしたかどうかで、処理を分岐するってわけです。
ちょっと難易度高いですが、応用の利く方法なので、ぜひ、挑戦してみてください。
リボン内の「条件」をクリックします。
すると、マクロを作成する画面の中に、「条件」という列が表示されるようになるんですよ。
図18:条件は?
ちょっと細かいですが、右図のように入力します。
dcount("売上日","Qs_重複チェック")>0
※先頭のDとCは、自動的に大文字になります。
図19:さては関数ディーカウントだな
DCountとは、定義域関数というタイプの関数で、テーブルやクエリの結果の件数を調べるときによく使います。いろいろな場所で手軽に使うことができるので、なかなか便利なんですよ。
これで、「Qs_重複チェックの売上日フィールドの件数がゼロより大きかったら(ゼロは含まない)」という意味になります。
「Qs_重複チェック」クエリの結果が1件でもあれば、既にこのファイルは処理済みであることを伝えるメッセージボックスを出します。
右側のアクション欄に「メッセージボックス」を選んでください。
図20:アクショーン
画面下の「アクションの引数」欄の「メッセージ」に、何か適当なメッセージを入力しましょう。
「このデータは既に取り込み済みのようです」とか、そんな感じでいいと思います。
図21:何か伝えよう
メッセージボックスを出したあと、もうひとつやることがあるんです。そのために、2行目の右図の場所に、半角のドットを3つ入力してください。
これで、上の条件式はまだ有効である、ということを示しています。
図22:この点三つ、絶対忘れたらアカン
右側のアクション欄に「マクロの中止」を選びます。
図23:メッセージボックス出したら中止や中止
で、今度は、3行目のアクション欄に、またまた「メッセージボックス」を選びます。
3行目は、ドット3つは不要です。ドット3つを入力しないことで、「Qs_重複チェック」の結果が0件だったら」という意味になります。
図24:Aは0じゃなかったときやること。Bは0のときやること。
3行目のメッセージボックスのメッセージは、「
このファイルはまだ取り込んでいません。次の作業に移ってください」とか、そんな感じのメッセージがあればいいでしょう。
では、マクロビルダを閉じましょう。
図25:閉じよう
もちろん、更新します。「はい」ボタンをクリックしてください。
図26:お願いしやーす
フォームビューに切り替えて、テストしてみましょう。今作ったコマンドボタン、クリックしてみてください。
現在の「TEMP売上集計」テーブルの中身によって、表示されるメッセージボックスは異なりますが、データが残っていれば前者の方、空っぽなら後者の方のメッセージがでるはずです。
図27:クリックしてみるべ
どっちかのメッセージボックス、出ました?
図28:オリジナルメッセージボックス。ちょっと感動
4番目の操作
同じ要領で、もうひとつコマンドボタンを作り、追加クエリを実行するマクロが動くイベントを作ってください。
図29:図の説明。
もし、「メッセージボックスの文言を変えたい」などなど、マクロの変更をしたいときは、右図の要領でもう一度、ビルドボタンをクリックします。
図30:修正したいなら~
また、マクロビルダが開きますので、修正をして、終わったら閉じます。
閉じる時、「更新しますか?」的なメッセージが出てくるので、はい、と力強く答えましょう。
図31:修正はいつでも可能だよ
ひととおりコマンドボタンの用意ができたところで、このフォームに名前をつけましょう。
名前は、何でもいいですよ。
図32:メニューとかどうかな
これで、メニュー画面が完成しました。
次のページで、仕上がり具合を見ながら、ひととおり使ってみましょう。
このページのまとめなど
- ラベルをうまく使って、操作の説明や注意書きなどを載せていこう。
- 慣れるまでは、コントロールウィザードはオフにして手作業でコントロールを作っていったほうがお奨めです。
- マクロのアクションにはいろいろな種類があるが、よく使うのはほんの一握り。今回使ったアクションは押さえておこう。
作成日:2009-01-14