即効テクニック |
●概要● GROUP BY句を使用して指定したフィールドでグループ化し、重複したレコードを排除します。 サンプルでは「部署コード」でグループ化し、「社員テーブル」から一意な「部署コード」を選択します。●サンプル●
'重複したレコードを除く(GROUP BY) Public Sub Sample() Dim myDB As Database Dim myRS As DAO.Recordset Dim mySQL As String 'SQLステートメントを定義する mySQL = "SELECT 部署コード FROM 社員テーブル GROUP BY 部署コード ;" 'カレントデータベースを変数に代入する Set myDB = CurrentDb 'SQLステートメントを実行してレコードセットを開く Set myRS = myDB.OpenRecordset(mySQL, dbOpenDynaset) 'レコードセットの内容を表示する Do Until myRS.EOF Debug.Print myRS!部署コード myRS.MoveNext Loop 'レコードセットを閉じる myRS.Close End Sub
●補足● 結果は[イミディエイト]ウィンドウに表示されます。 GROUP BY句を使用しているときにSELECT句で指定できるのは、グループ化したフィールドとグループ関数のみです。GRUOP BY句でグループ化していないフィールドをSELECT句で指定するとエラーとなります。 (例)次のSELECTステートメントはエラーとなります。SELECT 社員コード,部署コード FROM 社員テーブル GROUP BY 社員コード;