pickup

目次

Betweenは数字だけではない

こんにちは。伊川(@naonaoke)です。

今回は、ご視聴者様から頂いた質問になります。

数字で範囲は指定できますが、文字列で範囲が指定できるのかという質問でした。

問題提起

(株)IKAWAの阿久 世子男(アク セスオ)は上司から下記の依頼を受けました。

数字ではなく、文字列で範囲を指定して、データを抽出できないか?

どのように範囲を指定するのだろうか?

解決策

回答
sesuo2.jpg
Betweenと ANDを利用して範囲を指定する。
数値とやり方はかわらない。




演算子BetweenとAND

クエリで期間を抽出する代表的は方法です。

ただ、ACCESSは、抽出の際に、日付で期間抽出なのか、数値で抽出なのかで、クオーテーションが異なります。

演算子BetweenとAND 作成手順その1 データベースを確認



上の図の赤枠の文字で範囲を指定します。




演算子BetweenとAND 作成手順その3 検索フォームを作成する






演算子BetweenとAND 作成手順その4 コードを仕込む


Private Sub コマンド15_Click()
    
    Dim db As DAO.Database
    Dim rs As DAO.Recordset

    Dim strFil As String
    
    Set db = CurrentDb
    Set rs = db.OpenRecordset("MT_工番", dbOpenDynaset)
    
    strFil = "[工番] Between '" & [始期] & "' And'" & [終期] & "'"

    rs.Filter = strFil
    
    Set rs = rs.OpenRecordset
    Set Me.Recordset = rs
    Me.Requery
    
    Set rs = Nothing
    Set db = Nothing
    
End Sub




演算子BetweenとAND 作成手順その5 完成図





ご視聴者様のコメント

伊川様まさしくこれです!ありがとうございます。エラーも出ずできました!お忙しい中、ありがとうございました。今後も参考にさせていただきます。

 



ここがポイント

ここがポイント
Function8.pngデータ抽出ができないときは、

検索条件のフィールドの書式(型)を確認しましょう。ほとんどが、クオテーションの数の違いです。

型が一致しませんのエラーは、まず、

クオテーションの数を確認しましょう。





 




まとめ

今回のまとめ
sesuo6.jpg
今回は、文字列でも範囲指定ができることがわかりました。しかし、範囲指定は、なるべく数値型にしたほうがいいと思います。

 





今回のサンプルファイルは、No99です。

毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事