Microsoft Access Club Access超初心者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトル列内の複数の行をまとめて検索条件にしたい
記事No83031
投稿日: 2016/11/11(Fri) 15:57
投稿者しばねん
解決済: ON
OS:windows7
Access Version:2013

始めて質問させていただきます。
過去ログからは探しきれませんでしたので類似があれば誘導や
検索ワードを教えてください。

CSVをインポートすれば自動的にレポートが完成するクエリを作成しているのですが、CSVデータの一部に

氏名  項目  数
Aさん  1    10
Aさん  2    5
Aさん  3    0
Bさん  1    6(あとは同じものがつづきます)

といったものがあります。

これを「Aさんの項目毎の数が全て10なら〇を表示」させたいのですが可能でしょうか。
今まではexcelでif(and(項目1=10,項目2=10,項目3=10),"〇","")と入力してきました。

個人だけで弄るならCSVファイルを変更するのですが、
手間な上に他の人もさわる可能性があるのでインポートだけで完成が理想です。

よろしくお願いします。

タイトルRe: 列内の複数の行をまとめて検索条件にしたい
記事No83032
投稿日: 2016/11/12(Sat) 12:02
投稿者hatena
解決済: ON
「Aさんの項目毎の数が全て10なら〇を表示」

氏名  項目  数 
Aさん  1    10 ○
Aさん  2    10 ○
Aさん  3    10 ○
Bさん  1    6

というような結果をお望みなのでしょうか。

項目 は 1, 2, 3  の3種類だけですか。 
同じ氏名で 1, 2, 3 が重複する場合はありますか。 

氏名  項目  数 
Aさん  1    10
Aさん  2    10
Bさん  1    6

のときはどうなりますか。

氏名  項目  数 
Aさん  1    10
Aさん  2    10
Aさん  3    5
Bさん  1    6

のときはどうなりますか。

タイトルRe^2: 列内の複数の行をまとめて検索条件にしたい
記事No83033
投稿日: 2016/11/14(Mon) 10:52
投稿者しばねん
解決済: ON
> 「Aさんの項目毎の数が全て10なら〇を表示」
>
> 氏名  項目  数 
> Aさん  1    10 ○
> Aさん  2    10 ○
> Aさん  3    10 ○
> Bさん  1    6
>
> というような結果をお望みなのでしょうか。

はい。そのように表示されることが理想です。

>
> 項目 は 1, 2, 3 の3種類だけですか。

説明不足でした。追加します。
項目は1.2.3の場合と1.2の場合があります。
1.2.3と1.2は同じ名称ですが別フィールド"タイトル"を使い区別されています。
タイトル1の場合は1,2,3、タイトル2の場合は1,2という決まりがあります。

氏名  項目  数 タイトル
Aさん  1    10 タイトル1 〇
Aさん  2    10 タイトル1 〇
Aさん  3    10 タイトル1 〇
Bさん  1    3  タイトル2
Bさん  2    1  タイトル2

といった具合です。

> 同じ氏名で 1, 2, 3 が重複する場合はありますか。

同じ氏名での重複はありません。


>
> 氏名  項目  数 
> Aさん  1    10
> Aさん  2    10
> Bさん  1    6
>
> のときはどうなりますか。

項目が3つの場合は必ず1.2.3は表示されるため、

氏名  項目  数 
Aさん  1    10
Aさん  2    10
Aさん  3
Bさん  1    6

のように数が空欄になります。この場合は〇は表示されず空欄にしたいです。

>
> 氏名  項目  数 
> Aさん  1    10
> Aさん  2    10
> Aさん  3    5
> Bさん  1    6
>
> のときはどうなりますか。

全てが10ではないので空欄を表示させたいです。

よろしくお願いします。

タイトルRe^3: 列内の複数の行をまとめて検索条件にしたい
記事No83034
投稿日: 2016/11/14(Mon) 15:35
投稿者hatena
解決済: ON
同じ氏名で 1, 2, 3 の重複はない。

タイトル1の場合は必ず 1, 2, 3 の3レコードは存在する。

○ はレポート上で表示できればよい。

ということなら、レポートの詳細セクションにテキストボックスを配置してコントロールソースを下記のように設定してください。


=IIf(DCount("項目","テーブル名","氏名='" & [氏名] & "' AND タイトル='タイトル1' AND 数=10")=3,"○","")

タイトルRe^4: 列内の複数の行をまとめて検索条件にしたい
記事No83035
投稿日: 2016/11/17(Thu) 16:29
投稿者しばねん
解決済: ON
> 同じ氏名で 1, 2, 3 の重複はない。
>
> タイトル1の場合は必ず 1, 2, 3 の3レコードは存在する。
>
> ○ はレポート上で表示できればよい。
>
> ということなら、レポートの詳細セクションにテキストボックスを配置してコントロールソースを下記のように設定してください。
>
>
> =IIf(DCount("項目","テーブル名","氏名='" & [氏名] & "' AND タイトル='タイトル1' AND 数=10")=3,"○","")

ありがとうございます。
表示することができました。


条件を追加したところ
問題が発生したので、もう少しだけお付き合い願います。


・タイトル毎にグループ化しています。

入れ子式
=IIf(DCount("項目","テーブル名","氏名='" & [氏名] & "' AND タイトル='*タイトル1*' AND 数=10")=3,"○",
IIf(DCount("項目","テーブル名","氏名='" & [氏名] & "' AND タイトル='*タイトル2*' AND 数=10")=2,"○",IIf((タイトル not like '*タイトル1*' or タイトル not like '*タイトル2*') AND 数=10,"〇","")))

をいれたのですが、DCOUNT関数が実行しなくなりました。

新たにこちらを解決したいです。


タイトル毎に○判定を出したいです。

特殊な判定をするものはタイトル1.2だけなので
それ以外のすべてのタイトルは一律で作用する式が好ましいです。


あらためて情報をまとめさせていただきます。

インポートするCSVファイル

氏名 項目 数 タイトル
Aさん  1  5 タイトル1 
Aさん  2  0 タイトル1
Aさん  3  10 タイトル1
Bさん  1  10 タイトル2
Bさん 2  10 タイトル2
Aさん 03  10 タイトル3
Bさん 03 10 タイトル3
Bさん 56 タイトル4
Bさん 56  10 タイトル4

レポートで表示させたい形

タイトル1
氏名  項目 数
Aさん  1  5 
Aさん  2  0
Aさん  3  10

タイトル2
氏名  項目 数
Bさん  1  10 〇
Bさん  2  10 〇

タイトル3
氏名  項目  数
Aさん 03   10 〇
Bさん 03 10 〇

タイトル4
氏名  項目 数
Aさん 56
Bさん 56  10 〇


無理ならレポートやデータベースを増やしますので
どうかよろしくお願いします。

(邪魔な下りは消しました)

タイトルRe^5: 列内の複数の行をまとめて検索条件にしたい
記事No83036
投稿日: 2016/11/17(Thu) 17:23
投稿者hatena
解決済: ON
> レポートで表示させたい形
>
> タイトル1
> 氏名  項目 数
> Aさん  1  5 
> Aさん  2  0
> Aさん  3  10
>
> タイトル2
> 氏名  項目 数
> Bさん  1  10 〇
> Bさん  2  10 〇
>
> タイトル3
> 氏名  項目 数
> Aさん 03  10 〇 ※
> Bさん 03 10 〇
>
> タイトル4
> 氏名  項目 数
> Aさん 56
> Bさん 56  10 〇

○を表示する条件がよく分からないです。

同じ氏名でタイトル1 の項目1,2,3 がすべて10なら○
同じ氏名でタイトル1 の項目1,2 がすべて10なら○
同じ氏名で項目に重複はない
ということですよね。

だとしたら、上記の例の※じるしのところに○がつくのはおかしいと思いますが。
記述ミスでしょうか。それとも、上記の条件以外になにかあるのでしょうか。

タイトルRe^6: 列内の複数の行をまとめて検索条件にしたい
記事No83037
投稿日: 2016/11/17(Thu) 18:05
投稿者しばねん
解決済: ON
> ○を表示する条件がよく分からないです。

> 同じ氏名でタイトル1 の項目1,2,3 がすべて10なら○
> 同じ氏名でタイトル1 の項目1,2 がすべて10なら○
> 同じ氏名で項目に重複はない
> ということですよね。

> だとしたら、上記の例の※じるしのところに○がつくのはおかしいと思いますが。
> 記述ミスでしょうか。それとも、上記の条件以外になにかあるのでしょうか。

すいません。
長くなりすぎてましたので、補足させていただきます。

疑問の部分ですがこちらのミスだと思われます。(検討違いのことでたらすみません)
項目03や項目56は数字と関係のないランダムな名前が使用される可能性があります。
(項目γ、項目5号といったようにかなり幅がある名前です)

項目が別物ですので○が表示されるのは正しいです。

レスポンス早めを心がけますので更に何かあればよろしくお願いします。

タイトルRe^7: 列内の複数の行をまとめて検索条件にしたい
記事No83038
投稿日: 2016/11/17(Thu) 18:46
投稿者hatena
解決済: ON
> 項目が別物ですので○が表示されるのは正しいです。

条件は、

同じ氏名でタイトル1 の項目1,2,3 がすべて10なら○
同じ氏名でタイトル2 の項目1,2 がすべて10なら○
同じ氏名で項目に重複はない

だけではないとういことですね。

この条件を紛れのない、論理的な言葉で説明できませんか。
それができなければ、コンピューターに命令できる式にはできません。

下記のような条件であってますか。

・レポートはタイトルでグループ化されていて、グループヘッダーが表示されている。

・同じタイトル内で、同じ氏名の数が全て 10 なら○をつける。

タイトルRe^8: 列内の複数の行をまとめて検索条件にしたい
記事No83039
投稿日: 2016/11/17(Thu) 22:40
投稿者しばねん
解決済: ON
> > 項目が別物ですので○が表示されるのは正しいです。
>
> 条件は、
>
> 同じ氏名でタイトル1 の項目1,2,3 がすべて10なら○
> 同じ氏名でタイトル2 の項目1,2 がすべて10なら○
> 同じ氏名で項目に重複はない
>
> だけではないとういことですね。
>
> この条件を紛れのない、論理的な言葉で説明できませんか。
> それができなければ、コンピューターに命令できる式にはできません。
>
> 下記のような条件であってますか。
>
> ・レポートはタイトルでグループ化されていて、グループヘッダーが表示されている。
>
> ・同じタイトル内で、同じ氏名の数が全て 10 なら○をつける。

はい。その通りです。



追記:前前レスの邪魔になる部分を削除しました。度々わかりにくい説明ですいませんでした。

タイトルRe^9: 列内の複数の行をまとめて検索条件にしたい
記事No83043
投稿日: 2016/11/18(Fri) 14:07
投稿者hatena
解決済: ON
> > 下記のような条件であってますか。
> >
> > ・レポートはタイトルでグループ化されていて、グループヘッダーが表示されている。
> >
> > ・同じタイトル内で、同じ氏名の数が全て 10 なら○をつける。
>
> はい。その通りです。

レポートでタイトルでグループ化してグループヘッダーを表示ていますが、
その下に、氏名で並び替えをしていると思いますが、それのグループヘッダーを表示させます。
そこに下記のテキストボックスを配置します。

名前 件数
コントロールソース =Count(*)

名前 数10件数
コントロールソース =Sum(IIf([数]=10,1,0))

名前 txt○表示
コントロールソース IIf([件数]=[数10件数],"○","")

詳細セクションのテキストボックスのコントロールソースを

=[txt○表示]


上記のレポートをプレビューして、詳細セクションに希望通りに○が表示されるのを確認したら、
氏名のグループヘッダーの「可視」を「いいえ」に設定して非表示にすればいいでしょう。

タイトルRe^10: 列内の複数の行をまとめて検索条件にしたい
記事No83045
投稿日: 2016/11/19(Sat) 14:47
投稿者しばねん
解決済: ON
ありがとうございます。
無事適応させることができました。

色々とご迷惑をおかけしました。
しめさせていただきます。

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る