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

Access2007 でレポートを作成ましした。

グループ化して-値全体-昇順 として並び替えを行っているのですが
一つのレポートの中で、値によって 昇順にしたり 降順にしたりしたいのですが、
どのようにしたらよいでしようか。

Accessはあまり詳しくありませんが、ご教授お願いいたします。

A 回答 (5件)

>グループ化して-値全体-昇順 として並び替えを行っているのですが


>一つのレポートの中で、値によって 昇順にしたり 降順にしたりしたいのですが、

フィールドの内容と、どれが昇順でどれが降順か分からなければ答えようがありません。

まあ一例ですが

A____B____C
G 11 13
X 20 10
G 11 12
X 21 10
G 10 21
G 10 14

でA,Cが昇順でBが降順の場合

D:[A] & Format(100-[B],"00") & Format([C],"00")

A____B____C____D
G 11 13 G8913
X 20 10 X8010
G 11 12 G8912
X 21 10 X7910
G 10 21 G9021
G 10 14 G9014

のようにしてDを昇順で並べ替える。
    • good
    • 0

「値によって 昇順にしたり 降順にしたりしたい」というのが、いろいろ解釈できますので、


もう少し具体的な説明が必要ですね。

例えば、A, B, C とフィールドがあって、A, B は昇順, C は降順ということなら、
「グループ化、並べ替え、集計」で、

A 昇順
 B 昇順
  C 降順

と上から順に設定すればいいでしょう。
A, B, C を連結して一つにまとめて、それで並べ替えるという案もありますが、重くなるだけでしょう。

グループ化して、その値により、下記の並び順を変更したいという意味なら、
例えば、

A B
1 1
1 2
1 3
2 3
2 2
2 1

というように、A の値が1の時は昇順、それ以外は降順にしたいということなら、
「グループ化、並べ替え、集計」で、下記のように設定します。

A 昇順
 式 昇順

式 は、IIf([A]=1,[B],-[B]) と設定します。

上記のどれにも該当しない場合は、具体的なデータ例を元にどうしたいのか説明されるといいでしょう。
「Access2007 レポートでの並び替」の回答画像2

この回答への補足

hatena1989様ありがとうございます。
Access についてあまり知識が無いので具体的に質問できずにすいません。
私の意図は、2番目に教えていただいた「グループ化して、その値により、下記の並び順を変更したい」ということです。

教えていただいたように設定したいのですが、
グループ化- 並べ替えキー,記録,昇順,その他 のところには「式」という設定がないのですが、どうやって式を設定したら良いのか、お手数ですがもう一度教えていただけないでしょうか。

よろしくお願いします。

補足日時:2014/05/18 13:25
    • good
    • 0

> グループ化- 並べ替えキー,記録,昇順,その他 のところには「式」という設定がないのですが、どうやって式を設定したら良いのか、お手数ですがもう一度教えていただけないでしょうか。



並べ替えのフィールドを選択するリストの一番下に「式」がありますのでそこをクリックすると、式ビルダーが表示されるので、そこで入力してください。

画像参照。

式ビルダーが表示された状態は前回の回答の画像です。
「Access2007 レポートでの並び替」の回答画像3
    • good
    • 0

前回の回答は、Bフィールドのデータ型が数値型の場合です。



もし、テキスト型なら、「グループ化、並べ替え、集計」の設定は、

A 昇順
 式 昇順
  式 降順

上の式は、
IIf(A=1, [B],"")

下の式は、
IIf(A=1, "",[B])

となります。
「Access2007 レポートでの並び替」の回答画像4

この回答への補足

hatena1989 様

詳しい説明ありがとうございます。
「式」の入力まではできましたが、うまくいきません。

hatena1989様の例で言いますと、Aのフィールドは[数値型]でBのフィールドは[テキスト型]です。
Aのフィールドはグループ化して昇順で並べ替えをしています。
Aの数値によりBのフィールドを昇順と降順に並べ替えをしたいと思っています。

具体的には
 Aの数値は1から13まであります。
 Aが 1から8までの時は 昇順
    9以上は 降順

 となるようにしたいと思っています。

現在は
 グループ化 A 昇順
  並べ替えキー 式 IIf([A]<9,[B],"")
  並べ替えキー 式  IIf([A]>8,[B],"")

と設定しましたが、CRDER BY 句((IIf([A]<9,[B],""))がGROUP BY 句と矛盾しています。
とメッセージが出てしまいます。

解決のためには、どのようにしたら良いか教えていただけないでしょうか。

補足日時:2014/05/18 18:25
    • good
    • 0

> 現在は


>  グループ化 A 昇順
>   並べ替えキー 式 IIf([A]<9,[B],"")
>   並べ替えキー 式  IIf([A]>8,[B],"")
>
> と設定しましたが、CRDER BY 句((IIf([A]<9,[B],""))がGROUP BY 句と矛盾しています。
> とメッセージが出てしまいます。

確認してみました。確かに同じエラーが出ますね。

IIf([A]<9,[B],"") のグループを「ヘッダーセクション付き」に設定して、そのグループヘッダーの高さを 0 にしたらエラー無しがいけました。
「Access2007 レポートでの並び替」の回答画像5
    • good
    • 0
この回答へのお礼

ありがとうございます。
教えていただいたとおりにしたところ、できました。
本当にありがとうございました。

でもなぜ、ヘッダーセクションが関係あるのか理解できないのですが・・・。
また勉強していきます。

お礼日時:2014/05/19 20:10

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