Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7全般 : Access 2010)
連続する複数月のうちの特定の月の読者データを抽出する方法
投稿日時: 17/02/17 21:50:30
投稿者: tomachan

タイトルの意味が分かりにくいかもしれませんし、
以下の本文も舌足らずの面があるかも知れませんが、よろしくお願い致します。
 
データベースとしては、日刊新聞の購読者を管理するシステムと思っていただけたらと存じます。
 
悩んでいることなのですが、
月間の購読者データを抽出する際に、例えば購読期間が
Aさん 2017/1/1〜2017/4/30
Bさん 2017/2/1〜無期限
Cさん 2017/3/1〜2017/12/31
Dさん 2017/4/1〜2018/3/31
とします。
読者数は実際は50人以上います。
テーブルでは[購読開始年月日][購読終了年月日]という二つのフィールドだけで購読期間を設定しています。
 
ここで、
[購読開始年月日][購読終了年月日]のどちらにも含まれない間の月、例えば、2017年3月の配達先リストを抽出する場合、
 
AさんBさんの場合は、[購読開始年月日][購読終了年月日]共にテーブルには持っていません。
Cさんの場合は、[購読開始年月日]はテーブルで持っていますが[購読終了年月日]は持っていません。
Dさんの場合は、[購読開始年月日]は対象外ですが[購読終了年月日]は持っていません。
 
どのようにテーブルに日付のフィールドを持たせたら管理できるのか、
あるいは、VBAまたはクエリで、どのような記述をしたらよいのか。
考え方のヒントをいただけたらと存じます。
 
説明が分かりにくいようでしたら補足しますので。
 

回答
投稿日時: 17/02/17 22:13:37
投稿者: sk

引用:
データベースとしては、日刊新聞の購読者を管理するシステムと
思っていただけたらと存じます。

新たなデータベースを構築するに当たって
各種テーブルの設計を行なおうとしている過程での問題なのか、
それとも既にテーブル設計がある程度完了している状況での問題なのか、
どちらなのでしょうか。
 
引用:
悩んでいることなのですが、
月間の購読者データを抽出する際に、例えば購読期間が
Aさん 2017/1/1〜2017/4/30
Bさん 2017/2/1〜無期限
Cさん 2017/3/1〜2017/12/31
Dさん 2017/4/1〜2018/3/31
とします。
読者数は実際は50人以上います。
テーブルでは[購読開始年月日][購読終了年月日]という
二つのフィールドだけで購読期間を設定しています。

「契約期間(契約上、購読を予定している期間)」と
「購読期間(中途解約も含めて、実際に購読された期間)」との
区別はどのようにしてつけている(つけるつもりでいる)のでしょうか。
 
また、購読契約の自動継続処理はどのような形で
行なわれるつもりなのでしょうか。
 
引用:
ここで、
[購読開始年月日][購読終了年月日]のどちらにも含まれない間の月、
例えば、2017年3月の配達先リストを抽出する場合、
  
AさんBさんの場合は、[購読開始年月日][購読終了年月日]共にテーブルには持っていません。
Cさんの場合は、[購読開始年月日]はテーブルで持っていますが[購読終了年月日]は持っていません。
Dさんの場合は、[購読開始年月日]は対象外ですが[購読終了年月日]は持っていません。

= 演算子以外の比較演算子を用いないかのような前提で
ご質問されているように見受けられます。

投稿日時: 17/02/20 21:59:58
投稿者: tomachan

sk様
 
アドバイスいただき有難うございます。
 
所定のフォームにテキストボックスをふたつ作りまして
そこに出力したい月の初日と最終日を持たせ
VBAにて日付の比較をすることで、希望する月だけのリストを出力できるようになりました。
 
システムはまだ作りかけで今のところオブジェクト数は20個程度と規模も小さいものです。
契約期間と購読期間の区別、自動継続処理のことはまったく考えていなかったですがこれから考えていきます。