電子書籍の厳選無料作品が豊富!

Access2007です。
よろしくお願いします。

現在スケジュール管理を作成しております。
一日の様々な予定を横軸に登録していきます。
横軸は5分単位で9時から18時まであり、
例えばAという予定を30分で入れる場合は5分枠を6個使用して登録している状況になります。

それで、僕が今悩んでいるのは、、、

ある予定を変更しようとした時に当然他の予定とぶつかるかぶつからないかチェックをかけます。
そのチェックのかけかたで悩んでいます。
変更後の開始時間と終了時間をまたぐ他の予定があるかテーブルを参照しにいきますが、
当然いままさに変更しようとしている予定もヒットします。
この予定を除いて他にぶつかる予定があるかないか確認をしたいのですが、
どうしたらいいのか分かりません。

この説明で伝わっていますでしょうか。。。
どなたかお知恵を拝借できればと思います。
よろしくお願いします。

A 回答 (2件)

[Access]時間帯の重複チェック


http://oshiete1.goo.ne.jp/qa5271120.html

上記は参考になりませんか?

「現在」のは、まだ登録されていない状態だと思うので、
DLookup とかで WHERE 条件を組み立てれば良さそうです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

上記を見させていただきました。
僕の作成してるテーブルと違うところはIDがあるということでしょうか。
スタッフ、予定日毎にIDを連番でもたせたら、これと同じ感じで
できそうですね。
ありがとうございます。なんとかできそうです。
ほんとに助かりました。
また何かありましたらよろしくお願いします。

お礼日時:2013/02/16 22:24

> 一日の様々な予定を横軸に登録していきます。


> 横軸は5分単位で9時から18時まであり、

列が12×9の構成といのは想像が付くんですが、レコード(行)は一日単位?それとも予定毎?
日付でgroup by して、各列の予定アリcount(*)でとって、count(*)>1があれば重複アリ。
havingに108個も記述することになりますが。

でも、どうやって行を識別するのですか?それさえわかれば、自身を除外できそう。

この回答への補足

ご回答ありがとうございます。また説明不足ですいません。
作成に際し、基本はVBAを使用しております。

フォーム上のデータシートには一日の予定を表示させています。
横軸:1フィールドを5分として1時間当たり12フィールド使用しています。
それで9時から18時分の枠がある状態です。
例えばAという20分の予定を表示させようとした場合、4フィールド分色を変えて
います。
縦軸:1行1スタッフで、人数分の行があります。

ですので、1行の中で自身以外の予定と時間がぶつからないかをチェックするのですが、
実際は以下のようにテーブルに予定データがあり、それをVBAでフォーム上に表示させて
いる状況です。

(予定テーブル)
予定日 スタッフID 予定内容 開始時間 終了時間

自身の予定を変更しようとするとき、シートをクリックするとそこの予定を表示した
別フォームを出し、そこに変更後の時間等も入力します。そのあと、変更ボタンを押す
タイミングで予定日、予定内容、開始時間、終了時間をみて
ぶつかるデータがないかテーブルを参照します。これで自身もひっかかります。

という状況です。長々とすいません。お分かりいただけますか?

補足日時:2013/02/16 13:30
    • good
    • 0
この回答へのお礼

bin-chan様

やりとりの途中で申し訳ありません。
他の方から頂いた回答でなんとかなりそうなので、
一旦締め切らせていただきたく思います。
このたびは早々とご回答いただき誠にありがとうございました。
また何かありましたらよろしくお願いいたします。

お礼日時:2013/02/16 22:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!