| SQL 「Between And 」を使い日付の範囲のレコードを抽出する | ||||
SELECT フィールド名 FROM テーブル名 WHERE フィールド名 Between #日付1# And #日付2# 日付1 から 日付2 の範囲のレコードを返します。 例: SQL = "SELECT 学生ID FROM 学生名簿 WHERE 誕生日 Between #1990/01/01# AND #1990/04/01# " この場合、誕生日が1990年01月01日~1990年04月01日の範囲の学生IDを抽出します。 これを「AND」にするとSQL = "SELECT 学生ID FROM 学生名簿 WHERE 誕生日>=#1990/01/01# AND 誕生日<=#1990/04/01# " となります。
サンプルソフト [実行時の画面] 「販売日 開始」に抽出したい販売日の開始日を入力します。 「販売日 終了」に抽出したい販売日の終了日を入力します。 「Between And 日付抽出」ボタンをクリックすると、販売データテーブルから販売日が、 「販売日 開始」から「販売日 終了」の範囲内のレコードを表示します。 SQL = "SELECT 商品ID,販売数,販売日 FROM 販売データ WHERE 販売日 Between #" & Me!テキスト2 & "# AND #" & Me!テキスト3 & "#" は SQL = "SELECT 商品ID,販売数,販売日 FROM 販売データ WHERE 販売日 >= #" & Me!テキスト2 & "# AND 販売日 <= #" & Me!テキスト3 & "#" と同じ結果になります。 サンプルソフトをダウンロードしお試しください。 ![]() [販売データ テーブル] 商品ID 販売日 販売数 10 2007/09/01 5000 11 2007/09/02 2500 13 2007/09/12 6200 16 2007/09/25 3350 ![]() [コード] Option Compare Database Private Sub コマンド8_Click() Dim SQL As String Dim rs As Recordset If IsNull(Me!テキスト2) Then MsgBox "抽出する販売日の開始日を入力してください。" Me!テキスト2.SetFocus Exit Sub End If If IsNull(Me!テキスト3) Then MsgBox "抽出する販売日の終了日を入力してください。" Me!テキスト3.SetFocus Exit Sub End If Me!テキスト1 = Null SQL = "SELECT 商品ID,販売数,販売日 FROM 販売データ WHERE 販売日 Between #" & Me!テキスト2 & "# AND #" & Me!テキスト3 & "#" Set rs = CurrentDb.OpenRecordset(SQL) Do Until rs.EOF Me!テキスト1 = Me!テキスト1 & rs![販売日] & ": " & rs![商品ID] & " : " & rs![販売数] & vbCrLf rs.MoveNext Loop Set rs = Nothing End Sub
ダウンロード |
||||
Copyright(C) 2007-2008 FeedSoft