Microsoft Access で実行中の合計クエリを作成する方法
高度な機能: 高度なコーディング、相互運用性、マルチユーザー スキルが必要です。
この記事は、Microsoft Access データベース (.mdb) ファイルまたは Microsoft Access データベース (.accdb) ファイルに適用されます。
概要
この記事では、実行中の合計クエリを作成するために使用できる 2 つのメソッドを示します。 実行中の合計クエリは、各レコードの合計がそのレコードと以前のレコードの合計であるクエリです。 この種類のクエリは、レコードのグループ (または一定期間) にわたる累積合計をグラフまたはレポートに表示する場合に役立ちます。
メモ この記事で使用される手法のデモは、サンプル ファイル Qrysmp00.exe で確認できます。
詳細情報
方法 1
最初のメソッドでは、クエリで DSum 関数と条件を使用して、時間の経過に伴う実行合計を作成します。 DSum 関数は、現在のレコードと以前のレコードを合計します。 クエリが次のレコードに移動すると、DSum 関数が再度実行され、累積合計が更新されます。
次のサンプル クエリでは、サンプル データベース Northwind の Orders テーブルを使用して、1997 年の毎月の輸送コストの実行合計を作成します。 パフォーマンス上の理由から、サンプル データは 1 年に制限されています。 DSum 関数はクエリ内のすべてのレコードに対して 1 回実行されるため、クエリの処理が完了するまでに数秒 (コンピューターの速度によっては) かかる場合があります。 このクエリを作成して実行するには、次の手順に従います。
サンプル データベース Northwind を開きます。
新しい選択クエリを作成し、 Orders テーブルを 追加します。
[ 表示 ] メニューの [ 合計] をクリックします。
メモAccess 2007 で、[デザイン] タブの [表示/非表示] グループで [合計] をクリックします。
クエリ デザイン グリッドの最初の列で、[フィールド] ボックスに次の式を入力し、[合計]、[並べ替え]、および [表示] ボックスで次の選択を行います。
Field: AYear: DatePart("yyyy",[OrderDate]) Total: Group By Sort: Ascending Show: Yes
[フィールド] ボックスの式は、OrderDate フィールドの年部分を表示および並べ替えます。
クエリ デザイン グリッドの 2 番目の列で、[フィールド] ボックスに次の式を入力し、[合計]、[並べ替え]、および [表示] ボックスで次の選択を行います。
Field: AMonth: DatePart("m",[OrderDate]) Total: Group By Sort: Ascending Show: Yes
[フィールド] ボックスの式は、Order Date フィールドの月部分を並べ替え、1 ~ 12 の整数値として表示します。
クエリ デザイン グリッドの 3 番目の列で、[フィールド] ボックスに次の式を入力し、[合計] ボックスと [表示] ボックスで次の選択を行います。
メモ 次の例では、行の末尾にあるアンダースコア (_) が行継続文字として使用されています。 この例を再作成するときに、行の末尾からアンダースコアを削除します。
Field: RunTot: DSum("Freight","Orders","DatePart('m', _ [OrderDate])<=" & [AMonth] & " And DatePart('yyyy', _ [OrderDate])<=" & [AYear] & "") Total: Expression Show: Yes
[フィールド] ボックスの式では、DSum() 関数を使用して、AMonth フィールドと AYear フィールドの両方の値が、クエリが処理している現在のレコード以下である場合に、Freight フィールドを合計します。
クエリ デザイン グリッドの 4 番目の列で、[フィールド] ボックスに次の式を入力し、[合計]、[並べ替え]、および [表示] ボックスで次の選択を行います。
Field: FDate: Format([OrderDate],"mmm") Total: Group By Sort: Ascending Show: Yes
[フィールド] ボックスの式は、1 月、2 月、3 月などのテキスト形式で毎月表示されます。
クエリ デザイン グリッドの 5 番目の列で、[フィールド] ボックスに次の式を入力し、[合計]、[抽出条件]、および [表示] ボックスで次の選択を行います。
Field: DatePart("yyyy",[OrderDate]) Total: Where Criteria: 1997 Show: No
[フィールド] ボックスの式は、クエリのレコードセットをフィルター処理して、1997 年からのデータのみを含めます。
クエリを実行します。 [RunTot] フィールドには、実行中の合計を含む次のレコードが表示されることに注意してください。
AYear AMonth RunTot FDate -------------------------------------- 1997 1 2238.98 Jan 1997 2 3840.43 Feb 1997 3 5729.24 Mar 1997 4 8668.34 Apr 1997 5 12129.74 May 1997 6 13982.39 Jun 1997 7 17729.29 Jul 1997 8 22204.73 Aug 1997 9 26565.26 Sep 1997 10 32031.38 Oct 1997 11 36192.09 Nov 1997 12 42748.64 Dec
方法 2
2 番目のメソッドでは、DSum() 関数を含む合計クエリを使用して、グループに対する実行合計を作成します。
次のサンプル クエリでは、Orders テーブルを使用して従業員ごとの輸送コストを合計し、運送料の実行中の合計を計算します。 クエリを作成して実行するには、次の手順に従います。
サンプル データベース Northwind.mdbを開きます。
新しい選択クエリを作成し、Orders テーブルを追加します。
[Viewmenu] で、[合計] をクリックします。
メモAccess 2007 で、[デザイン] タブの [表示/非表示] グループで [合計] をクリックします。
クエリ デザイン グリッドの最初の列で、[フィールド] ボックスに次のフィールドを追加し、[合計] ボックスと [表示] ボックスで次の選択を行います。
Field: EmpAlias: EmployeeID Total: Group By Show: Yes
このフィールドは、EmployeeID によってデータをグループ化します。
クエリ デザイン グリッドの 2 番目の列で、[フィールド] ボックスに次のフィールドを追加し、[合計] ボックスと [表示] ボックスで次の選択を行います。
Field: Freight Total: Sum Show: Yes
このフィールドは、フレート データを合計します。
クエリ デザイン グリッドの 3 番目の列で、[フィールド] ボックスに次の式を入力し、[合計] ボックスと [表示] ボックスで次の選択を行います。
メモ 次の例では、行の末尾にあるアンダースコア (_) が行継続文字として使用されています。 この例を再作成するときに、行の末尾からアンダースコアを削除します。
Field: RunTot: Format(DSum("Freight","Orders","[EmployeeID]<=" _& [EmpAlias] & ""),"$0,000.00") Total: Expression Show: Yes
[フィールド] ボックスの式では、DSum() 関数を使用して、EmployeeID が現在の EmpAlias 以下の場合に Freight フィールドを合計し、フィールドの書式をドル単位で設定します。
クエリを実行します。 [RunTot] フィールドには、実行中の合計を含む次のレコードが表示されることに注意してください。
Employee SumOfFreight RunTot ------------------------------------------------- Davolio, Nancy $8,836.64 $8,836.64 Fuller, Andrew $8,696.41 $17,533.05 Leverling,Janet $10,884.74 $28,417.79 Peacock, Margaret $11,346.14 $39,763.93 Buchanan, Steven $3,918.71 $43,682.64 Suyama, Michael $3,780.47 $47,463.11 King, Robert $6,665.44 $54,128.55 Callahan, Laura $7,487.88 $61,616.43 Dodsworth, Anne $3,326.26 $64,942.69
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示