• ベストアンサー

ACCESSで視覚的タイムテーブルを作成したい。

例えば、会議室予約テーブルの会議室NO、予約日、予約開始時間、予約終了時間を利用して、視覚的タイムテーブルを作成したのです。 縦の列は各会議室が並び、横は左(午前)から右(午後)へ向かう時間帯を表示します。 予約した時間を時間数に対応した図形の四角で表現するような方法です。 いろいろな予約に利用できるはずなのでどうしても習得したい技術ですが、参考にする操作説明書なり書籍に出会うことも探し当てることも出来ていません。 このような機能をよく利用されていて教えて頂ける方を探しています。 とても困っています。宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

Accessだけでそんなに難しくなく作ることが出来ます。 会議室予約テーブルに会議室NO・予約日・予約開始時間・予約終了時間があれば充分です。 簡単に作る方法としてクエリを使えば出来ます。 ただ時間の区切りを30分としても朝9時~夜6時としても20のフィールドをクエリに作らないといけませんが・・。演算式をコピペすれば比較的楽にできますよ。 例えば 9時~9時29分の区画としてT0900というフィールドをクエリに作りそのフィールドに T0900:IIf(TimeSerial(9,00,0)>=[予約開始時間] And TimeSerial(9,00,0)<=[予約終了時間],1,0) 次の9時30分~9時59分のフィールドをT0930とすると T0930:IIf(TimeSerial(9,30,0)>=[予約開始時間] And TimeSerial(9,30,0)<=[予約終了時間],1,0) このように順にフィールドを設定して必要な時間まで作ります。 予約開始時間・終了時間を入力しクエリを開くと開始時間と終了時間の間に該当するフィールドに1それ以外に0フラグが立ちます。 クエリを元にしてフォームを作り各時間区分(T0900・T0930等)の表示を1なら■・0なら""(空白)にすれば出来ます。 (*クエリに記述する際にT0900:IIf(TimeSerial(9,00,0)>=[予約開始時間] And TimeSerial(9,00,0)<=[予約終了時間],"■","")でクエリでそのまま■が表示されますが。) 取り合えず■ではなくフォームのフィールド自体の色を変えて■の代わりにする時も考えて1か0にしましたが・・。 あとはその表示するフォームのデザインや会議室No等の方はご自分でお好きにどうぞ。 試してみてください。

yuuki_555
質問者

補足

早速のアドバイスありがとうございます。今、試して見ます。アドバイスを読むと■の連続で時間数に対応する長方形になるようですが、もし会議室予約テーブルに予約者名、電話番号、当社受付担当者などがあった場合、この長方形に表示するようにという方法もご存知でしょうか?宣しくお願いします。

その他の回答 (3)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.4

テキストボックス内の文字の始まりを座標で定義は出来ないのでcaseでも使って分岐を作り開始時間に合わせで全角のスペースを入れて予約者名・電話番号・当社受付担当者を表示するくらしかないと思いますが。

yuuki_555
質問者

お礼

ありがとうございました。テキストボックス内の文字の始まりを座標では定義できないこともわかりました。テキストボックス自体の配置場所を座標で定義することは出来ないでしょうか?O_cyanさんのアドバイスをもとにいろいろやってみます。

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

>会議室予約テーブルに予約者名、電話番号、当社受付担当者などがあった場合、この長方形に表示するようにという方法 フォームなどにフィールドとして9時~18時として■を表示するフィールド20個を1文字分の幅にしてフィールド同士の間隔をなくし横につながった状態で並べてその1つづつの各フィールドに■1文字だけ表示するだけなのでその中に他のレコードを表示するのは無理です。 1フィールド内に1文字だけですから。 どうしてもというのであれば■を表示するフィールドを全て並べた幅のテキストボックスを1つ作り背景は透明にして時間のフィールドの上に重ねプロパティのコントロールソースに=[予約者名]&" "&[電話番号]&" "&[当社受付担当者]とし中央揃えにすれば■が並んだところの行の中央に表示できますがビジュアル的にイマイチかも。 (クエリもしくはフォーム上に[予約者名][電話番号][当社受付担当者]のフィールドを追加した状態でなら上記で表示できる) ではこのへんで。

yuuki_555
質問者

お礼

これまた早いレスポンスでありがとうございました。ちなみに[■を表示するフィールドを全て並べた幅のテキストボックス]の幅はどうやって参照するのですか? やはり本当の意味でタイムテーブルを作るのだとしたらフォームの座標で表現するとして、四角を左位置、上位置で指定した四角を表示するようなイベントを書き込むしかないでしょうか?

回答No.1

確かに便利ですね ですが、このようなものがありますよ Microsoft Office Project 2003 デモ : プロジェクト内のタスクをリンクする http://office.microsoft.com/ja-jp/assistance/HA010930891041.aspx もし、自作するとしてもそれにかかった工数のことを考えると このソフトを購入したほうが安いかもしれません (ご自身の勉強のためでしたら、この限りではありませんが...) ただし、アクセスだけで開発を行うとすると厳しいかもしれません ・ビジュアル的なものが開発するのが大変です ・工程表などにスプレッド等のOCXを使用するなど(いずれにしてもメンドくさい) 参考になれば

関連するQ&A