Access (VBA)

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

 
(Windows 10 Pro : Access 2010)
複数条件に合う列をレポートに表示
投稿日時: 18/12/18 19:59:30
投稿者: さー

いつもお世話になっております。
 
データベース(テーブル)から、複数条件(日付列:2018年11月中
かつ 甘い/すっぱい列:甘い)
に合う列を抽出して、くだもの
列の文字
をレポート上のテキストボックスに表示をさせたいです。
レポートのテキストボックスに入力する式を教えてください。
 
テーブル
No. 日付     くだもの  甘い/すっぱい
1  2018/10/1   りんご    甘い
2  2018/10/15   みかん    すっぱい
3  2018/11/1   ばなな    甘い
4   2018/11/12   りんご    甘い
5   2018/11/30   みかん    すっぱい 
 
 
 
抽出条件
日付     :2018年11月中
※別フォームで選択した1ヵ月間にしたいので、正確には下記の式を入力したいです。
              Between
              DateSerial(Year([Forms]![集計範囲]![年月]),Month([Forms]![集計範囲]![年月]),1)
              And
              DateSerial(Year([Forms]![集計範囲]![年月]),Month([Forms]![集計範囲]![年月])+1,0)
 
甘い/すっぱい:甘い

 
 
レポート(表示させたいもの)
ばなな
りんご

 
 
 
お手数をおかけいたしますが、よろしくお願い致します。

回答
投稿日時: 18/12/18 20:32:55
投稿者: hatena
投稿者のウェブサイトに移動

まず、下記の点を明らかにしてください。
[Forms]![集計範囲]![年月]には、どのような値が入力されてますか。
また、そのテキストボックスの「書式」プロパティの設定はどうなってますか。
 
次に、
レポートはどこまで作成できていますか。
それともこれから作成するのですか。
 
レポートには、
 
ばなな
りんご
 
というように果物名だけ表示したいのですか。
 
それとも、現在あるレポートのどこかに果物のリストを表示したいのですか。
 

投稿日時: 18/12/19 19:32:15
投稿者: さー

hatena様
 
お世話になります。ご連絡いただきましてありがとうございます。
必要な内容が不足しておりまして、申し訳ございません。
下記の通りです。
 

引用:
まず、下記の点を明らかにしてください。
[Forms]![集計範囲]![年月]には、どのような値が入力されてますか。

フォームにコンボボックスを用意し、そこでテーブルの日付列を1か月
毎に表示するようにしています。具体的には下記の通りです。
--------------------------------------------
SELECT Format([日時],"yyyy\年mm\月") AS 月
FROM データベース
GROUP BY Format([日時],"yyyy\年mm\月")
ORDER BY Format([日時],"yyyy\年mm\月") DESC;
--------------------------------------------
このコンボボックスで選んだ1か月間かつ甘い/すっぱい列が甘いものを
条件として設定したいです。
 
 
引用:
レポートはどこまで作成できていますか。
それともこれから作成するのですか。

レポートは大半ができており、レポートの下の方にある特定の場所
(具体的にはテキストボックス内)に
ばなな
りんご
を表示させたいです。
 
お手数をおかけいたしますが、よろしくお願いいたします。
 

回答
投稿日時: 18/12/19 21:21:51
投稿者: hatena
投稿者のウェブサイトに移動

さー さんの引用:

フォームにコンボボックスを用意し、そこでテーブルの日付列を1か月
毎に表示するようにしています。具体的には下記の通りです。
--------------------------------------------
SELECT Format([日時],"yyyy\年mm\月") AS 月
FROM データベース
GROUP BY Format([日時],"yyyy\年mm\月")
ORDER BY Format([日時],"yyyy\年mm\月") DESC;
--------------------------------------------

 
コンボボックスには yyyy年mm月 という書式で表示されているのですね。
 
 
さー さんの引用:
レポートは大半ができており、レポートの下の方にある特定の場所
(具体的にはテキストボックス内)に
ばなな
りんご
を表示させたいです。

 
レポートの下の方にある特定の場所とはデザインビューでは、ページフッターとかレポートフッターですか。
 
また、レポートのレコードソースのテーブルと、このくだもののテーブルとは関連性はないということですか。
 
テキストボックスに複数レコードを表示するの難易度が高いので、
リストボックスに表示するというのではだめですか。
リストボックスならプロパティ設定だけで可能です。
 
値集合ソース を下記のように設定すればOKです。
 
SELECT くだもの FROM テーブル
WHERE
 [甘い/すっぱい]="あまい"
 AND 日付 >= CDate([Forms]![集計範囲]![年月])
 AND 日付 < DateADD("m",1,[Forms]![集計範囲]![年月])

投稿日時: 18/12/20 21:46:05
投稿者: さー

hatena様
 
お世話になります。回答ありがとうございました。
無事にできました!
 

引用:
テキストボックスに複数レコードを表示するの難易度が高いので、
リストボックスに表示するというのではだめですか。

リストボックスとは全く思いつきませんでした。やってみましたが、
枠を縦長にすれば、2行目以降も表示できるので、かなり使いやすいです。
 
あと今更ですが、
引用:
レポートの下の方にある特定の場所とはデザインビューでは、ページ
フッターとかレポートフッターですか。

ページフッターに作成しました。
 
大変助かりました。ありがとうございます。
また何かわからないことがあった際は、こちらの掲示板にてご相談させて
いただこうと思いますので、よろしくお願いいたします。