アプリ版:「スタンプのみでお礼する」機能のリリースについて

ボランティアの受入をしている施設にいる者です。
ボランティアさんが、ボランティアされる日の当該月に誕生月であった場合、
感謝のメッセージをお伝えする為の管理をAccessでできないかと考えています。

現在、Access2010でボランティアの日付を、下記のようなテーブルによって管理しています。

【T_個人】
ID 名前 生年月日
1 太郎 1981/2/3
2 花子 1970/9/21

【T_ボランティア日】
ID 日付
1 2016/2/20
2 2016/3/10
1 2016/2/25

※同じ人が月に複数回ボランティアされることもあり

<対応1:対象者の抽出>
上記データを活用して、「年」「月」等を指定することにより、

①当該年月にボランティアされる方
②当該年月が誕生月である方

の両方の条件を満たす人を抽出する為に、

Month(T_個人.生年月日) = 当該月
Year(T_ボランティア日.日付) = 当該年
Month(T_ボランティア日.日付) = 当該月

を抽出条件にして、選択クエリを作りました。

<対応2:メッセージを渡した人の管理>
また、上記で抽出したクエリにより、フォームを作り、
メッセージを渡したボランティアさんのレコードを選択して
ボタンを選択したり、処理日を入力する等の適当な操作をすること
により、対応1のクエリに表示されなくする

ということをやりたいのですが、対応2の解決策が私のスキルでは
思い浮かびません。

一応、追加クエリ、更新クエリ等は普通に作れ、初心者レベルですがVBAも
作ったことはあります。
ADOやDAOを使った経験はありますが、どなたかが作ったサンプルをコピー
して作った程度です。

解決策をご教授くださる方がいらっしゃれば幸いです。

よろしくお願いします<m(__)m>

A 回答 (1件)

T_ボランティア日に「メッセージ」というフィールドを追加。


データ型はYESNO型で作成します。
メッセージを渡した場合はチェックをすれば誰にいつ渡したのかが分かります。
渡す日がボランティア日と違う場合はメッセージのフィールドを日付型にしてください。(その場合はこの後の抽出条件を変更してください)
T_ボランティア日の「メッセージ」にチェックがある人がメッセージを渡した人になりますのでこのデータを抽出。(クエリ1とします)
T_個人とクエリ1を不一致クエリを使いクエリ1に存在しない人を表示すればメッセージを渡してない人のみが抽出できます。
http://www.microsoft-access.net/start/query-7.html
    • good
    • 0
この回答へのお礼

y504さん、ありがとうございます!
お礼が遅くなりすみません。

T_ボランティア日には、当該月に、同一人物が複数回ボランティアされる
場合があるので、T_ボランティア日にチェックフィールドを設けるだけでは、
当該月のボランティア日の全てに一括チェックが入らないので何とかならないか
と悩んでいました。

しかし、y504さんが情報提供してくださった不一致クエリを使うことを私も
一昨日気付いて、

【T_処理】
ID ボランティア日 処理日
1 2016/2/20 2016/2/20
2 2016/3/10
1 2016/2/25 2016/2/20

T_処理という作業テーブルを作成し、

入力フォームで、マクロボタンを押した際、当該フィールドのIDと日付を
取得して、

ID=入力フォームのカレントレコードのID
Year(T_ボランティア日.日付) = Year(入力フォームのカレントレコードのボランティア日)
Month(T_ボランティア日.日付) = Month(入力フォームのカレントレコードのボランティア日)

を条件にして、T_ボランティア日から、T_処理へ追加クエリを施し、

T_ボランティア日とT_処理の不一致クエリを再クエリさせることにより
実現できました。

今回は自己解決できましたが、質問したことにより「誰かがアドバイスをくれる」
という安心感があることにより、思いつめずに考えることができました。

ありがとうございます!!

お礼日時:2016/02/05 15:36

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

関連するカテゴリからQ&Aを探す