ID | データ種類 | データの数 | ランク
という集計クエリを作成しています。

ID、データ種類、ランクはグループ化してあり、
さらにデータ種類はフォームで選んだもので抽出するように抽出条件が設定してあります。
データの数は、「Iif([データ種類]="","",1)」という条件で計算してあり、
集計は「演算」になっています。

クエリの結果は

ID  |データ種類|データ数 |ランク
110 | お中元 |  4  | A
110 | お中元 |  3  | B
120 | お中元 |  8  | A
120 | お中元 |  6  | B

というようなカンジになっています。

このクエリを元にレポートを作成したいのです。
レポートの状態としては

 ID  | Aランク | Bランク | Cランク・・・
 110 |   4   |   3   |  8
 120 |    8  |   6   |  1
 130 |   10  |   11  |  7

というように表示したいのです。

以前はランクごとにクエリを作成して、レポートに組み込んでいたのですが、
もっとすっきりさせたいと思い、作成しなおしています。

andとiifを使って条件を指定してできるかな、と思ったりしたのですが、
いいアイディアが浮かばない状態です。

どのようにしたらうまくいくでしょうか?
やはりランクごとにクエリを作成しないとダメでしょうか?

わかりづらい文章ですけど、宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

再登場


 ((@_@)本当だこちらでも再現した)
>もし、さらによい案がありましたら、お知らせください。
 代替案
  データの種類選択TBLを作成し
  年度別合計一覧フォームフォームでそのTBLにデータの種類をセットして
  テーブル結合で対象を選択し
  クロス集計

あまり参考にならなくてすみませんでした。 m(__)m
    • good
    • 0
この回答へのお礼

やはりこのやり方しかないようですね。。。

>あまり参考にならなくてすみませんでした。 m(__)m

いえいえ、クロス集計を教えていただいて、かつ長い間おつきあいいただきましてありがとうございました!!

お礼日時:2002/04/10 15:36

再登場(チャットみたいです(笑))


 先に誤っておきます。ゴメンナサイ。私の書き方が悪かったようです。
 書きなおします。
1.フォームの入力
2.通常の選択クエリ
 ・クエリーの抽出条件に[Form]・・・を書く
3.クロス集計クエリ
 ・インは通常の選択クエリ(2.を指定)

とすればファイルに書かなくてもOKです
2でいきなりクロス集計はきついと思います。

参考になれば幸いです
    • good
    • 0
この回答へのお礼

すばやい登場ありがとうございます。

上記のことをやると、2から3にかけてのクロス集計クエリ作成のところで
以前に書いたエラーが出てしまうんです。

お礼日時:2002/04/10 14:41

再登場(はやいっすね!そんだけあせっている?)



どこでエラーになっているか切り分けましょう。

1.年度別合計一覧フォームフォームを開いてデータ種類を選択します
2.クエリーをデータベースから開きます
3.開けたら次、次のクエリーを開きます

気になった所
>'[Form]![年度別合計一覧フォーム]![データ種類]'
 『’』て入っているの?
>データの種類を選択したあと・・・
 コンボボックスか何か

EX
 1.フォームのレコードソースは無いのですね
 2.クエリーの抽出条件に[Form]・・・を書いているのですね

頑張って下さい。
また私がNo.1で回答した内容を止めるとどうなるかも合わせて
補足して下さい
    • good
    • 0
この回答へのお礼

再再登場ありがとうございます。

>2.クエリーをデータベースから開きます

というのはコマンドボタンなどからではなく、ダブルクリックでクエリを開くということですよね?
これをやると#2でかいたエラーが出てしまうのです。

>気になった所
>>'[Form]![年度別合計一覧フォーム]![データ種類]'
> 『’』て入っているの?

実際の抽出条件の中には入っていませんが、エラーメッセージには入っています。

>データの種類を選択したあと・・・
 コンボボックスか何か

はい、コンボボックスです。

> 1.フォームのレコードソースは無いのですね

はい、ありません。
デザインビューで作成してあります。

> 2.クエリーの抽出条件に[Form]・・・を書いているのですね

そうです。これで抽出するようにして有ります。

>また私がNo.1で回答した内容を止めるとどうなるかも合わせて

というと、クロス集計クエリをやめて、通常の選択クエリで、ということでしょうか?
これですと、ただ単に全件というか、グループになった状態で、出てきます。
(質問のときに書いたようなカンジです。)

#2のお礼のところに新たな考えをかいてみたのですが、どう思われますか?
結構面倒なことやってるんですけどね。。。

お礼日時:2002/04/10 14:20

再登場


>データの種類を選んでいるので、エラーが出てしまうんです。
 ?????
質問
 どんなエラーですか
 どんな順番ですか
 (~フォームで入力、~クエリー、・・・・・)
 どこでエラーになっていますか?
 
とりあえずここまで補足して下さい
頑張って下さい

この回答への補足

再登場ありがとうございます。

> どんなエラーですか
--------------------
'[Form]![年度別合計一覧フォーム]![データ種類]'を有効なフィールド名、または式として認識できません。
--------------------
と出ます。

>どんな順番ですか
>どこでエラーになっていますか?

年度別合計一覧フォームで、データの種類を選択したあと、クエリを実行しようとしていますが、このクエリを開こうとした時に上にかいたエラーが出てしまいます。


宜しくおねがいします。

補足日時:2002/04/10 13:01
    • good
    • 0
この回答へのお礼

一旦、フォームで選んだもので選択クエリを作成し、それでテーブルを作成して、そこからクロス集計クエリを作って。。。というようにやることにしました。
なんかイマイチすっきりしないけど。。。

もし、さらによい案がありましたら、お知らせください。

ご協力ありがとうございました。

お礼日時:2002/04/10 13:47

出来たっと!遅くなりました。


1.クエリーで新規作成
2.クロス集計クエリーウィザード
3.集計クエリーを選択→次へ
4.IDを選択→次へ
5.ランクを選択→次へ
6.データ数→合計→次へ
7.集計値を削除

ほら出来た。パチパチパチ
参考になれば幸いです
    • good
    • 0
この回答へのお礼

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

これである程度まで完成に近づいたのですが、
フォームで入力したものからデータの種類を選んでいるので、エラーが出てしまうんです。
これを回避する方法なんていうのはないのでしょうか?

宜しくお願いします。

お礼日時:2002/04/10 12:06

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

このQ&Aと関連する良く見られている質問

Qクエリの一つのフィールドのIIF関数の限界は14個ですか?

アクセス2003のクエリで
たくさんの条件があり
IIf(テーブル名!フィールド名,"正",IIf(・・・
と言う風に、IIF関数を14個までなら正常に動くのですが
15目になると「式が複雑すぎます」となってしまいます。
IIF関数の限界は14個なのでしょうか?

Aベストアンサー

はい。Choose28だったかな?
IIf Switch
は14だったと思います。

Qaccess クエリでIIF文で抽出条件なし

フォームにコンボボックスを用意し、(コンボボックスは、「両方」、「条件A」、「条件B」の3項目です)

クエリで抽出条件にIIF文を使い、

IIf([Forms]![フォーム]![コンボボックス]="両方",'',[Forms]![フォーム]![コンボボックス])

”両方”を選択した場合は、「抽出条件なし」としたいのですが、できませんでした。
別案として、

IIf([Forms]![フォーム]![コンボボックス]="両方","条件A" or "条件B",[Forms]![フォーム]![コンボボックス])

なども試しましたができませんでした。

どうか解決方法をご教授願います。

Aベストアンサー

=Forms]![フォーム]![コンボボックス] or Forms]![フォーム]![コンボボックス]="両方"

Qクエリで日付型のIIF関数の使用

テーブル1にフィールド名→日付、データ型→日付/時刻型(主キーなし)
を作成し、
クエリ1を作成し、フィールド1にテーブル1の日付フィールドをドラッグし、
フィールド2には「有無: IIf([日付]="","未",[日付])」
を入力しました。
「日付フィールドが空白なら有無フィールドは「未」、入力されているならその日付を表示する」
としたいです。

しかし画像のように
日付フィールドが空白→有無フィールドも空白
日付フィールドに日付が入っているなら→有無フィールドは#エラー
になってしまいます。

何がだめなんでしょうか?
よろしくお願い致します。

Aベストアンサー

>何がだめなんでしょうか?
日付/時刻型のデータは文字列型ではないので""と比較する事は出来ません。

なので、データが入っているレコードでは「型が違うから比較出来ない」のでエラーになり「#error」が表示されます。

そして、データが入っていないレコードでは、型の違いによるエラーにはなりませんが「NULL値と""は等しくない」と判断され「日付、つまり、NULL」が表示されます。

「長さ0の文字列」と「NULL値」は「異なる値」だと言う事を忘れてはいけません。

つまり
>日付フィールドが空白→有無フィールドも空白
>日付フィールドに日付が入っているなら→有無フィールドは#エラー
になる訳です。

これは「意図した動作ではないが、仕様通りの動作」なので
有無: IIf([日付]="","未",[日付])
と言う式を書いた場合には、上記の動作は正常な動作です。

質問者さんが意図した通りに動作させるにはIsNull関数を用い
有無: IIf(IsNull([日付]),"未",[日付])
として下さい。

QAccess クエリを元にクエリを作るとデータがうまく表示されません

いつもお世話になっています。
下のようなデータがあったとします。
施設データは「施設マスタ」として別テーブルがあり、リレーションでつながっています。「利用者マスタ」も同様です。

日付 |  施設名 | 利用者
________________
4/1|  会議室 | 東京商事
________________
4/1|  和室  | 大阪電機
________________
4/1|  ホール | 名古屋運輸
________________
4/2|  和室  | 東北旅行
________________
4/2|  ホール | 東北旅行

クエリで日ごとの各施設の使用者を下の表のように把握したいのです。

日付 | ホール  | 和室  | 会議室
______________________
4/1| 名古屋運輸|大阪電機 | 東京商事
_______________________
4/2|東北旅行  |     | 東北旅行

      ↑

↑の部分は「利用者マスタ」の「利用者」フィールドをはめ込みました。そこの抽出条件に「施設」="ホール"というような書き方すればいいのかと思いましたが、うまくいきません。
どのように記述すればよいか教えてください。
また、根本的に考え方が違う場合にはご指摘ください
よろしくお願いします。

      

いつもお世話になっています。
下のようなデータがあったとします。
施設データは「施設マスタ」として別テーブルがあり、リレーションでつながっています。「利用者マスタ」も同様です。

日付 |  施設名 | 利用者
________________
4/1|  会議室 | 東京商事
________________
4/1|  和室  | 大阪電機
________________
4/1|  ホール | 名古屋運輸
________________
4/2|  和室  | 東...続きを読む

Aベストアンサー

クロス集計クエリを使ってください。
ウィザードで出来ます。
ウィザードを使わないでSQLでは日付・施設名・利用者のあるテーブルもしくはクエリを[施設利用状況]とした場合

TRANSFORM First([施設利用状況].利用者) AS 利用者の先頭
SELECT [施設利用状況].日付
FROM 施設利用状況
GROUP BY [施設利用状況].日付
PIVOT [施設利用状況].施設名;

こんな感じで来ます。

QAccessのデータベースでクエリでデータにシングルクォーテーションを持つと絶対にだめですか?

Accessのデータベースでクエリでデータにシングルクォーテーションを持つと絶対にだめですか?

最近これで必ず落ちるソフトに出くわしました。

エラーメッセージ
3075 クエリー式 <式> の <メッセージ>

Aベストアンサー

シングルクォーテーションを2個にすると登録できると思いますよ。

たとえば ABC's と登録したければ ABC''s と
入力します。


このカテゴリの人気Q&Aランキング

おすすめ情報