Access Betweenを使って日付や文字列を抽出する

アクセス担当のまみです。

データ抽出がうまくいかない時がありませんか?

何度やってもエラーが出てしまう。

ようやくエラーが解消されたと思ったら今度は思った通りのデータが抽出されない・・・

原因はデータ型の問題だったりその時々によって違うのだけど、範囲指定がうまくいかないって時は、指定方法が違っていることもありますよ!

 

今回は、範囲指定で活躍してくれる「Between」についてお伝えしますね。

 

Betweenで範囲指定する

 

Betweenを使用する時だけじゃなくて、他の関数等を使う場合もデータ型によって書き方が違います。

文字列、数値、日付の3種類の方法を覚えておくと役に立ちますよ!

 

文字列の場合

 

使用するテーブル

「T_成績表」

 

(はてな君)
総合判定がA~Cのデータを抽出したいんだけど上手くいかないよ?

 

(あいちゃん)
抽出条件にはなんて入力してる?

 

(はてな君)
「”A”<=[判定]<=”C”」だよ。
文字列だから「”」であってると思うんだけど?

 

(あいちゃん)
あ~それはデータ型の問題じゃないね。「Between」を使うんだよ。「Between」は範囲指定が出来るんだよ

 

(はてな君)
そっか~

 

A~Cのような範囲指定をしたい時は下記のように入力します。

Between “A” And “C”

 

(あいちゃん)
BetweenのうしろとAndの前後には半角のスペースが必要だよ!

 

ではさっそくクエリで総合判定がA~Cのデータを抽出してみましょう。

 

 

リボンの①「作成」タブから②「クエリデザイン」を選択し、「T_成績表」を追加します。

 

フィールドになまえと判定条件を追加します。

 

(あいちゃん)
他に表示させたいフィールドがあれば追加してね!

 

判定条件の③抽出条件に直接入力してもいいですが、右クリックして「ズーム」を選択すると、大きな画面で編集できます。

 

④「Between “A” And “B”」と入力して「OK」を左クリックしましょう。

 

(あいちゃん)
データシートビューで確認してみてね!

 

クエリの結果

 

(はてな君)
そっか。Betweenを使うんだったんだ。

 

クエリは「Q_判定」と名前をつけておきましょう。

 

数値の場合

 

(はてな君)
データ型が数値の場合って「”」で囲まなくていいんだよね?

 

(あいちゃん)
正解!説明しなくても大丈夫そうなので、国語が50~80のデータを抽出してみてね!
今度は「なまえ」と「国」と「総合判定」を表示させてね!

 

 

フィールドに「なまえ」「国」「総合判定」を追加します。

 

「国」の抽出条件に「Between 50 And 80」と入力します。

 

 

(あいちゃん)
よくできました!

 

クエリは「Q_数値」と名前をつけておきましょう。

 

日付の場合

 

(あいちゃん)
データ型が日付の場合は日付を#で囲む必要があるんだよ。

 

(はてな君)
えっと文字列の場合の「”」が日付だと「#」になるってことだよね?

 

(あいちゃん)
そうそう!じゃあ2018/11/1~2018/11/30までのデータを抽出してみよう!

 

(はてな君)
じゃあ「なまえ」と「総合判定」と「登録日」を表示してみる!

 

フィールドに「なまえ」「総合判定」「登録日」を追加します。

 

「登録日」の抽出条件に「Between #2018/11/01# And #2018/11/30#」と入力します。

 

クエリの結果

 

(あいちゃん)
はてな君、Betweenは大丈夫そうだね!

 

クエリは「Q_登録日」と名前をつけておきましょう。

 

まとめ

 

実はクエリを使用する時って、データ型を意識しなくてもアクセスが自動で判断して「”」とか「#」とかつけてくれます。

 

VBAでコードを書く際にはとっても重要ポイントなので覚えておくと役に立ちますよ!