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

SQL内でBetween演算子を用いる方法 : VBAのTips解説



BETWEEN演算子

BETWEEN演算子とは、〜以上、〜以下といった範囲指定を行い、式と式を比較する演算子です。キーワードANDで式と式を区切ります。なお、Not演算子を用いて、正反対な使い方をすることもできます。例えば、Not Between … And … とすると範囲外を求めることになります。

  • 書式
value Between value1 And value2
  • 引数
引数 意味 指定
value 比較の対象の値を指定します 省略不可
value1 値、または式を指定します。最小値、または最大値の値です 省略不可
value2 値、または式を指定します。最大値、または最小値の値です 省略不可

関連項目

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

事例

DAOを用いて、「請求情報リスト」テーブルレコードを特定の期間で抽出する。

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

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

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

Private Sub 実行_Click()

On Error GoTo エラー

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim mySQL As String
Dim strLoop As String
Dim strMsg As String
Dim varRet As Variant
Dim varRet2 As Variant

Set db = CurrentDb

varRet = InputBox("抽出開始年月日を入力して下さい。", "入力式 : yyyy/mm/dd")
varRet2 = InputBox("抽出終了年月日を入力して下さい。", "入力式 : yyyy/mm/dd")

mySQL = "SELECT * FROM 納品管理 "
mySQL = mySQL & "WHERE 納品日 "
mySQL = mySQL & "Between #" & varRet & "# And #" & varRet2 & "#;" '--- A

If varRet = "" Or varRet2 = "" Then '--- B
MsgBox "日付指定の誤りです。"
Exit Sub
End If

Set rs = db.OpenRecordset(mySQL) '--- C

Do Until rs.EOF
strMsg = "日付 : " & rs!納品日 & ","
strMsg = strMsg & " 取引先 : " & rs!取引先 & ","
strMsg = strMsg & " 商品 : " & rs!商品
strLoop = strLoop & vbNewLine & strMsg
rs.MoveNext
Loop

MsgBox strLoop

rs.Close: Set rs = Nothing
db.Close: Set db = Nothing

Exit Sub

エラー:

MsgBox Err.Number & " : " & Err.Description
Exit Sub

End Sub
解説
  1. 日付/時刻型のデータは、前後を#(シャープ)で囲む必要があります。
  2. レコードセットを用いて該当レコードを求めます。

動作確認

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

  1. Inputboxに抽出する開始日付と終了日付を入力します。


  1. 該当レコードがメッセージボックスに表示されます。

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

 


SQL内でBetween演算子を用いる方法 : VBAのTips解説


 

-Microsoft Access Club-

動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。データセンター設置場所はアメリカ合衆国です。: 動画サーバードットコム
動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。
データセンター設置場所はアメリカ合衆国です。
100Mbps〜1Gbpsまで対応できます。