2016/2013/2010/2007]本記事では、図1のような[T_日別売上]テーブルの[売上]フィールドの数値について、クエリで累計を求める方法を紹介します。後半では、レポートで累計を表示する方法も紹介します。クエリで累計を求める方法は、主キーフィールドのような、データが重複しないフィールドを基準に、レコードが並べられている場合に有効です。[売上]フィールドの数値の累計を求めたい。[ID]))手順解説...DSum関数を使用してクエリで累計を求めるクエリで累計を求めるには、DSum関数(構文1)を利用します。DSum関数は、指定したテーブルのフィールドの合計を求める関数です。条件)単に、DSum("売上","T_日別売上")とすると、[T_日別売上]テーブルの全レコードの[売上]フィールドが合計されます。累計を計算するためには、第3引数[条件]に「先頭のレコードから現在のレコードまで」という条件を指定しなければなりません。レコードが主キーフィールドである[ID]フィールド(数値型)の昇順に並べられているものとして、各レコードの計算の条件を整理してみましょう。各レコードの関数式は下表のようになります。←DSum("売上","T_日別売上","ID<=5")実際にクエリを作るときには、上表の関数式を1つの共通の式にまとめる必要があります。「1」「2」「3」「4」「5」の部分は各レコードの[ID]フィールドの値なので、「[ID]」と表現できます。DSum("売上","T_日別売上","ID<=[ID]")と書くのはNG。ダブルクォーテーション「"」と「"」の中に「[ID]」を入れてしまうと、「[ID]」が文字列と認識されてしまいます。「[ID]」をフィールドとして正しく機能させるには、「"ID<="」という文字列とフィールド「[ID]」を「&」演算子で連結します。[ID])この式をクエリの[フィールド]欄に入力して(図2)、実行すると累計が表示されます(図3)。クエリの[フィールド]欄にDSum関数を入力する。図3のクエリを見ると、累計が左揃えで表示されており、DSum関数の戻り値が文字列として扱われていることがわかります。変換関数を使用して、適切なデータ型に変換しましょう。ここでは通貨データとして表示したいので、CCur関数を使用して(構文2)、式1のようにDSum関数の戻り値を通貨型に変換します(図4)。[累計]フィールドに式1を設定すると、累計値が通貨の表示になる。メモ日付順や文字列順の累計を求めるにはここでは数値型の[ID]フィールドの昇順に並べ替えたレコードの累計を求めましたが、日付/時刻型やテキスト型のフィールドを基準に並べ替えた場合は、条件のデータをそれぞれ「#」「'」で囲む必要があります。いずれのデータ型の場合も、並べ替えの基準のフィールドに同じデータが複数存在する場合、正しい累計を求められないので注意してください。"'"ヒント...[集計実行]プロパティを使用してレポートで累計を求めるレポートでは、テキストボックスの[集計実行]プロパティを使用することで簡単に累計を求めることができます。[集計実行]プロパティとは、テキストボックスに累計を表示するかどうかを指定するための設定項目です。既定値は[しない]で、その場合、フィールドの値がそのままテキストボックスに表示されます。[集計実行]プロパティの値を[全体]に変更すると、全レコードを通した累計がテキストボックスに表示されます。[集計実行]プロパティは、レポートのテキストボックス特有のプロパティで、フォームのテキストボックスにはありません。ここでは、オートレポートで作成した表形式レイアウトのレポートを例に、累計を表示する方法を紹介します。レポートを作成するところから手順を解説しますが、既存のレポートに手動でテキストボックスを配置して累計を表示したい場合は、図5~図7を飛ばしてください。[T_日別売上]テーブルをもとにオートレポート機能でレポートを作成します(図5)。図5(1)[T_日別売上]テーブルを選択(2)[作成]タブをクリック(3)[レポート]をクリックオートレポート機能でレポートを作成すると、「表形式レイアウト」と呼ばれるレポートが作成され、そのレイアウトビューが表示されます。ここに、累計の対象になるフィールドを追加してください(図6)。「表形式レイアウト」では、フィールドを追加すると自動で整列するので、簡単にレイアウトできます。2007の場合は、[書式設定]タブをクリック[売上]列が2つ並ぶので、新しく追加した方の列見出しを「売上」から「累計」に修正します(図7)。図7(1)テキストボックスが追加され、[売上]フィールドのデータが表示された(2)ラベルの文字上をクリックするとカーソルが表示されるので、「売上」を「累計」に変更して[Enter]キーを押す以上で準備が整いました。ここからが、累計設定の本番です。ポイントは、テキストボックスの[コントロールソース]プロパティで累計対象のデータを選び、[集計実行]プロパティで[全体]を選ぶことです。図5~図7のように操作した場合は、[コントロールソース]プロパティには累計対象のフィールドが設定されているはずなので、[集計実行]プロパティのみを設定しましょう(図8)。自分で手動で新しいテキストボックスを配置した場合は、[コントロールソース]プロパティと[集計実行]プロパティの両方を設定してください。手動でテキストボックスを配置した場合は、[コントロールソース]で集計対象のフィールドを設定するメモ[集計実行]プロパティ[集計実行]プロパティは、レポートに配置したテキストボックス特有の設定項目です。設定値は[しない][グループ全体][全体]の3つです。Accessには四捨五入を行うための関数がないので、数値を四捨五入するにはちょっとした工夫が必要です。本記事では、図1のような[T_成績]テーブルで、[得点]フィールドの大きい順に順位を振る方法を紹介します。あきこパソコン系の書籍や雑誌記事を執筆しているフリーのテクニカルライターです。