Microsoft Access Club >VBAのTips解説 >このページ >次頁 < 前項  サイト内検索
 

DAOとSQLを用いてグループごとに集計を行う方法 : VBAのTips解説



GROUP BY句

GROUP BY句とは、指定したフィールド内の同じデータを1つのグループとして、そのグループごとに集計を行うSQL構文です。複数のフィールドを指定した場合、組み合わせの数だけグループ化されます。注意点としては、GROUP BY句で指定したフィールドは、必ずSELECT句にも指定します。

  • 書式

〜 GROUP BY fieldname

  • 引数
引数 意味 指定
fieldname フィールド名を指定します

省略不可

関連項目

  1. CurrentDb(DAO)
  2. Deleteメソッド(DAO)

事例 ) 「売上げリスト」テーブルを元に請求額で集計クエリーを作成する

「売上げリスト」テーブルを元に請求額で集計クエリーを作成します。

  1. 非連結フォームを作成します。
  2. 実行するコマンドボタンを作成します。

コマンドボタンクリック時イベントプロシージャの作成

コマンドボタンクリック時イベントプロシージャを以下のように作成します。

Private Sub 実行_Click()

On Error GoTo エラー

   Dim db As DAO.Database
   Dim qdf As DAO.QueryDef
   Dim mySQL As String
   Dim strName As String

   Set db = CurrentDb
   strName = "Q_売り上げ額分類"
   'FIX関数を用いて関数の戻り値を代入し、万単位に分類しています。
   mySQL = "SELECT Fix([請求額]/1000000)*100+100 & '万以上' AS [売上額の分類], "
   mySQL = mySQL & "Count(取引先名) As 該当社数 " '--- A
   mySQL = mySQL & "FROM 売上げリスト "
   mySQL = mySQL & "GROUP BY Fix([請求額]/1000000)*100;"

   Set qdf = db.CreateQueryDef(strName, mySQL)
   DoCmd.OpenQuery qdf.Name '--- B

   db.Close: Set db = Nothing

   Exit Sub

エラー:

   If Err.Number = 3012 Then
      db.QueryDefs.Delete strName
      Resume
   Else
      MsgBox Err.Number & " : " & Err.Description
   End If

End Sub
解説
  1. Count関数を用いて、取引先名をカウントしています。
  2. OpenQueryメソッドを用いて、クエリーを実行します。

動作確認

  1. フォームをビューモードで開きます。
  2. [実行] ボタンをクリックします。

  1. 集計クエリーが作成され開きます。

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

 


DAOとSQLを用いてグループごとに集計を行う方法 : VBAのTips解説


 

-Microsoft Access Club-

アメリカ合衆国の大手データセンターのアダルト対応可能なリーズナブル価格設定の専用・共有レンタルサーバーをご提供しています。
アメリカ合衆国の大手データセンターにサーバー機器を設置。
アダルト対応可能な専用・共有レンタルサーバーを提供。