生涯エンジニアの備忘録

アクセスカウンタ

zoom RSS エクセルVBAとアクセスDBの使い方(8) ー1日の予約状況の表示ー

<<   作成日時 : 2017/02/12 19:36   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

会議室予約アプリの最初の画面に一覧ボタンをつけました。
画像

この一覧ボタンをクリックすると次のフォーム画面が現れます。
画像

利用日のテキストボックスの右にある▼ボタンをクリックするとカレンダフォームが現れるので、2月6日を指定すると
会議室1と会議室2に予約されている時間帯の情報が表示されます。
画像


これはすでにアクセスDBにこれら情報が入っていて、それを読み出して表示したにすぎません。
では、裏側のプログラムはどうなっているのでしょうか?

予約情報の表示は利用日の変化が起きたら実行されるようにプログラムしています。最初一覧ボタンをクリックしても、利用日は空欄でした。(後のバージョンでは今日の日付が入るようにしますが)
カレンダを呼び出し、日にちを選んだら、テキストボックスにその年月日が入りますので、変化したことになります。それで予約情報の表示を起動するわけです。
ソースリストは次のようになります。
画像

Sub名は、TextBox1_Changeとなっていますが、これはテキストボックス1の内容が変化したら、呼び出される手続きになります。
部分ごとに詳しく見ると、最初はDIm文による変数の定義が続き、まずは、Table_flgが真(True)ならば、ラベル31からラベル40までのTop位置を200に飛ばしています。この一覧フォームは高さが150なので、当然これらラベルはフォーム画面から消えます。これらラベルは予約がある場合に、それぞれの予約時間帯を表示するものなので、最初は画面外にでていないとまずいからです。
画像

それからアクセスDBへの接続処理を行います。マイクロソフトのADOインターフェースで接続できるので、コネクションとレコードセットを設定して、DBを開きます。SQLのSELECT文で利用日を指定して、該当レコードだけを選択して読み出します。
画像

もちろん、予約情報は最初のや役フォームですでに2月6日に会議室1と会議室2に入れてあります。
ここからが少し複雑になりますので、よく注視してください。
画像

レコードセット(adoRS)を開くと、最初のレコードがadoRSに読み出され、各フィールドは!をつけて読み出せるようになります。adoRS!目的とadoRS!予約者氏名をラベル31のキャプションに入れて、ラベル31のTop(左上位置)とLeft(横位置)、Width(幅)を設定します。会議室1の情報なので、Topの位置は24+18=42となります。これは、会議室横の空白のラベル21のTopと等しい位置です。
8時から始まっていますので、予約開始時間の時間値から8を引き、1時間が24の長さなので、乗じます。またラベル21の横位置が90ですので、ここから1時間ごとに24ずらしていくわけです。
幅も同様な計算で長さを決めます。時間だけでなく分もあるので、時間は24をかけて、分は24/60をかけます。
これで幅もきまります。
時間帯表示用のラベルは画面外に10個用意しています。会議室が増えたり、細かい予約がはいるようだと不足気味になるので、数をふやしたほうがいいかもしれません。歯科医の検診などは30分や20分単位が多いので、10個では不足するでしょう。
ラベルを増やすのは、簡単にできます。10個のラベルをドラッグしながら囲んで全部選択します。右クリックでコピーを選び、次に足り付けを選ぶと、中央にコピーされた10個のラベルが現れます。フォームを広げて、通常の画面サイズ外に配置します。フォームを元のサイズにもどし、ラベルを隠します。

これで、会議室予約の説明は終わりですが、SQLは強力です。SELECT文の定義だけでもいろいろな選択が可能になります。ある日付期間だけのリストとか、予約者氏名による選択とか、さまざまなフィルタリング(エクセル)処理がエクセルよりも高速、繊細に可能になります。

プログラミング教室の受講生の方には、会議室予約のソースコードだけでなく、応用編の歯科医院用予約システムや、在庫管理、名刺管理、人事管理、組織表管理、受注管理、注文管理、請求書発行など、一連の会社で必要になると思われるシステムの作成例をお渡しする予定です。商品として販売されているものとは、完成度レベルが落ちるでしょうが、基本的な操作は体感できるでしょう。また自分好みに改造も可能です。お勤めの会社で少しでもお役に立てれば幸せです。

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
エクセルVBAとアクセスDBの使い方(8) ー1日の予約状況の表示ー 生涯エンジニアの備忘録/BIGLOBEウェブリブログ
文字サイズ:       閉じる